mirror of
https://github.com/torvalds/linux.git
synced 2026-03-08 03:04:51 +01:00
s390/kfence: Split kfence pool into 4k mappings in arch_kfence_init_pool()
Since commit d08d4e7cd6 ("s390/mm: use full 4KB page for 2KB PTE"),
there is no longer any reason to avoid splitting the kfence pool into
4k mappings in arch_kfence_init_pool(). Remove the architecture-specific
kfence_split_mapping().
Reviewed-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
This commit is contained in:
parent
d93a855c31
commit
caa3cd5ccd
2 changed files with 3 additions and 15 deletions
|
|
@ -11,28 +11,17 @@
|
|||
void __kernel_map_pages(struct page *page, int numpages, int enable);
|
||||
|
||||
static __always_inline bool arch_kfence_init_pool(void)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
#define arch_kfence_test_address(addr) ((addr) & PAGE_MASK)
|
||||
|
||||
/*
|
||||
* Do not split kfence pool to 4k mapping with arch_kfence_init_pool(),
|
||||
* but earlier where page table allocations still happen with memblock.
|
||||
* Reason is that arch_kfence_init_pool() gets called when the system
|
||||
* is still in a limbo state - disabling and enabling bottom halves is
|
||||
* not yet allowed, but that is what our page_table_alloc() would do.
|
||||
*/
|
||||
static __always_inline void kfence_split_mapping(void)
|
||||
{
|
||||
#ifdef CONFIG_KFENCE
|
||||
unsigned long pool_pages = KFENCE_POOL_SIZE >> PAGE_SHIFT;
|
||||
|
||||
set_memory_4k((unsigned long)__kfence_pool, pool_pages);
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
|
||||
#define arch_kfence_test_address(addr) ((addr) & PAGE_MASK)
|
||||
|
||||
static inline bool kfence_protect_page(unsigned long addr, bool protect)
|
||||
{
|
||||
__kernel_map_pages(virt_to_page((void *)addr), 1, !protect);
|
||||
|
|
|
|||
|
|
@ -175,7 +175,6 @@ void __init mem_init(void)
|
|||
high_memory = (void *) __va(max_low_pfn * PAGE_SIZE);
|
||||
|
||||
pv_init();
|
||||
kfence_split_mapping();
|
||||
|
||||
/* this will put all low memory onto the freelists */
|
||||
memblock_free_all();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue