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

Reply via email to