riscv: Do not overwrite initrd_start and initrd_end
setup_initrd() overwrites initrd_start and initrd_end if __initramfs_size is larger than 0, which is always true even if there is no embedded initramfs. This prevents booting qemu with "-initrd" parameter. Overwriting initrd_start and initrd_end is not necessary since __initramfs_start and __initramfs_size are used directly in populate_rootfs() to load the built-in initramfs, so just drop that code. Signed-off-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Palmer Dabbelt <palmer@sifive.com>
This commit is contained in:
committed by
Palmer Dabbelt
parent
57361846b5
commit
e866d3e84e
@@ -85,15 +85,8 @@ atomic_t hart_lottery;
|
|||||||
#ifdef CONFIG_BLK_DEV_INITRD
|
#ifdef CONFIG_BLK_DEV_INITRD
|
||||||
static void __init setup_initrd(void)
|
static void __init setup_initrd(void)
|
||||||
{
|
{
|
||||||
extern char __initramfs_start[];
|
|
||||||
extern unsigned long __initramfs_size;
|
|
||||||
unsigned long size;
|
unsigned long size;
|
||||||
|
|
||||||
if (__initramfs_size > 0) {
|
|
||||||
initrd_start = (unsigned long)(&__initramfs_start);
|
|
||||||
initrd_end = initrd_start + __initramfs_size;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (initrd_start >= initrd_end) {
|
if (initrd_start >= initrd_end) {
|
||||||
printk(KERN_INFO "initrd not found or empty");
|
printk(KERN_INFO "initrd not found or empty");
|
||||||
goto disable;
|
goto disable;
|
||||||
|
|||||||
Reference in New Issue
Block a user