Hi Paul, On 10/26/16 at 12:31pm, Paul Menzel wrote: > Baoquan, could you please fix this regression. My suggestion is, that you > add the old code back, but check if the firmware has been loaded. If it > hasn’t, load it again. > > That way, people can update their Linux kernel, and it continues working > without changing the initramfs, or anything else.
I checked code and this looks good to me. I can post a patch with this change to upstream, see what maintainers and other reviewers say. The thing is I don't understand quite well about your requirement. With my understanding, you just didn't add bnx2 firmware into initramfs, but later opening the interface can still request that firmware with "ifup eth-xxx" command. Is that correct? If yes, requeting firmware twice in probing path and opening path looks good. However I am wondering what's your exact steps to do this. What I tried to do is I execute command "dracut --add-drivers bnx2 -f /boot/initramfs-4.9.0-rc3+.img 4.9.0-rc3+" to build a new initramfs, meanwhile make sure bnx2.ko is included, then uncompressed initramfs and deleted bnx2 folder under lib/firmware/ of uncompressed initramfs. Then pack them to be /boot/initramfs-4.9.0-rc3+.img and restart. I did saw below failure message. But later how did you really make the bnx2 network interface up? Could you say it more specifically? [ 7.364186] bnx2: QLogic bnx2 Gigabit Ethernet Driver v2.2.6 (January 29, 2014) [ 7.371706] ACPI: PCI Interrupt Link [LN44] enabled at IRQ 44 [ 7.378128] bnx2 0000:01:00.0: Direct firmware load for bnx2/bnx2-mips-09-6.2.1b.fw failed with error -2 [ 7.387619] bnx2: Can't load firmware file "bnx2/bnx2-mips-09-6.2.1b.fw" [ 7.387888] bnx2: probe of 0000:01:00.0 failed with error -2 [ 7.388990] ACPI: PCI Interrupt Link [LN45] enabled at IRQ 45 [ 7.389370] bnx2 0000:01:00.1: Direct firmware load for bnx2/bnx2-mips-09-6.2.1b.fw failed with error -2 [ 7.389371] bnx2: Can't load firmware file "bnx2/bnx2-mips-09-6.2.1b.fw" [ 7.389475] bnx2: probe of 0000:01:00.1 failed with error -2 Thanks Baoquan