lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <18c375a5-9d0c-49ca-995c-efaec95aa3a7@linux.ibm.com>
Date: Mon, 28 Apr 2025 22:17:40 +0530
From: Venkat Rao Bagalkote <venkat88@...ux.ibm.com>
To: "Nysal Jan K.A." <nysal@...ux.ibm.com>,
        Andrew Morton <akpm@...ux-foundation.org>,
        Shuah Khan <shuah@...nel.org>
Cc: Madhavan Srinivasan <maddy@...ux.ibm.com>,
        Michael Ellerman <mpe@...erman.id.au>,
        Segher Boessenkool <segher@...nel.crashing.org>,
        linuxppc-dev@...ts.ozlabs.org, Kevin Brodsky <kevin.brodsky@....com>,
        linux-mm@...ck.org, linux-kselftest@...r.kernel.org,
        linux-kernel@...r.kernel.org
Subject: Re: [PATCH 1/2] selftests/mm: Fix build break when compiling
 pkey_util.c


On 28/04/25 6:49 pm, Nysal Jan K.A. wrote:
> From: Madhavan Srinivasan <maddy@...ux.ibm.com>
>
> Commit 50910acd6f615 ("selftests/mm: use sys_pkey helpers consistently")
> added a pkey_util.c to refactor some of the protection_keys functions accessible
> by other tests. But this broken the build in powerpc in two ways,
>
> pkey-powerpc.h: In function ‘arch_is_powervm’:
> pkey-powerpc.h:73:21: error: storage size of ‘buf’ isn’t known
>     73 |         struct stat buf;
>        |                     ^~~
> pkey-powerpc.h:75:14: error: implicit declaration of function ‘stat’; did you mean ‘strcat’? [-Wimplicit-function-declaration]
>     75 |         if ((stat("/sys/firmware/devicetree/base/ibm,partition-name", &buf) == 0) &&
>        |              ^~~~
>        |              strcat
>
> Since pkey_util.c includes pkeys-helper.h, which in turn includes pkeys-powerpc.h,
> stat.h including is missing for "struct stat". This is fixed by adding "sys/stat.h"
> in pkeys-powerpc.h
>
> Secondly,
>
> pkey-powerpc.h:55:18: warning: format ‘%llx’ expects argument of type ‘long long unsigned int’, but argument 3 has type ‘u64’ {aka ‘long unsigned int’} [-Wformat=]
>     55 |         dprintf4("%s() changing %016llx to %016llx\n",
>        |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     56 |                          __func__, __read_pkey_reg(), pkey_reg);
>        |                                    ~~~~~~~~~~~~~~~~~
>        |                                    |
>        |                                    u64 {aka long unsigned int}
> pkey-helpers.h:63:32: note: in definition of macro ‘dprintf_level’
>     63 |                 sigsafe_printf(args);           \
>        |                                ^~~~
>
> These format specifier related warning are removed by adding
> "__SANE_USERSPACE_TYPES__" to pkeys_utils.c.
>
> Fixes: 50910acd6f615 ("selftests/mm: use sys_pkey helpers consistently")
> Signed-off-by: Madhavan Srinivasan <maddy@...ux.ibm.com>
> Signed-off-by: Nysal Jan K.A. <nysal@...ux.ibm.com>
> ---
>   tools/testing/selftests/mm/pkey-powerpc.h | 2 ++
>   tools/testing/selftests/mm/pkey_util.c    | 1 +
>   2 files changed, 3 insertions(+)
>
> diff --git a/tools/testing/selftests/mm/pkey-powerpc.h b/tools/testing/selftests/mm/pkey-powerpc.h
> index 1bad310d282a..d8ec906b8120 100644
> --- a/tools/testing/selftests/mm/pkey-powerpc.h
> +++ b/tools/testing/selftests/mm/pkey-powerpc.h
> @@ -3,6 +3,8 @@
>   #ifndef _PKEYS_POWERPC_H
>   #define _PKEYS_POWERPC_H
>   
> +#include <sys/stat.h>
> +
>   #ifndef SYS_pkey_alloc
>   # define SYS_pkey_alloc		384
>   # define SYS_pkey_free		385
> diff --git a/tools/testing/selftests/mm/pkey_util.c b/tools/testing/selftests/mm/pkey_util.c
> index ca4ad0d44ab2..255b332f7a08 100644
> --- a/tools/testing/selftests/mm/pkey_util.c
> +++ b/tools/testing/selftests/mm/pkey_util.c
> @@ -1,4 +1,5 @@
>   // SPDX-License-Identifier: GPL-2.0-only
> +#define __SANE_USERSPACE_TYPES__
>   #include <sys/syscall.h>
>   #include <unistd.h>
>   

Tested this patch by applying on top of mainline kernel v6.15-rc4, and 
it fixes the build issue. Hence,


Tested-by: Venkat Rao Bagalkote <venkat88@...ux.ibm.com>


Without this Patch:


pkey-powerpc.h: In function ‘arch_is_powervm’:
pkey-powerpc.h:73:21: error: storage size of ‘buf’ isn’t known
    73 |         struct stat buf;
       |                     ^~~
pkey-powerpc.h:75:14: warning: implicit declaration of function ‘stat’; 
did you mean ‘strcat’? [-Wimplicit-function-declaration]
    75 |         if 
((stat("/sys/firmware/devicetree/base/ibm,partition-name", &buf) == 0) &&
       |              ^~~~
       |              strcat


With this patch:


make -j 33
/bin/sh ./check_config.sh gcc
   CC       cow
   CC       compaction_test
   CC       gup_longterm
   CC       gup_test
   CC       hmm-tests
   CC       hugetlb-madvise
   CC       hugetlb-read-hwpoison
   CC       hugetlb-soft-offline
   CC       hugepage-mmap
   CC       hugepage-mremap
   CC       hugepage-shm
   CC       hugepage-vmemmap
   CC       khugepaged
   CC       madv_populate
   CC       map_fixed_noreplace
   CC       map_hugetlb
   CC       map_populate
   CC       migration
   CC       mkdirty
   CC       mlock-random-test
   CC       mlock2-tests
   CC       mrelease_test
   CC       mremap_dontunmap
   CC       mremap_test
   CC       mseal_test
   CC       on-fault-limit
   CC       pagemap_ioctl
   CC       thuge-gen
   CC       transhuge-stress
   CC       uffd-stress
   CC       uffd-unit-tests
   CC       uffd-wp-mremap
   CC       split_huge_page_test
   CC       ksm_tests
   CC       ksm_functional_tests
   CC       hugetlb_fault_after_madv
   CC       hugetlb_madv_vs_map
   CC       mdwe_test
   CC       hugetlb_dio
   CC       droppable
   CC       guard-regions
   CC       soft-dirty
   CC       protection_keys
   CC       va_high_addr_switch
   CC       virtual_address_range
   CC       write_to_hugetlbfs
   CC [M]  page_frag_test.o
   MODPOST Module.symvers
   CC [M]  page_frag_test.mod.o
   CC [M]  .module-common.o
   LD [M]  page_frag_test.ko


Regards,

Venkat.


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ