of/fdt: Remove custom __early_init_dt_declare_initrd() implementation
Now that ARM64 uses phys_initrd_start/phys_initrd_size, we can get rid of its custom __early_init_dt_declare_initrd() which causes a fair amount of objects rebuild when changing CONFIG_BLK_DEV_INITRD. In order to make sure ARM64 does not produce a BUG() when VM debugging is turned on though, we must avoid early calls to __va() which is what __early_init_dt_declare_initrd() does and wrap this around to avoid running that code on ARM64. Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Reviewed-by: Mike Rapoport <rppt@linux.ibm.com> Signed-off-by: Rob Herring <robh@kernel.org>
This commit is contained in:
parent
c756c592e4
commit
cdbc848b03
|
@ -168,14 +168,6 @@
|
|||
#define IOREMAP_MAX_ORDER (PMD_SHIFT)
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_BLK_DEV_INITRD
|
||||
#define __early_init_dt_declare_initrd(__start, __end) \
|
||||
do { \
|
||||
initrd_start = (__start); \
|
||||
initrd_end = (__end); \
|
||||
} while (0)
|
||||
#endif
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
#include <linux/bitops.h>
|
||||
|
|
|
@ -891,15 +891,20 @@ const void * __init of_flat_dt_match_machine(const void *default_match,
|
|||
}
|
||||
|
||||
#ifdef CONFIG_BLK_DEV_INITRD
|
||||
#ifndef __early_init_dt_declare_initrd
|
||||
static void __early_init_dt_declare_initrd(unsigned long start,
|
||||
unsigned long end)
|
||||
{
|
||||
/* ARM64 would cause a BUG to occur here when CONFIG_DEBUG_VM is
|
||||
* enabled since __va() is called too early. ARM64 does make use
|
||||
* of phys_initrd_start/phys_initrd_size so we can skip this
|
||||
* conversion.
|
||||
*/
|
||||
if (!IS_ENABLED(CONFIG_ARM64)) {
|
||||
initrd_start = (unsigned long)__va(start);
|
||||
initrd_end = (unsigned long)__va(end);
|
||||
initrd_below_start_ok = 1;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* early_init_dt_check_for_initrd - Decode initrd location from flat tree
|
||||
|
|
Loading…
Reference in New Issue