From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 53476C52D7C for ; Tue, 13 Aug 2024 22:29:32 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C92A36B0085; Tue, 13 Aug 2024 18:29:31 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id C42046B0088; Tue, 13 Aug 2024 18:29:31 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AE2876B0089; Tue, 13 Aug 2024 18:29:31 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 89BEB6B0085 for ; Tue, 13 Aug 2024 18:29:31 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 3E9FBA7505 for ; Tue, 13 Aug 2024 22:29:31 +0000 (UTC) X-FDA: 82448664942.11.8958E98 Received: from mail-oa1-f41.google.com (mail-oa1-f41.google.com [209.85.160.41]) by imf02.hostedemail.com (Postfix) with ESMTP id 6D3458000B for ; Tue, 13 Aug 2024 22:29:29 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=IyMYHxNi; spf=pass (imf02.hostedemail.com: domain of jeffxu@chromium.org designates 209.85.160.41 as permitted sender) smtp.mailfrom=jeffxu@chromium.org; dmarc=pass (policy=none) header.from=chromium.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1723588157; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=ykgogzbyK4rVzg7RHnLmQ4IP974gSr6UIGGUTaoRMNw=; b=C88SZ9SYMvUpBbDdlhdCANO28Q+FAMn/RVBc3wfs85OzZSICyzIQbhvV+CNeAvpvgrqhmG pMZfDFhqFxYA+Df4BjwWWvA5CT4YmW1n1vRBw0RmhiawzEDdqnT97VKK2+N5jDixp/4xAU ErsG46vnWU9tgU4SNDPWlq9+INahCWM= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=IyMYHxNi; spf=pass (imf02.hostedemail.com: domain of jeffxu@chromium.org designates 209.85.160.41 as permitted sender) smtp.mailfrom=jeffxu@chromium.org; dmarc=pass (policy=none) header.from=chromium.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1723588157; a=rsa-sha256; cv=none; b=VUcIK3PdYkeSjXP0DvlotdSD9/gnkj+HjuYd2yhinXUSmAIk62nYtkqC/kFTMZg8tyLEjN ASWv5ENE2v0BMneD8RxGhu+GyxMnV837PYFpFuAw7u4inkcW8XqwUFbFniYyOlmlN5pWrh zPoQFBnXyJhVstAY1r90fAX3YJd1B9Y= Received: by mail-oa1-f41.google.com with SMTP id 586e51a60fabf-26fda13f898so655040fac.1 for ; Tue, 13 Aug 2024 15:29:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1723588168; x=1724192968; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=ykgogzbyK4rVzg7RHnLmQ4IP974gSr6UIGGUTaoRMNw=; b=IyMYHxNiUYAId/s+X//duAaPDWF7uKBe0UcCtq4u8UdlVLNixizC2a5dRoasmKfEOh ecO40RWMqtPhu7U/MPPHnsfUwCByKWrjiHQbQGSnfCJQl+5I//uQ73eCYZiUUgd9lqmQ NxE7i2ch+X23OGJpj3KOwZIheGWJBlWpygVrc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1723588168; x=1724192968; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ykgogzbyK4rVzg7RHnLmQ4IP974gSr6UIGGUTaoRMNw=; b=srvKngRpq8/47ktV+19fXy8O+q6Bb6kFEsfnzn9r9W49iAXZzPYPm5Vc82BVcY9wlI IuFj/78+1ZVK1I4rbTwlL0op6nGuZI/j89zjd5jiEQppwjWn0Ec2204UFW35vuljXfhr KrWtAr9pD9WUAf6dW8dsFoVDjynyp8+02Vy87ii7+dzWdbavgnMb7DlC6qBRRySMUi5u rtehTQi0uC+fZQoJvl3NONRw0OMpM4j/ESUdyN9aS2jlPViM+dOtuRFNwh+iYOiRwulT GWzdhPoKJOLRMjI5wT8PZ2Dlt3jdi4G1MtmhmVP9SX1coDTNCRzA9xCrVy+Z5uzIPzRK 3qkQ== X-Forwarded-Encrypted: i=1; AJvYcCUd8O7enWQnX1d5/yOpNggS7KWDZ7wlxVUpvQd+8gL9G8JZB3tetsVJe+N++ZfSL8YzcB7hjMKEQZafgYkII97mGmM= X-Gm-Message-State: AOJu0YyOhbiPJhuCtMp8hfaeiCt/zqrCPgAyfZKj67SH0bLmLyluHTeW ZF7DRHyjkCky66Pu2L+8VBwidaYppKOuRLO+RVXHqo3dzlddWJosU3HauuEodFPz+N//lDMb9D9 EWsrt5HcqA21oiV/Pzmi716TF1b7w2U1cRoBt X-Google-Smtp-Source: AGHT+IGXHIA4OWX84r+ntsCxm1tIJRtPKmOxukETI3Iw8Kz6QgOTU2Exfj1kzAPmWxXmkmIxn7Epu9zjwMbuYGkdACw= X-Received: by 2002:a05:6870:56a1:b0:260:ff24:fb32 with SMTP id 586e51a60fabf-26fe59dc7a3mr1176459fac.1.1723588168189; Tue, 13 Aug 2024 15:29:28 -0700 (PDT) MIME-Version: 1.0 References: <20240809082511.497266-1-usama.anjum@collabora.com> In-Reply-To: <20240809082511.497266-1-usama.anjum@collabora.com> From: Jeff Xu Date: Tue, 13 Aug 2024 15:29:16 -0700 Message-ID: Subject: Re: [PATCH] selftests: mm: Fix build errors on armhf To: Muhammad Usama Anjum Cc: Andrew Morton , Shuah Khan , Kees Cook , "Liam R. Howlett" , kernel@collabora.com, stable@vger.kernel.org, linux-mm@kvack.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Stat-Signature: 3uqpipitfnnjgbaqc1tm3s5poc3fj1wq X-Rspamd-Queue-Id: 6D3458000B X-Rspamd-Server: rspam11 X-HE-Tag: 1723588169-283026 X-HE-Meta: U2FsdGVkX1/gB13oU6kGyBz6M/9QnCf/rDF2ZmgYRWb5JCrpI4+7U1tubPhpkjj9A5M8zTyEuwdOrtQluHDCOp8uzx/Fqa7jmvPFR/CgI+Jhv9qxCzboHNHlrNr1i1UPxZ3pI//SDCjT33q6Xfsr0lyszuZ9VxKZPFmN5XAApNC3uvInUktGpk1M5iusIV98hu9COAWQBB8mqKwnUBI3w2QZzKy6xVfOFZ+7oLvpUUus2AJIytqVLwIiAiGEd9lLWrKnpPxglJ+uehO8lL+Qroxo3EWOTKHW1h8l4QFxu29eHeLS47IsBIbtZ3v4vUP3yuhjHl9xoUm4TxzzgGo4f1kTz8V1SZ8hV9GuDPMH2mQa3nHiJGnYMy4ZnaSSqlxqvpceZe3WJtIBmSb0RC/nQHn8cUyA7jr0BpCrF1GrBg3zBEd9EatDC2eOvHDvcmt4sOn7L1J0No36yxvVlQWKxdE72xOlFed6DPEIDmVdjbTtpN2uca4T2reI2fVfFA9GeM9dZVEFqe3RRK7ytgTSOW2C62J5bAuPIQNJ4K7EdGTz0xP1NTQSAyFnQMkTom5xLlOYdEPBTsl3/cjvwWao4loLn5Hq1/PJMtTJPa+pS0jiFuC6BqN3N2F1uDAXrimiWXZ0C6Pk7Omu+73XOgFXk1ZkWxghKeLd2E36i9ApkTGcC+PMijvTewVQMaBZvmjizWcn86DH4cQx+dr+6HxONj9YvpH+Rxltm4UGmpAW13iEs4kIsaaC7ZNVheHhN8XoaxvVmJhY2ag4Oi9gaUzWIfvfUEoKgki4t6oxfw4J+YKOCo4Jj899nEL2GY4+IynZV6bn7BUdQWFPdiSrqVnZ+C4IjsELIyHAMpVJqfYht3OdCoKDNRDu3UIypa83OvO+JpfOYRSNV/bqT/+SPot4Sw7ixrDoXRoqlzj6fryCcIabLIB7URPi1FOYoL5pIjgp0Gi4g5mgVJEMN2QoG5s 2zN7lPvi ww0x6X2m/jTW1Skbr81U+yL+7Ad/JbnZjyX1jZY0T1w0t7qq+hjPAiMNig41Z0iunVRhmQZteP/huRRs00ej5YvVXgXI0OK9cW/Un5JjA+K6jBRi06j1NYAH3pE1bNRBpgeS2LejJsaa5+amg0OkiAsrioviBAFowh2DbC8VGDsS3u9EXhDKw4efq+t8LZpRXS8r/nrz3W/z3xTFBiKBWcrdiC2VHka65NaA4KTFfiwTcxNF0JOcLn2ktnBWYAmP5Ssu3klA65OzVdUEl3M24N2dzCe7Q0RUiN89/ X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Hi Muhammad On Fri, Aug 9, 2024 at 1:25=E2=80=AFAM Muhammad Usama Anjum wrote: > > The __NR_mmap isn't found on armhf. The mmap() is commonly available > system call and its wrapper is presnet on all architectures. So it > should be used directly. It solves problem for armhf and doesn't create > problem for architectures as well. Remove sys_mmap() functions as they > aren't doing anything else other than calling mmap(). There is no need > to set errno =3D 0 manually as glibc always resets it. > The mseal_test should't have dependency on libc, and mmap() is implemented by glibc, right ? I just fixed a bug to switch mremap() to sys_mremap to address an issue that different glibc version's behavior is slightly different for mremap(). What is the reason that __NR_mmap not available in armhf ? (maybe it is another name ?) there must be a way to call syscall directly on armhf, can we use that instead ? Thanks -Jeff > For reference errors are as following: > > CC seal_elf > seal_elf.c: In function 'sys_mmap': > seal_elf.c:39:33: error: '__NR_mmap' undeclared (first use in this functi= on) > 39 | sret =3D (void *) syscall(__NR_mmap, addr, len, prot, > | ^~~~~~~~~ > > mseal_test.c: In function 'sys_mmap': > mseal_test.c:90:33: error: '__NR_mmap' undeclared (first use in this func= tion) > 90 | sret =3D (void *) syscall(__NR_mmap, addr, len, prot, > | ^~~~~~~~~ > > Cc: stable@vger.kernel.org > Fixes: 4926c7a52de7 ("selftest mm/mseal memory sealing") > Signed-off-by: Muhammad Usama Anjum > --- > tools/testing/selftests/mm/mseal_test.c | 37 +++++++++---------------- > tools/testing/selftests/mm/seal_elf.c | 13 +-------- > 2 files changed, 14 insertions(+), 36 deletions(-) > > diff --git a/tools/testing/selftests/mm/mseal_test.c b/tools/testing/self= tests/mm/mseal_test.c > index a818f010de479..bfcea5cf9a484 100644 > --- a/tools/testing/selftests/mm/mseal_test.c > +++ b/tools/testing/selftests/mm/mseal_test.c > @@ -81,17 +81,6 @@ static int sys_mprotect_pkey(void *ptr, size_t size, u= nsigned long orig_prot, > return sret; > } > > -static void *sys_mmap(void *addr, unsigned long len, unsigned long prot, > - unsigned long flags, unsigned long fd, unsigned long offset) > -{ > - void *sret; > - > - errno =3D 0; > - sret =3D (void *) syscall(__NR_mmap, addr, len, prot, > - flags, fd, offset); > - return sret; > -} > - > static int sys_munmap(void *ptr, size_t size) > { > int sret; > @@ -172,7 +161,7 @@ static void setup_single_address(int size, void **ptr= Out) > { > void *ptr; > > - ptr =3D sys_mmap(NULL, size, PROT_READ, MAP_ANONYMOUS | MAP_PRIVA= TE, -1, 0); > + ptr =3D mmap(NULL, size, PROT_READ, MAP_ANONYMOUS | MAP_PRIVATE, = -1, 0); > *ptrOut =3D ptr; > } > > @@ -181,7 +170,7 @@ static void setup_single_address_rw(int size, void **= ptrOut) > void *ptr; > unsigned long mapflags =3D MAP_ANONYMOUS | MAP_PRIVATE; > > - ptr =3D sys_mmap(NULL, size, PROT_READ | PROT_WRITE, mapflags, -1= , 0); > + ptr =3D mmap(NULL, size, PROT_READ | PROT_WRITE, mapflags, -1, 0)= ; > *ptrOut =3D ptr; > } > > @@ -205,7 +194,7 @@ bool seal_support(void) > void *ptr; > unsigned long page_size =3D getpagesize(); > > - ptr =3D sys_mmap(NULL, page_size, PROT_READ, MAP_ANONYMOUS | MAP_= PRIVATE, -1, 0); > + ptr =3D mmap(NULL, page_size, PROT_READ, MAP_ANONYMOUS | MAP_PRIV= ATE, -1, 0); > if (ptr =3D=3D (void *) -1) > return false; > > @@ -481,8 +470,8 @@ static void test_seal_zero_address(void) > int prot; > > /* use mmap to change protection. */ > - ptr =3D sys_mmap(0, size, PROT_NONE, > - MAP_ANONYMOUS | MAP_PRIVATE | MAP_FIXED, -1, 0); > + ptr =3D mmap(0, size, PROT_NONE, > + MAP_ANONYMOUS | MAP_PRIVATE | MAP_FIXED, -1, 0); > FAIL_TEST_IF_FALSE(ptr =3D=3D 0); > > size =3D get_vma_size(ptr, &prot); > @@ -1209,8 +1198,8 @@ static void test_seal_mmap_overwrite_prot(bool seal= ) > } > > /* use mmap to change protection. */ > - ret2 =3D sys_mmap(ptr, size, PROT_NONE, > - MAP_ANONYMOUS | MAP_PRIVATE | MAP_FIXED, -1, 0); > + ret2 =3D mmap(ptr, size, PROT_NONE, > + MAP_ANONYMOUS | MAP_PRIVATE | MAP_FIXED, -1, 0); > if (seal) { > FAIL_TEST_IF_FALSE(ret2 =3D=3D MAP_FAILED); > FAIL_TEST_IF_FALSE(errno =3D=3D EPERM); > @@ -1240,8 +1229,8 @@ static void test_seal_mmap_expand(bool seal) > } > > /* use mmap to expand. */ > - ret2 =3D sys_mmap(ptr, size, PROT_READ, > - MAP_ANONYMOUS | MAP_PRIVATE | MAP_FIXED, -1, 0); > + ret2 =3D mmap(ptr, size, PROT_READ, > + MAP_ANONYMOUS | MAP_PRIVATE | MAP_FIXED, -1, 0); > if (seal) { > FAIL_TEST_IF_FALSE(ret2 =3D=3D MAP_FAILED); > FAIL_TEST_IF_FALSE(errno =3D=3D EPERM); > @@ -1268,8 +1257,8 @@ static void test_seal_mmap_shrink(bool seal) > } > > /* use mmap to shrink. */ > - ret2 =3D sys_mmap(ptr, 8 * page_size, PROT_READ, > - MAP_ANONYMOUS | MAP_PRIVATE | MAP_FIXED, -1, 0); > + ret2 =3D mmap(ptr, 8 * page_size, PROT_READ, > + MAP_ANONYMOUS | MAP_PRIVATE | MAP_FIXED, -1, 0); > if (seal) { > FAIL_TEST_IF_FALSE(ret2 =3D=3D MAP_FAILED); > FAIL_TEST_IF_FALSE(errno =3D=3D EPERM); > @@ -1650,7 +1639,7 @@ static void test_seal_discard_ro_anon_on_filebacked= (bool seal) > ret =3D fallocate(fd, 0, 0, size); > FAIL_TEST_IF_FALSE(!ret); > > - ptr =3D sys_mmap(NULL, size, PROT_READ, mapflags, fd, 0); > + ptr =3D mmap(NULL, size, PROT_READ, mapflags, fd, 0); > FAIL_TEST_IF_FALSE(ptr !=3D MAP_FAILED); > > if (seal) { > @@ -1680,7 +1669,7 @@ static void test_seal_discard_ro_anon_on_shared(boo= l seal) > int ret; > unsigned long mapflags =3D MAP_ANONYMOUS | MAP_SHARED; > > - ptr =3D sys_mmap(NULL, size, PROT_READ, mapflags, -1, 0); > + ptr =3D mmap(NULL, size, PROT_READ, mapflags, -1, 0); > FAIL_TEST_IF_FALSE(ptr !=3D (void *)-1); > > if (seal) { > diff --git a/tools/testing/selftests/mm/seal_elf.c b/tools/testing/selfte= sts/mm/seal_elf.c > index 7aa1366063e4e..d9f8ba8d5050b 100644 > --- a/tools/testing/selftests/mm/seal_elf.c > +++ b/tools/testing/selftests/mm/seal_elf.c > @@ -30,17 +30,6 @@ static int sys_mseal(void *start, size_t len) > return sret; > } > > -static void *sys_mmap(void *addr, unsigned long len, unsigned long prot, > - unsigned long flags, unsigned long fd, unsigned long offset) > -{ > - void *sret; > - > - errno =3D 0; > - sret =3D (void *) syscall(__NR_mmap, addr, len, prot, > - flags, fd, offset); > - return sret; > -} > - > static inline int sys_mprotect(void *ptr, size_t size, unsigned long pro= t) > { > int sret; > @@ -56,7 +45,7 @@ static bool seal_support(void) > void *ptr; > unsigned long page_size =3D getpagesize(); > > - ptr =3D sys_mmap(NULL, page_size, PROT_READ, MAP_ANONYMOUS | MAP_= PRIVATE, -1, 0); > + ptr =3D mmap(NULL, page_size, PROT_READ, MAP_ANONYMOUS | MAP_PRIV= ATE, -1, 0); > if (ptr =3D=3D (void *) -1) > return false; > > -- > 2.39.2 >