Hi, On Sat, Feb 26, 2022 at 12:37:55PM +0000, Etienne Dechamps wrote: > Package: firmware-bnx2x > Version: 20210818-1 > Severity: grave > > On Linux 5.16, the bnx2x module requests firmware 7.13.21.0: > > # modinfo bnx2x > filename: > /lib/modules/5.16.0-2-amd64/kernel/drivers/net/ethernet/broadcom/bnx2x/bnx2x.ko > firmware: bnx2x/bnx2x-e2-7.13.21.0.fw > firmware: bnx2x/bnx2x-e1h-7.13.21.0.fw > firmware: bnx2x/bnx2x-e1-7.13.21.0.fw > > This firmware is not present in the firmware-bnx2x package. > > Now, my understanding is that the bnx2x module can fall back to an > earlier version (7.13.15.0) as needed, but in practice that might not > actually help, because update-initramfs only looks for the firmware > version from the module information and doesn't include any other > version: > > # update-initramfs -u > W: Possible missing firmware /lib/firmware/bnx2x/bnx2x-e2-7.13.21.0.fw > for module bnx2x > W: Possible missing firmware > /lib/firmware/bnx2x/bnx2x-e1h-7.13.21.0.fw for module bnx2x > W: Possible missing firmware /lib/firmware/bnx2x/bnx2x-e1-7.13.21.0.fw > for module bnx2x > > Since no firmware is included in the initramfs, the bnx2x module > unsurprisingly fails to initialize on boot: > > kernel: bnx2x 0000:02:00.1: firmware: failed to load > bnx2x/bnx2x-e2-7.13.21.0.fw (-2) > kernel: bnx2x 0000:02:00.1: Direct firmware load for > bnx2x/bnx2x-e2-7.13.21.0.fw failed with error -2 > kernel: bnx2x 0000:02:00.1: firmware: failed to load > bnx2x/bnx2x-e2-7.13.15.0.fw (-2) > kernel: bnx2x 0000:02:00.1: Direct firmware load for > bnx2x/bnx2x-e2-7.13.15.0.fw failed with error -2 > > Adding insult to injury, it doesn't look like it's possible to recover > from this state - as far as I could tell, once bnx2x fails to > initialize, it's game over until the next reboot, even if the module > is unloaded and reloaded, and even if the PCI device is removed and > rescanned. > > This basically means that, when booting current Debian Unstable with > Linux 5.16, bnx2x NICs become *permanently unusable*, potentially > locking users and admins out of the system. > > My suggested short-term fix would be to update the firmware-bnx2x > package to include the 7.13.21.0 firmware version. There's also a > discussion to be had with regard to update-initramfs, which should > perhaps try harder to find potentially compatible firmware versions - > indeed, if update-initramfs had included 7.13.15.0, I believe this > issue would have been avoided. > > For those affected, here's the workaround I used: > > 1. Manually download the 7.13.21.0 firmware files from > https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/bnx2x > 2. Put the files in /lib/firmware/bnx2x > 3. Run update-initramfs -u > 4. Reboot
Unless mistaken, there is the kernel side of this issue upstream https://bugzilla.kernel.org/show_bug.cgi?id=215627 which was fixed in 5.17-rc6[1], and got backported as well to 5.16.12 (and so in the next unstable upload). [1]: https://git.kernel.org/linus/e13ad1443684f7afaff24cf207e85e97885256bd Regards, Salvatore