IB/mthca: Fix use-after-free on device restart
Signed-off-by: Michael S. Tsirkin <mst@dev.mellanox.co.il> Signed-off-by: Roland Dreier <rolandd@cisco.com>
This commit is contained in:
@@ -1250,12 +1250,14 @@ static void __mthca_remove_one(struct pci_dev *pdev)
|
|||||||
int __mthca_restart_one(struct pci_dev *pdev)
|
int __mthca_restart_one(struct pci_dev *pdev)
|
||||||
{
|
{
|
||||||
struct mthca_dev *mdev;
|
struct mthca_dev *mdev;
|
||||||
|
int hca_type;
|
||||||
|
|
||||||
mdev = pci_get_drvdata(pdev);
|
mdev = pci_get_drvdata(pdev);
|
||||||
if (!mdev)
|
if (!mdev)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
hca_type = mdev->hca_type;
|
||||||
__mthca_remove_one(pdev);
|
__mthca_remove_one(pdev);
|
||||||
return __mthca_init_one(pdev, mdev->hca_type);
|
return __mthca_init_one(pdev, hca_type);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int __devinit mthca_init_one(struct pci_dev *pdev,
|
static int __devinit mthca_init_one(struct pci_dev *pdev,
|
||||||
|
Reference in New Issue
Block a user