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

um: Remove fixaddr_user_init()

With the removal of the vDSO passthrough from the host,
FIXADDR_USER_START is always 0 and fixaddr_user_init() is dead code.

Remove it.

Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
Link: https://patch.msgid.link/20251028-uml-remove-32bit-pseudo-vdso-v1-6-e930063eff5f@weissschuh.net
Signed-off-by: Johannes Berg <johannes.berg@intel.com>

authored by

Thomas Weißschuh and committed by
Johannes Berg
78fdfc9f dbd7cf40

-107
-107
arch/um/kernel/mem.c
··· 84 84 kmalloc_ok = 1; 85 85 } 86 86 87 - #if IS_ENABLED(CONFIG_ARCH_REUSE_HOST_VSYSCALL_AREA) 88 - /* 89 - * Create a page table and place a pointer to it in a middle page 90 - * directory entry. 91 - */ 92 - static void __init one_page_table_init(pmd_t *pmd) 93 - { 94 - if (pmd_none(*pmd)) { 95 - pte_t *pte = (pte_t *) memblock_alloc_low(PAGE_SIZE, 96 - PAGE_SIZE); 97 - if (!pte) 98 - panic("%s: Failed to allocate %lu bytes align=%lx\n", 99 - __func__, PAGE_SIZE, PAGE_SIZE); 100 - 101 - set_pmd(pmd, __pmd(_KERNPG_TABLE + 102 - (unsigned long) __pa(pte))); 103 - BUG_ON(pte != pte_offset_kernel(pmd, 0)); 104 - } 105 - } 106 - 107 - static void __init one_md_table_init(pud_t *pud) 108 - { 109 - #if CONFIG_PGTABLE_LEVELS > 2 110 - pmd_t *pmd_table = (pmd_t *) memblock_alloc_low(PAGE_SIZE, PAGE_SIZE); 111 - if (!pmd_table) 112 - panic("%s: Failed to allocate %lu bytes align=%lx\n", 113 - __func__, PAGE_SIZE, PAGE_SIZE); 114 - 115 - set_pud(pud, __pud(_KERNPG_TABLE + (unsigned long) __pa(pmd_table))); 116 - BUG_ON(pmd_table != pmd_offset(pud, 0)); 117 - #endif 118 - } 119 - 120 - static void __init one_ud_table_init(p4d_t *p4d) 121 - { 122 - #if CONFIG_PGTABLE_LEVELS > 3 123 - pud_t *pud_table = (pud_t *) memblock_alloc_low(PAGE_SIZE, PAGE_SIZE); 124 - if (!pud_table) 125 - panic("%s: Failed to allocate %lu bytes align=%lx\n", 126 - __func__, PAGE_SIZE, PAGE_SIZE); 127 - 128 - set_p4d(p4d, __p4d(_KERNPG_TABLE + (unsigned long) __pa(pud_table))); 129 - BUG_ON(pud_table != pud_offset(p4d, 0)); 130 - #endif 131 - } 132 - 133 - static void __init fixrange_init(unsigned long start, unsigned long end, 134 - pgd_t *pgd_base) 135 - { 136 - pgd_t *pgd; 137 - p4d_t *p4d; 138 - pud_t *pud; 139 - pmd_t *pmd; 140 - int i, j; 141 - unsigned long vaddr; 142 - 143 - vaddr = start; 144 - i = pgd_index(vaddr); 145 - j = pmd_index(vaddr); 146 - pgd = pgd_base + i; 147 - 148 - for ( ; (i < PTRS_PER_PGD) && (vaddr < end); pgd++, i++) { 149 - p4d = p4d_offset(pgd, vaddr); 150 - if (p4d_none(*p4d)) 151 - one_ud_table_init(p4d); 152 - pud = pud_offset(p4d, vaddr); 153 - if (pud_none(*pud)) 154 - one_md_table_init(pud); 155 - pmd = pmd_offset(pud, vaddr); 156 - for (; (j < PTRS_PER_PMD) && (vaddr < end); pmd++, j++) { 157 - one_page_table_init(pmd); 158 - vaddr += PMD_SIZE; 159 - } 160 - j = 0; 161 - } 162 - } 163 - 164 - static void __init fixaddr_user_init( void) 165 - { 166 - long size = FIXADDR_USER_END - FIXADDR_USER_START; 167 - pte_t *pte; 168 - phys_t p; 169 - unsigned long v, vaddr = FIXADDR_USER_START; 170 - 171 - if (!size) 172 - return; 173 - 174 - fixrange_init( FIXADDR_USER_START, FIXADDR_USER_END, swapper_pg_dir); 175 - v = (unsigned long) memblock_alloc_low(size, PAGE_SIZE); 176 - if (!v) 177 - panic("%s: Failed to allocate %lu bytes align=%lx\n", 178 - __func__, size, PAGE_SIZE); 179 - 180 - memcpy((void *) v , (void *) FIXADDR_USER_START, size); 181 - p = __pa(v); 182 - for ( ; size > 0; size -= PAGE_SIZE, vaddr += PAGE_SIZE, 183 - p += PAGE_SIZE) { 184 - pte = virt_to_kpte(vaddr); 185 - pte_set_val(*pte, p, PAGE_READONLY); 186 - } 187 - } 188 - #endif 189 - 190 87 void __init paging_init(void) 191 88 { 192 89 unsigned long max_zone_pfn[MAX_NR_ZONES] = { 0 }; ··· 96 199 97 200 max_zone_pfn[ZONE_NORMAL] = high_physmem >> PAGE_SHIFT; 98 201 free_area_init(max_zone_pfn); 99 - 100 - #if IS_ENABLED(CONFIG_ARCH_REUSE_HOST_VSYSCALL_AREA) 101 - fixaddr_user_init(); 102 - #endif 103 202 } 104 203 105 204 /*