Skip to content

Commit 805a3eb

Browse files
xhackerustcpalmer-dabbelt
authored andcommitted
riscv: mm: init: try best to remove #ifdef CONFIG_XIP_KERNEL usage
Currently, the #ifdef CONFIG_XIP_KERNEL usage can be divided into the following three types: The first one is for functions/declarations only used in XIP case. The second one is for XIP_FIXUP case. Something as below: |foo_type foo; |#ifdef CONFIG_XIP_KERNEL |#define foo (*(foo_type *)XIP_FIXUP(&foo)) |#endif Usually, it's better to let the foo macro sit with the foo var together. But if various foos are defined adjacently, we can save some #ifdef CONFIG_XIP_KERNEL usage by grouping them together. The third one is for different implementations for XIP, usually, this is a #ifdef...#else...#endif case. This patch moves the pt_ops macro to adjacent #ifdef CONFIG_XIP_KERNEL and group first type usage cases into one. Signed-off-by: Jisheng Zhang <[email protected]> Reviewed-by: Alexandre Ghiti <[email protected]> Signed-off-by: Palmer Dabbelt <[email protected]>
1 parent fe036db commit 805a3eb

File tree

1 file changed

+3
-8
lines changed

1 file changed

+3
-8
lines changed

arch/riscv/mm/init.c

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,6 @@ EXPORT_SYMBOL(kernel_map);
4040
phys_addr_t phys_ram_base __ro_after_init;
4141
EXPORT_SYMBOL(phys_ram_base);
4242

43-
#ifdef CONFIG_XIP_KERNEL
44-
extern char _xiprom[], _exiprom[], __data_loc;
45-
#endif
46-
4743
unsigned long empty_zero_page[PAGE_SIZE / sizeof(unsigned long)]
4844
__page_aligned_bss;
4945
EXPORT_SYMBOL(empty_zero_page);
@@ -227,10 +223,6 @@ static void __init setup_bootmem(void)
227223
#ifdef CONFIG_MMU
228224
static struct pt_alloc_ops pt_ops __initdata;
229225

230-
#ifdef CONFIG_XIP_KERNEL
231-
#define pt_ops (*(struct pt_alloc_ops *)XIP_FIXUP(&pt_ops))
232-
#endif
233-
234226
unsigned long riscv_pfn_base __ro_after_init;
235227
EXPORT_SYMBOL(riscv_pfn_base);
236228

@@ -242,6 +234,7 @@ pgd_t early_pg_dir[PTRS_PER_PGD] __initdata __aligned(PAGE_SIZE);
242234
static pmd_t __maybe_unused early_dtb_pmd[PTRS_PER_PMD] __initdata __aligned(PAGE_SIZE);
243235

244236
#ifdef CONFIG_XIP_KERNEL
237+
#define pt_ops (*(struct pt_alloc_ops *)XIP_FIXUP(&pt_ops))
245238
#define trampoline_pg_dir ((pgd_t *)XIP_FIXUP(trampoline_pg_dir))
246239
#define fixmap_pte ((pte_t *)XIP_FIXUP(fixmap_pte))
247240
#define early_pg_dir ((pgd_t *)XIP_FIXUP(early_pg_dir))
@@ -446,6 +439,8 @@ static uintptr_t __init best_map_size(phys_addr_t base, phys_addr_t size)
446439
}
447440

448441
#ifdef CONFIG_XIP_KERNEL
442+
extern char _xiprom[], _exiprom[], __data_loc;
443+
449444
/* called from head.S with MMU off */
450445
asmlinkage void __init __copy_data(void)
451446
{

0 commit comments

Comments
 (0)