| From: Muhammad Usama Anjum <usama.anjum@collabora.com> |
| Subject: selftests/mm: fix unused parameter warnings for different architectures |
| Date: Thu, 31 Jul 2025 21:01:32 +0500 |
| |
| There are functions which have unused arguments for different |
| architectures. Separate the code for each architecture and move #ifdef |
| arch outside these functions. |
| |
| Link: https://lkml.kernel.org/r/20250731160132.1795351-9-usama.anjum@collabora.com |
| Signed-off-by: Muhammad Usama Anjum <usama.anjum@collabora.com> |
| Cc: Albert Ou <aou@eecs.berkeley.edu> |
| Cc: Alexandre Ghiti <alex@ghiti.fr> |
| Cc: Baolin Wang <baolin.wang@linux.alibaba.com> |
| Cc: Barry Song <baohua@kernel.org> |
| Cc: David Hildenbrand <david@redhat.com> |
| Cc: Dev Jain <dev.jain@arm.com> |
| Cc: Jason Gunthorpe <jgg@ziepe.ca> |
| Cc: John Hubbard <jhubbard@nvidia.com> |
| Cc: Leon Romanovsky <leon@kernel.org> |
| Cc: Liam Howlett <liam.howlett@oracle.com> |
| Cc: Lorenzo Stoakes <lorenzo.stoakes@oracle.com> |
| Cc: Mariano Pache <npache@redhat.com> |
| Cc: Michal Hocko <mhocko@suse.com> |
| Cc: Mike Rapoport <rppt@kernel.org> |
| Cc: Palmer Dabbelt <palmer@dabbelt.com> |
| Cc: Paul Walmsley <paul.walmsley@sifive.com> |
| Cc: Peter Xu <peterx@redhat.com> |
| Cc: Ryan Roberts <ryan.roberts@arm.com> |
| Cc: Shuah Khan <shuah@kernel.org> |
| Cc: Sidhartha Kumar <sidhartha.kumar@oracle.com> |
| Cc: Suren Baghdasaryan <surenb@google.com> |
| Cc: Vlastimil Babka <vbabka@suse.cz> |
| Cc: Zi Yan <ziy@nvidia.com> |
| Cc: Kevin Brodsky <kevin.brodsky@arm.com> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| --- |
| |
| tools/testing/selftests/mm/mseal_test.c | 8 +++- |
| tools/testing/selftests/mm/pkey_sighandler_tests.c | 21 +++++++++-- |
| 2 files changed, 24 insertions(+), 5 deletions(-) |
| |
| --- a/tools/testing/selftests/mm/mseal_test.c~selftests-mm-fix-unused-parameter-warnings-for-different-architectures |
| +++ a/tools/testing/selftests/mm/mseal_test.c |
| @@ -131,17 +131,21 @@ static unsigned int __read_pkey_reg(void |
| return pkey_reg; |
| } |
| |
| +#if defined(__i386__) || defined(__x86_64__) /* arch */ |
| static void __write_pkey_reg(u64 pkey_reg) |
| { |
| -#if defined(__i386__) || defined(__x86_64__) /* arch */ |
| unsigned int eax = pkey_reg; |
| unsigned int ecx = 0; |
| unsigned int edx = 0; |
| |
| asm volatile(".byte 0x0f,0x01,0xef\n\t" |
| : : "a" (eax), "c" (ecx), "d" (edx)); |
| -#endif |
| } |
| +#else |
| +static void __write_pkey_reg(u64 __unused pkey_reg) |
| +{ |
| +} |
| +#endif |
| |
| static unsigned long pkey_bit_position(int pkey) |
| { |
| --- a/tools/testing/selftests/mm/pkey_sighandler_tests.c~selftests-mm-fix-unused-parameter-warnings-for-different-architectures |
| +++ a/tools/testing/selftests/mm/pkey_sighandler_tests.c |
| @@ -41,11 +41,12 @@ static siginfo_t siginfo = {0}; |
| * syscall will attempt to access the PLT in order to call a library function |
| * which is protected by MPK 0 which we don't have access to. |
| */ |
| +#ifdef __x86_64__ |
| static __always_inline |
| long syscall_raw(long n, long a1, long a2, long a3, long a4, long a5, long a6) |
| { |
| unsigned long ret; |
| -#ifdef __x86_64__ |
| + |
| register long r10 asm("r10") = a4; |
| register long r8 asm("r8") = a5; |
| register long r9 asm("r9") = a6; |
| @@ -53,12 +54,26 @@ long syscall_raw(long n, long a1, long a |
| : "=a"(ret) |
| : "a"(n), "D"(a1), "S"(a2), "d"(a3), "r"(r10), "r"(r8), "r"(r9) |
| : "rcx", "r11", "memory"); |
| + return ret; |
| +} |
| #elif defined __i386__ |
| +static __always_inline |
| +long syscall_raw(long n, long a1, long a2, long a3, long a4, long a5, long __unused a6) |
| +{ |
| + unsigned long ret; |
| + |
| asm volatile ("int $0x80" |
| : "=a"(ret) |
| : "a"(n), "b"(a1), "c"(a2), "d"(a3), "S"(a4), "D"(a5) |
| : "memory"); |
| + return ret; |
| +} |
| #elif defined __aarch64__ |
| +static __always_inline |
| +long syscall_raw(long n, long a1, long a2, long a3, long a4, long a5, long a6) |
| +{ |
| + unsigned long ret; |
| + |
| register long x0 asm("x0") = a1; |
| register long x1 asm("x1") = a2; |
| register long x2 asm("x2") = a3; |
| @@ -71,11 +86,11 @@ long syscall_raw(long n, long a1, long a |
| : "r"(x0), "r"(x1), "r"(x2), "r"(x3), "r"(x4), "r"(x5), "r"(x8) |
| : "memory"); |
| ret = x0; |
| + return ret; |
| +} |
| #else |
| # error syscall_raw() not implemented |
| #endif |
| - return ret; |
| -} |
| |
| static inline long clone_raw(unsigned long flags, void *stack, |
| int *parent_tid, int *child_tid) |
| _ |