Re: Loading initrd above 4G causes freeze on boot

From: Yinghai Lu
Date: Sat Aug 09 2014 - 12:45:04 EST


On Sat, Aug 9, 2014 at 7:23 AM, Mantas MikulÄnas <grawity@xxxxxxxxx> wrote:
> As of commit 4bf7111f5016 ("x86/efi: Support initrd loaded above 4G"),
> the kernel freezes at the earliest possible moment when trying to boot
> via UEFI on my Asus laptop. (It still boots via BIOS.)
>
> If I revert that commit on current master (c309bfa9b481), it boots
> correctly again [although I see "setup_efi_pci() failed" being printed].
>
> (Seems like it freezes when handle_cmdline_files() attempts to read
> the last chunk of the initramfs -- the last call to efi_file_read()
> never returns. Figuring out why that happens is beyond me, though.)
>

Matt found that efi_file_read()/firmware has problem that could not do
several reading. Please check if reverting that commit have any
difference.

---
I spent some time playing around with this bug and it appears to be
triggered by the read-a-chunk-at-a-time logic in handle_cmdline_files(),
(which is itself a bug workaround) introduced here,

commit 2d2da60fb40a
Author: Maarten Lankhorst <m.b.lankhorst@xxxxxxxxx>
Date: Fri Dec 16 13:30:58 2011 +0100

x86, efi: Break up large initrd reads
---
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/