diff mbox

net: thunder: Fix crash upon shutdown after failed probe

Message ID 1447329318-7840-1-git-send-email-p.fedin@samsung.com
State Accepted, archived
Delegated to: David Miller
Headers show

Commit Message

Pavel Fedin Nov. 12, 2015, 11:55 a.m. UTC
If device probe fails, driver remains bound to the PCI device. However,
driver data has been reset to NULL. This causes crash upon dereferencing
it in nicvf_remove()

Signed-off-by: Pavel Fedin <p.fedin@samsung.com>
---
 drivers/net/ethernet/cavium/thunder/nicvf_main.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

David Miller Nov. 15, 2015, 11:30 p.m. UTC | #1
From: Pavel Fedin <p.fedin@samsung.com>
Date: Thu, 12 Nov 2015 14:55:18 +0300

> If device probe fails, driver remains bound to the PCI device. However,
> driver data has been reset to NULL. This causes crash upon dereferencing
> it in nicvf_remove()
> 
> Signed-off-by: Pavel Fedin <p.fedin@samsung.com>

Applied, thanks.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Pavel Fedin Nov. 16, 2015, 1:21 p.m. UTC | #2
Hello!

> > If device probe fails, driver remains bound to the PCI device. However,
> > driver data has been reset to NULL. This causes crash upon dereferencing
> > it in nicvf_remove()
> >
> > Signed-off-by: Pavel Fedin <p.fedin@samsung.com>
> 
> Applied, thanks.

 Thank you very much, however i've just found one more case where i still get this crash. I should have done this from the
beginning, but please revert it in your repo, i'm sending v2, which covers more cases.
 The new case is feeding the device to vfio after the probe failed. In this case nicvf_remove() is called upon unbind.

Kind regards,
Pavel Fedin
Expert Engineer
Samsung Electronics Research center Russia


--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
David Miller Nov. 16, 2015, 2:26 p.m. UTC | #3
From: Pavel Fedin <p.fedin@samsung.com>
Date: Mon, 16 Nov 2015 16:21:06 +0300

>  Thank you very much, however i've just found one more case where i
> still get this crash. I should have done this from the beginning,
> but please revert it in your repo, i'm sending v2, which covers more
> cases.  The new case is feeding the device to vfio after the probe
> failed. In this case nicvf_remove() is called upon unbind.

Commits installed in my tree are part of the permanent commit
reccord, and will not be reverted.

Please instead send me a relative patch which takes care of
the other cases.

Thanks.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/net/ethernet/cavium/thunder/nicvf_main.c b/drivers/net/ethernet/cavium/thunder/nicvf_main.c
index a937772..372c39e 100644
--- a/drivers/net/ethernet/cavium/thunder/nicvf_main.c
+++ b/drivers/net/ethernet/cavium/thunder/nicvf_main.c
@@ -1600,6 +1600,9 @@  static void nicvf_remove(struct pci_dev *pdev)
 
 static void nicvf_shutdown(struct pci_dev *pdev)
 {
+	if (!pci_get_drvdata(pdev))
+		return;
+
 	nicvf_remove(pdev);
 }