On Wed, May 27, 2020 at 10:30:18PM +0000, Williams, Dan J wrote:
> On Fri, 2020-05-08 at 20:01 +0200, Ard Biesheuvel wrote:
> > From: Arvind Sankar <[email protected]>
> > 
> > Consolidate the initrd loading in efi_main.
> > 
> > The command line options now need to be parsed only once.
> > 
> > Signed-off-by: Arvind Sankar <[email protected]>
> > Link: 
> > https://lore.kernel.org/r/[email protected]
> > Signed-off-by: Ard Biesheuvel <[email protected]>
> 
> Hi,
> 
> This patch patch in tip/master as:
> 
> 987053a30016 efi/x86: Move command-line initrd loading to efi_main
> 
> ...regresses my nfs root configuration. It hangs trying to mount the
> nfs root filesystem "root=/dev/nfs ip=dhcp".
> 
> It does not revert cleanly.
> 
> 

Does this fix it?

diff --git a/drivers/firmware/efi/libstub/x86-stub.c 
b/drivers/firmware/efi/libstub/x86-stub.c
index defeb6035109..f53362efef84 100644
--- a/drivers/firmware/efi/libstub/x86-stub.c
+++ b/drivers/firmware/efi/libstub/x86-stub.c
@@ -771,10 +771,12 @@ unsigned long efi_main(efi_handle_t handle,
                        efi_err("Failed to load initrd!\n");
                        goto fail;
                }
-               efi_set_u64_split(addr, &hdr->ramdisk_image,
-                                 &boot_params->ext_ramdisk_image);
-               efi_set_u64_split(size, &hdr->ramdisk_size,
-                                 &boot_params->ext_ramdisk_size);
+               if (size > 0) {
+                       efi_set_u64_split(addr, &hdr->ramdisk_image,
+                                         &boot_params->ext_ramdisk_image);
+                       efi_set_u64_split(size, &hdr->ramdisk_size,
+                                         &boot_params->ext_ramdisk_size);
+               }
        }
 
        /*

Reply via email to