s390/set_memory: add __set_memory() variant
authorHeiko Carstens <hca@linux.ibm.com>
Fri, 25 Aug 2023 12:29:52 +0000 (14:29 +0200)
committerHeiko Carstens <hca@linux.ibm.com>
Wed, 30 Aug 2023 09:03:28 +0000 (11:03 +0200)
commit850612c8e4fb048905af597cbd25dfbb40d9ffdf
tree5cbc969e312fafd9dec36b2eef0a5a889d557232
parentc22a4c8aaf60780ce21fb2b5c8019e12457ee949
s390/set_memory: add __set_memory() variant

Add a __set_memory_yy() variant for all set_memory_yy()
implementations. The new variant takes start and end void pointers,
which allows them to be used without the usual unsigned long cast.

However more important: the new variant can be used for areas larger
than 8TB. The old variant comes with an "int numpages" parameter, which
overflows with more than 8TB. Given that for debug_pagealloc
set_memory_4k() is used on the whole kernel mapping this is not only a
theoretical problem, but must be fixed.

Changing all set_memory_yy() variants only on s390 to take an "unsigned
long numpages" parameter is not possible, since the common module code
requires an int parameter from all architectures on these functions.
See module_set_memory().

Therefore change/fix this on s390 only with a new interface, and address
common code later.

Reviewed-by: Alexander Gordeev <agordeev@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
arch/s390/include/asm/set_memory.h
arch/s390/mm/pageattr.c