Re: [PATCH v3 13/23] mm/mmap: Make vm_special_mapping::mremap return void

From: Christophe Leroy
Date: Thu Jun 17 2021 - 03:20:54 EST




Le 11/06/2021 à 20:02, Dmitry Safonov a écrit :
Previously .mremap() callback had to return (int) to provide
a way to restrict resizing of a special mapping. Now it's
restricted by providing .may_split = special_mapping_split.

Removing (int) return simplifies further changes to
special_mapping_mremap() as it won't need save ret code from the
callback. Also, it removes needless `return 0` from callbacks.

Signed-off-by: Dmitry Safonov <dima@xxxxxxxxxx>
---
arch/arm/kernel/process.c | 3 +--
arch/arm64/kernel/vdso.c | 4 +---
arch/mips/vdso/genvdso.c | 3 +--
arch/x86/entry/vdso/vma.c | 4 +---
include/linux/mm_types.h | 4 ++--
mm/mmap.c | 2 +-
6 files changed, 7 insertions(+), 13 deletions(-)


Build failure:

CC arch/powerpc/kernel/vdso.o
arch/powerpc/kernel/vdso.c:93:19: error: initialization of 'void (*)(const struct vm_special_mapping *, struct vm_area_struct *)' from incompatible pointer type 'int (*)(const struct vm_special_mapping *, struct vm_area_struct *)' [-Werror=incompatible-pointer-types]
93 | .mremap = vdso32_mremap,
| ^~~~~~~~~~~~~
arch/powerpc/kernel/vdso.c:93:19: note: (near initialization for 'vdso32_spec.mremap')
arch/powerpc/kernel/vdso.c:98:19: error: initialization of 'void (*)(const struct vm_special_mapping *, struct vm_area_struct *)' from incompatible pointer type 'int (*)(const struct vm_special_mapping *, struct vm_area_struct *)' [-Werror=incompatible-pointer-types]
98 | .mremap = vdso64_mremap,
| ^~~~~~~~~~~~~
arch/powerpc/kernel/vdso.c:98:19: note: (near initialization for 'vdso64_spec.mremap')
cc1: all warnings being treated as errors
make[3]: *** [arch/powerpc/kernel/vdso.o] Error 1
make[2]: *** [arch/powerpc/kernel] Error 2
make[1]: *** [arch/powerpc] Error 2
make: *** [__sub-make] Error 2