RE: [bnx2] [Regression 4.8] Driver loading fails without firmware
From: Mody, Rasesh <hidden>
Date: 2016-10-27 18:50:06
From: dept_hsg_linux_nic_dev-bounces@qlclistserver.qlogic.com [mailto:dept_hsg_linux_nic_dev-bounces@qlclistserver.qlogic.com] On Behalf Of Paul Menzel Dear Baoquan, On 10/26/16 14:00, Baoquan He wrote:quoted
On 10/26/16 at 12:31pm, Paul Menzel wrote:quoted
quoted
quoted
dev->hw_features = NETIF_F_IP_CSUM | NETIF_F_SG | @@ -8607,6 +8608,7 @@ bnx2_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) return 0; error: + bnx2_release_firmware(bp); pci_iounmap(pdev, bp->regview); pci_release_regions(pdev); pci_disable_device(pdev);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 saw your mail but I am also not familiar with bnx2 driver. As the commit log says I just tried to make bnx2 driver reset itself earlier. So you did a git bisect and found this commit caused the regression, right? If yes, and network developers have no action, I will look into the code and see if I have idea to fix it.Well, I looked through the commits and found that one, which would explain the changed behavior. To be sure, and to follow your request, I took Linux 4.8.4 and reverted your commit (attached). Then I deleted the firmware again from the initramfs, and rebooted. The devices showed up just fine as before.
Thanks Paul! Acked-by: Rasesh Mody <redacted>
So to summarize, the commit is indeed the culprit. Thank you for looking into this. Kind regards, Paul