Re: [PATCH v4] selftests/powerpc: Fix pkey syscall redefinitions

2020-08-17 Thread Michael Ellerman
On Tue, 4 Aug 2020 23:01:37 +0530, Sandipan Das wrote:
> On distros using older glibc versions, the pkey tests
> encounter build failures due to redefinition of the
> pkey syscall numbers.
> 
> For compatibility, commit 743f3544fffb added a wrapper
> for the gettid() syscall and included syscall.h if the
> version of glibc used is older than 2.30. This leads
> to different definitions of SYS_pkey_* as the ones in
> the pkey test header set numeric constants where as the
> ones from syscall.h reuse __NR_pkey_*. The compiler
> complains about redefinitions since they are different.
> 
> [...]

Applied to powerpc/fixes.

[1/1] selftests/powerpc: Fix pkey syscall redefinitions
  https://git.kernel.org/powerpc/c/a7aaa2f26bfd932a654706b19859e7adf802bee2

cheers


Re: [PATCH v4] selftests/powerpc: Fix pkey syscall redefinitions

2020-08-04 Thread Sachin Sant



> On 04-Aug-2020, at 11:01 PM, Sandipan Das  wrote:
> 
> On distros using older glibc versions, the pkey tests
> encounter build failures due to redefinition of the
> pkey syscall numbers.
> 
> For compatibility, commit 743f3544fffb added a wrapper
> for the gettid() syscall and included syscall.h if the
> version of glibc used is older than 2.30. This leads
> to different definitions of SYS_pkey_* as the ones in
> the pkey test header set numeric constants where as the
> ones from syscall.h reuse __NR_pkey_*. The compiler
> complains about redefinitions since they are different.
> 
> This replaces SYS_pkey_* definitions with __NR_pkey_*
> such that the definitions in both syscall.h and pkeys.h
> are alike. This way, if syscall.h has to be included
> for compatibility reasons, builds will still succeed.
> 
> Fixes: 743f3544fffb ("selftests/powerpc: Add wrapper for gettid")
> Reported-by: Sachin Sant 
> Suggested-by: David Laight 
> Suggested-by: Michael Ellerman 
> Signed-off-by: Sandipan Das 

Tested-by: Sachin Sant 

Thanks
-Sachin


[PATCH v4] selftests/powerpc: Fix pkey syscall redefinitions

2020-08-04 Thread Sandipan Das
On distros using older glibc versions, the pkey tests
encounter build failures due to redefinition of the
pkey syscall numbers.

For compatibility, commit 743f3544fffb added a wrapper
for the gettid() syscall and included syscall.h if the
version of glibc used is older than 2.30. This leads
to different definitions of SYS_pkey_* as the ones in
the pkey test header set numeric constants where as the
ones from syscall.h reuse __NR_pkey_*. The compiler
complains about redefinitions since they are different.

This replaces SYS_pkey_* definitions with __NR_pkey_*
such that the definitions in both syscall.h and pkeys.h
are alike. This way, if syscall.h has to be included
for compatibility reasons, builds will still succeed.

Fixes: 743f3544fffb ("selftests/powerpc: Add wrapper for gettid")
Reported-by: Sachin Sant 
Suggested-by: David Laight 
Suggested-by: Michael Ellerman 
Signed-off-by: Sandipan Das 
---
Previous versions can be found at:
v3: 
https://lore.kernel.org/linuxppc-dev/1bb744b0c7ed3985a5b73289f4de629ac0aeaf7c.1596453627.git.sandi...@linux.ibm.com/
v2: 
https://lore.kernel.org/linuxppc-dev/566dde119ce71f00f9642807ba30ceb7f54c9bfa.1596441105.git.sandi...@linux.ibm.com/
v1: 
https://lore.kernel.org/linuxppc-dev/20200803074043.466809-1-sandi...@linux.ibm.com/

Changes in v4:
- Replace SYS_pkey_* with __NR_pkey_* based on suggestions
  from David and Michael.
- Update commit message and add fixes tag.

Changes in v3:
- Use ifndef...endif instead of undef as suggested by
  Michael.

Changes in v2:
- Fix incorrect commit message.

---
 tools/testing/selftests/powerpc/include/pkeys.h | 12 ++--
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/tools/testing/selftests/powerpc/include/pkeys.h 
b/tools/testing/selftests/powerpc/include/pkeys.h
index 6ba95039a034..3312cb1b058d 100644
--- a/tools/testing/selftests/powerpc/include/pkeys.h
+++ b/tools/testing/selftests/powerpc/include/pkeys.h
@@ -31,9 +31,9 @@
 
 #define SI_PKEY_OFFSET 0x20
 
-#define SYS_pkey_mprotect  386
-#define SYS_pkey_alloc 384
-#define SYS_pkey_free  385
+#define __NR_pkey_mprotect 386
+#define __NR_pkey_alloc384
+#define __NR_pkey_free 385
 
 #define PKEY_BITS_PER_PKEY 2
 #define NR_PKEYS   32
@@ -62,17 +62,17 @@ void pkey_set_rights(int pkey, unsigned long rights)
 
 int sys_pkey_mprotect(void *addr, size_t len, int prot, int pkey)
 {
-   return syscall(SYS_pkey_mprotect, addr, len, prot, pkey);
+   return syscall(__NR_pkey_mprotect, addr, len, prot, pkey);
 }
 
 int sys_pkey_alloc(unsigned long flags, unsigned long rights)
 {
-   return syscall(SYS_pkey_alloc, flags, rights);
+   return syscall(__NR_pkey_alloc, flags, rights);
 }
 
 int sys_pkey_free(int pkey)
 {
-   return syscall(SYS_pkey_free, pkey);
+   return syscall(__NR_pkey_free, pkey);
 }
 
 int pkeys_unsupported(void)
-- 
2.25.1