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

Configure Feed

Select the types of activity you want to include in your feed.

execmem: move execmem_force_rw() and execmem_restore_rox() before use

to avoid static declarations.

Link: https://lkml.kernel.org/r/20250713071730.4117334-5-rppt@kernel.org
Signed-off-by: Mike Rapoport (Microsoft) <rppt@kernel.org>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Daniel Gomez <da.gomez@samsung.com>
Cc: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Cc: Petr Pavlu <petr.pavlu@suse.com>
Cc: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>

authored by

Mike Rapoport (Microsoft) and committed by
Andrew Morton
888b5a84 187fd852

+21 -23
+21 -23
mm/execmem.c
··· 137 137 return err; 138 138 } 139 139 140 + static int execmem_force_rw(void *ptr, size_t size) 141 + { 142 + unsigned int nr = PAGE_ALIGN(size) >> PAGE_SHIFT; 143 + unsigned long addr = (unsigned long)ptr; 144 + int ret; 145 + 146 + ret = set_memory_nx(addr, nr); 147 + if (ret) 148 + return ret; 149 + 150 + return set_memory_rw(addr, nr); 151 + } 152 + 153 + int execmem_restore_rox(void *ptr, size_t size) 154 + { 155 + unsigned int nr = PAGE_ALIGN(size) >> PAGE_SHIFT; 156 + unsigned long addr = (unsigned long)ptr; 157 + 158 + return set_memory_rox(addr, nr); 159 + } 160 + 140 161 static void execmem_cache_clean(struct work_struct *work) 141 162 { 142 163 struct maple_tree *free_areas = &execmem_cache.free_areas; ··· 349 328 return (void *)((unsigned long)ptr & ~PENDING_FREE_MASK); 350 329 } 351 330 352 - static int execmem_force_rw(void *ptr, size_t size); 353 - 354 331 static int __execmem_cache_free(struct ma_state *mas, void *ptr, gfp_t gfp_mask) 355 332 { 356 333 size_t size = mas_range_len(mas); ··· 432 413 schedule_work(&execmem_cache_clean_work); 433 414 434 415 return true; 435 - } 436 - 437 - static int execmem_force_rw(void *ptr, size_t size) 438 - { 439 - unsigned int nr = PAGE_ALIGN(size) >> PAGE_SHIFT; 440 - unsigned long addr = (unsigned long)ptr; 441 - int ret; 442 - 443 - ret = set_memory_nx(addr, nr); 444 - if (ret) 445 - return ret; 446 - 447 - return set_memory_rw(addr, nr); 448 - } 449 - 450 - int execmem_restore_rox(void *ptr, size_t size) 451 - { 452 - unsigned int nr = PAGE_ALIGN(size) >> PAGE_SHIFT; 453 - unsigned long addr = (unsigned long)ptr; 454 - 455 - return set_memory_rox(addr, nr); 456 416 } 457 417 458 418 #else /* CONFIG_ARCH_HAS_EXECMEM_ROX */