From: Wei Yang <weiyang@linux.vnet.ibm.com>
To: Amir Vadai <amirv@mellanox.com>
Cc: "David S. Miller" <davem@davemloft.net>,
netdev@vger.kernel.org, Yevgeny Petrilin <yevgenyp@mellanox.com>,
Or Gerlitz <ogerlitz@mellanox.com>,
Bjorn Helgaas <bhelgaas@google.com>,
Wei Yang <weiyang@linux.vnet.ibm.com>
Subject: Re: [PATCH net-next] net/mlx4_core: Handle null return by pci_match_id()
Date: Mon, 31 Mar 2014 11:12:33 +0800 [thread overview]
Message-ID: <20140331031233.GA7593@richard> (raw)
In-Reply-To: <1396193215-6863-1-git-send-email-amirv@mellanox.com>
Thanks Amir and Bjorn,
I missed this code path, we should take dynids carefully.
On Sun, Mar 30, 2014 at 06:26:55PM +0300, Amir Vadai wrote:
>Fix issue introduced by commit: 97a5221 "net/mlx4_core: pass
>pci_device_id.driver_data to __mlx4_init_one during reset".
>
>pci_match_id() might return NULL if someone binds the driver to a device
>manually using /sys/bus/pci/drivers/.../new_id. Need to check 'id'
>before using it.
>
>Thanks to Bjorn who raised the problem.
>
>CC: Bjorn Helgaas <bhelgaas@google.com>
>CC: Wei Yang <weiyang@linux.vnet.ibm.com>
>Signed-off-by: Amir Vadai <amirv@mellanox.com>
>---
> drivers/net/ethernet/mellanox/mlx4/main.c | 3 +++
> 1 file changed, 3 insertions(+)
>
>diff --git a/drivers/net/ethernet/mellanox/mlx4/main.c b/drivers/net/ethernet/mellanox/mlx4/main.c
>index f0ae95f..a2f6623 100644
>--- a/drivers/net/ethernet/mellanox/mlx4/main.c
>+++ b/drivers/net/ethernet/mellanox/mlx4/main.c
>@@ -2759,6 +2759,9 @@ static pci_ers_result_t mlx4_pci_slot_reset(struct pci_dev *pdev)
> int ret;
>
> id = pci_match_id(mlx4_pci_table, pdev);
>+ if (!id)
>+ return PCI_ERS_RESULT_DISCONNECT;
>+
So when there is really someone create a new dynamic id for this driver, this
change will fail to reset this device. And actually, in general, driver can
reset it. In my mind, we can't say it is disconnected, since we just not find it.
My suggestion is we find it both in dynamic ids and static ids. Will send a
fix soon.
> ret = __mlx4_init_one(pdev, id->driver_data);
>
> return ret ? PCI_ERS_RESULT_DISCONNECT : PCI_ERS_RESULT_RECOVERED;
>--
>1.8.3.4
--
Richard Yang
Help you, Help me
prev parent reply other threads:[~2014-03-31 3:12 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-30 15:26 [PATCH net-next] net/mlx4_core: Handle null return by pci_match_id() Amir Vadai
2014-03-30 18:08 ` Or Gerlitz
2014-03-31 3:54 ` Wei Yang
2014-03-31 4:52 ` Or Gerlitz
2014-03-31 6:29 ` Amir Vadai
2014-03-31 7:01 ` Wei Yang
2014-03-31 20:32 ` David Miller
2014-04-01 1:41 ` Wei Yang
2014-04-01 3:12 ` Bjorn Helgaas
2014-04-01 3:14 ` Wei Yang
2014-03-31 3:12 ` Wei Yang [this message]
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=20140331031233.GA7593@richard \
--to=weiyang@linux.vnet.ibm.com \
--cc=amirv@mellanox.com \
--cc=bhelgaas@google.com \
--cc=davem@davemloft.net \
--cc=netdev@vger.kernel.org \
--cc=ogerlitz@mellanox.com \
--cc=yevgenyp@mellanox.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).