Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

s390/set_memory: generate all set_memory() functions

The set_memory() functions all follow the same pattern. Use a macro to
generate them, and in result remove a bit of code.

Reviewed-by: Alexander Gordeev <agordeev@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>

+12 -32
+12 -32
arch/s390/include/asm/set_memory.h
··· 26 26 27 27 int __set_memory(unsigned long addr, int numpages, unsigned long flags); 28 28 29 - static inline int set_memory_ro(unsigned long addr, int numpages) 30 - { 31 - return __set_memory(addr, numpages, SET_MEMORY_RO); 32 - } 33 - 34 - static inline int set_memory_rw(unsigned long addr, int numpages) 35 - { 36 - return __set_memory(addr, numpages, SET_MEMORY_RW); 37 - } 38 - 39 - static inline int set_memory_nx(unsigned long addr, int numpages) 40 - { 41 - return __set_memory(addr, numpages, SET_MEMORY_NX); 42 - } 43 - 44 - static inline int set_memory_x(unsigned long addr, int numpages) 45 - { 46 - return __set_memory(addr, numpages, SET_MEMORY_X); 47 - } 48 - 49 29 #define set_memory_rox set_memory_rox 50 - static inline int set_memory_rox(unsigned long addr, int numpages) 51 - { 52 - return __set_memory(addr, numpages, SET_MEMORY_RO | SET_MEMORY_X); 30 + 31 + #define __SET_MEMORY_FUNC(fname, flags) \ 32 + static inline int fname(unsigned long addr, int numpages) \ 33 + { \ 34 + return __set_memory(addr, numpages, (flags)); \ 53 35 } 54 36 55 - static inline int set_memory_rwnx(unsigned long addr, int numpages) 56 - { 57 - return __set_memory(addr, numpages, SET_MEMORY_RW | SET_MEMORY_NX); 58 - } 59 - 60 - static inline int set_memory_4k(unsigned long addr, int numpages) 61 - { 62 - return __set_memory(addr, numpages, SET_MEMORY_4K); 63 - } 37 + __SET_MEMORY_FUNC(set_memory_ro, SET_MEMORY_RO) 38 + __SET_MEMORY_FUNC(set_memory_rw, SET_MEMORY_RW) 39 + __SET_MEMORY_FUNC(set_memory_nx, SET_MEMORY_NX) 40 + __SET_MEMORY_FUNC(set_memory_x, SET_MEMORY_X) 41 + __SET_MEMORY_FUNC(set_memory_rox, SET_MEMORY_RO | SET_MEMORY_X) 42 + __SET_MEMORY_FUNC(set_memory_rwnx, SET_MEMORY_RW | SET_MEMORY_NX) 43 + __SET_MEMORY_FUNC(set_memory_4k, SET_MEMORY_4K) 64 44 65 45 int set_direct_map_invalid_noflush(struct page *page); 66 46 int set_direct_map_default_noflush(struct page *page);