TLDR; I've convinced myself that the first patch can be safely dropped, so I've re-uploaded without it.
I attempted to demonstrate the problem I mentioned in Comment #3 that 0001-Fix-the-error-path-in-set_disk_and_part_name.patch addresses. Basically, what would happen if I passed in a device that set_disk_and_part_name() did not know about, causing it to incorrectly report no error while leaving dev->disk_name/dev->part_name uninitialized in the caller. Turns out, the answer is "nothing awful". I used the following test on a system where nvme0n1 was a nvme-subsys device, which focal's set_disk_and_part_name() would not recognize: #include <stddef.h> #include <stdint.h> #include <stdio.h> #include <sys/types.h> #include <efivar/efiboot-creator.h> extern int efi_set_verbose(int verbosity, FILE *errlog); int main() { int err; efi_set_verbose(1, stderr); err = efi_generate_file_device_path_from_esp(NULL, 0, "/dev/nvme0n1", 1, "\\EFI\\debian\\grub.efi", EFIBOOT_ABBREV_EDD10, 0x80); } Even though neither name was set, the pointer value happens to be zeroed out: linux.c:387 device_get(): dev->disk_name: (null) linux.c:388 device_get(): dev->part_name: (null) And everything between that and the next error check seems to handle a NULL pointer well, so we safely bail at the next check: linux.c:392 device_get(): readlink of /sys/block/(null)/device failed That's great if they *are* zero'd out - but is that guaranteed? Yes - the dev is allocated using calloc, which always sets allocated memory to 0. -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1891718 Title: [Regression] breaks GRUB install on an nvme device To manage notifications about this bug go to: https://bugs.launchpad.net/efivar/+bug/1891718/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs