Skip to content

Commit 369bc9a

Browse files
Ard Biesheuvelctmarinas
authored andcommitted
of/fdt: factor out assignment of initrd_start/initrd_end
Since architectures may not yet have their linear mapping up and running when the initrd address is discovered from the DT, factor out the assignment of initrd_start and initrd_end, so that an architecture can override it and use the translation it needs. Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Acked-by: Rob Herring <robh@kernel.org> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
1 parent 270522a commit 369bc9a

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

drivers/of/fdt.c

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -760,6 +760,16 @@ const void * __init of_flat_dt_match_machine(const void *default_match,
760760
}
761761

762762
#ifdef CONFIG_BLK_DEV_INITRD
763+
#ifndef __early_init_dt_declare_initrd
764+
static void __early_init_dt_declare_initrd(unsigned long start,
765+
unsigned long end)
766+
{
767+
initrd_start = (unsigned long)__va(start);
768+
initrd_end = (unsigned long)__va(end);
769+
initrd_below_start_ok = 1;
770+
}
771+
#endif
772+
763773
/**
764774
* early_init_dt_check_for_initrd - Decode initrd location from flat tree
765775
* @node: reference to node containing initrd location ('chosen')
@@ -782,9 +792,7 @@ static void __init early_init_dt_check_for_initrd(unsigned long node)
782792
return;
783793
end = of_read_number(prop, len/4);
784794

785-
initrd_start = (unsigned long)__va(start);
786-
initrd_end = (unsigned long)__va(end);
787-
initrd_below_start_ok = 1;
795+
__early_init_dt_declare_initrd(start, end);
788796

789797
pr_debug("initrd_start=0x%llx initrd_end=0x%llx\n",
790798
(unsigned long long)start, (unsigned long long)end);

0 commit comments

Comments
 (0)