From: Baoquan He <bhe@redhat.com>
To: Paul Menzel <pmenzel@molgen.mpg.de>
Cc: Sony Chacko <sony.chacko@qlogic.com>,
Dept-HSGLinuxNICDev@qlogic.com, netdev@vger.kernel.org,
"David S. Miller" <davem@davemloft.net>,
dvteam@molgen.mpg.de
Subject: Re: [bnx2] [Regression 4.8] Driver loading fails without firmware
Date: Sat, 29 Oct 2016 10:55:38 +0800 [thread overview]
Message-ID: <20161029025538.GA4099@x1> (raw)
In-Reply-To: <f055c961-58ca-ea81-46d8-610fa055cce8@molgen.mpg.de>
On 10/27/16 at 03:21pm, Paul Menzel wrote:
> Dear Baoquan,
> > > 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.
>
> So to summarize, the commit is indeed the culprit.
Hi Paul,
Sorry for this.
Could you tell the steps to reproduce? I will find a machine with bnx2
NIC and check if there's other ways.
Thanks
Baoquan
> From 61b8dac8796343a797858b4a2eb0a59a0cfcd735 Mon Sep 17 00:00:00 2001
> From: Paul Menzel <pmenzel@molgen.mpg.de>
> Date: Thu, 27 Oct 2016 11:34:52 +0200
> Subject: [PATCH] Revert "bnx2: Reset device during driver initialization"
>
> This reverts commit 3e1be7ad2d38c6bd6aeef96df9bd0a7822f4e51c.
> ---
> drivers/net/ethernet/broadcom/bnx2.c | 12 +++++-------
> 1 file changed, 5 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/net/ethernet/broadcom/bnx2.c b/drivers/net/ethernet/broadcom/bnx2.c
> index 27f11a5..ecd357d 100644
> --- a/drivers/net/ethernet/broadcom/bnx2.c
> +++ b/drivers/net/ethernet/broadcom/bnx2.c
> @@ -6356,6 +6356,10 @@ bnx2_open(struct net_device *dev)
> struct bnx2 *bp = netdev_priv(dev);
> int rc;
>
> + rc = bnx2_request_firmware(bp);
> + if (rc < 0)
> + goto out;
> +
> netif_carrier_off(dev);
>
> bnx2_disable_int(bp);
> @@ -6424,6 +6428,7 @@ bnx2_open(struct net_device *dev)
> bnx2_free_irq(bp);
> bnx2_free_mem(bp);
> bnx2_del_napi(bp);
> + bnx2_release_firmware(bp);
> goto out;
> }
>
> @@ -8570,12 +8575,6 @@ bnx2_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
>
> pci_set_drvdata(pdev, dev);
>
> - rc = bnx2_request_firmware(bp);
> - if (rc < 0)
> - goto error;
> -
> -
> - bnx2_reset_chip(bp, BNX2_DRV_MSG_CODE_RESET);
> memcpy(dev->dev_addr, bp->mac_addr, ETH_ALEN);
>
> dev->hw_features = NETIF_F_IP_CSUM | NETIF_F_SG |
> @@ -8608,7 +8607,6 @@ 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);
> --
> 2.4.1
>
next prev parent reply other threads:[~2016-10-29 2:55 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-10-25 14:33 [bnx2] [Regression 4.8] Driver loading fails without firmware Paul Menzel
2016-10-25 15:24 ` Rick Jones
2016-10-25 15:31 ` Paul Menzel
2016-10-25 15:40 ` Rick Jones
2016-10-26 10:31 ` Paul Menzel
2016-10-26 12:00 ` Baoquan He
2016-10-27 13:21 ` Paul Menzel
2016-10-27 18:16 ` Mody, Rasesh
2016-10-29 2:55 ` Baoquan He [this message]
2016-10-30 11:05 ` Paul Menzel
2016-10-31 3:59 ` Baoquan He
2016-10-31 6:38 ` Baoquan He
2016-10-31 10:09 ` Baoquan He
2016-10-31 10:43 ` Paul Menzel
2016-11-01 2:40 ` Baoquan He
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20161029025538.GA4099@x1 \
--to=bhe@redhat.com \
--cc=Dept-HSGLinuxNICDev@qlogic.com \
--cc=davem@davemloft.net \
--cc=dvteam@molgen.mpg.de \
--cc=netdev@vger.kernel.org \
--cc=pmenzel@molgen.mpg.de \
--cc=sony.chacko@qlogic.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.