Re: [PATCH] mm/shmem: Fix a build error due to shmem_unuse() under !CONFIG_SHMEM

From: Randy Dunlap
Date: Thu Dec 30 2021 - 12:32:25 EST




On 12/30/21 02:38, SeongJae Park wrote:
> A patch[1] in -mm tree that titled mm-simplify-try_to_unuse.patch[2]
> didn't properly change the type of 'shmem_unuse()' definition under
> !CONFIG_SHMEM, and therefore causing below build error when CONFIG_SHMEM
> is not set.
>
> linux/mm/shmem.c:3992:5: error: conflicting types for 'shmem_unuse'
> 3992 | int shmem_unuse(unsigned int type, unsigned long *fs_pages_to_unuse)
> | ^~~~~~~~~~~
> In file included from linux/include/linux/khugepaged.h:6,
> from linux/mm/shmem.c:37:
> linux/include/linux/shmem_fs.h:86:5: note: previous declaration of 'shmem_unuse' was here
> 86 | int shmem_unuse(unsigned int type);
> | ^~~~~~~~~~~
> linux/scripts/Makefile.build:289: recipe for target 'mm/shmem.o' failed
>
> This commit fixes the issue by fixing the type of the definition under
> the config.
>
> [1] https://lore.kernel.org/linux-mm/20211224062246.1258487-9-hch@xxxxxx/
> [2] https://www.ozlabs.org/~akpm/mmotm/broken-out/mm-simplify-try_to_unuse.patch
>
> Signed-off-by: SeongJae Park <sj@xxxxxxxxxx>

Acked-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx> # build-tested

Thanks.

> ---
> mm/shmem.c | 2 +-
> scripts/rust-version.sh | 0
> 2 files changed, 1 insertion(+), 1 deletion(-)
> mode change 100644 => 100755 scripts/rust-version.sh
>
> diff --git a/mm/shmem.c b/mm/shmem.c
> index 421b2459929a..a83c91282c1f 100644
> --- a/mm/shmem.c
> +++ b/mm/shmem.c
> @@ -3989,7 +3989,7 @@ int __init shmem_init(void)
> return 0;
> }
>
> -int shmem_unuse(unsigned int type, unsigned long *fs_pages_to_unuse)
> +int shmem_unuse(unsigned int type)
> {
> return 0;
> }
> diff --git a/scripts/rust-version.sh b/scripts/rust-version.sh
> old mode 100644
> new mode 100755

--
~Randy