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)
|
#define IOREMAP_MAX_ORDER (PMD_SHIFT)
|
||||||
#endif
|
#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__
|
#ifndef __ASSEMBLY__
|
||||||
|
|
||||||
#include <linux/bitops.h>
|
#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
|
#ifdef CONFIG_BLK_DEV_INITRD
|
||||||
#ifndef __early_init_dt_declare_initrd
|
|
||||||
static void __early_init_dt_declare_initrd(unsigned long start,
|
static void __early_init_dt_declare_initrd(unsigned long start,
|
||||||
unsigned long end)
|
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_start = (unsigned long)__va(start);
|
||||||
initrd_end = (unsigned long)__va(end);
|
initrd_end = (unsigned long)__va(end);
|
||||||
initrd_below_start_ok = 1;
|
initrd_below_start_ok = 1;
|
||||||
}
|
}
|
||||||
#endif
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* early_init_dt_check_for_initrd - Decode initrd location from flat tree
|
* early_init_dt_check_for_initrd - Decode initrd location from flat tree
|
||||||
|
|
Loading…
Reference in New Issue