s390/mm: use __set_memory() variants where useful
authorHeiko Carstens <hca@linux.ibm.com>
Fri, 25 Aug 2023 12:29:53 +0000 (14:29 +0200)
committerHeiko Carstens <hca@linux.ibm.com>
Wed, 30 Aug 2023 09:03:28 +0000 (11:03 +0200)
commita7eb28801b692df2496e21ff9af6ab0dc1969133
tree567ad596b5fe74d42c24731db0bccc5c4856224c
parent850612c8e4fb048905af597cbd25dfbb40d9ffdf
s390/mm: use __set_memory() variants where useful

Use the __set_memory_yy() variants instead of set_memory_yy() where
useful. This allows to make the code a bit more readable.

This also fixes the debug pagealloc case, where set_memory_4k() might be
called for an area larger than 8TB which would lead to an overflow of
the num_pages parameter of set_memory_4k().

However RELOC_HIDE() has to be used for the __set_memory_4k() case for
the time being, to avoid compiler warnings because of performing pointer
arithmetic on a NULL pointer, which has undefined behavior. This happens
because __va(0) always translates to NULL. However this will change, and
as soon as this happens the RELOC_HIDE() hack can be removed again.

Reviewed-by: Alexander Gordeev <agordeev@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
arch/s390/mm/init.c
arch/s390/mm/vmem.c