diff options
author | Gavin Shan <shangw@linux.vnet.ibm.com> | 2014-01-24 04:12:03 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-01-24 19:00:37 -0500 |
commit | 8b662fe70c68282f78482dc272df0c4f355e49f5 (patch) | |
tree | 769c0d31b2b0b5dbcd24ea8f82ece34dc3367913 | |
parent | 33d99113b1102c2d2f8603b9ba72d89d915c13f5 (diff) |
net/cxgb4: Fix referencing freed adapter
The adapter is freed before we check its flags. It was caused
by commit 144be3d ("net/cxgb4: Avoid disabling PCI device for
towice"). The problem was reported by Intel's "0-day" tool.
The patch fixes it to avoid reverting commit 144be3d.
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Gavin Shan <shangw@linux.vnet.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c index 139a70405582..43ab35fea48d 100644 --- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c +++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | |||
@@ -6163,13 +6163,13 @@ static void remove_one(struct pci_dev *pdev) | |||
6163 | iounmap(adapter->regs); | 6163 | iounmap(adapter->regs); |
6164 | if (!is_t4(adapter->params.chip)) | 6164 | if (!is_t4(adapter->params.chip)) |
6165 | iounmap(adapter->bar2); | 6165 | iounmap(adapter->bar2); |
6166 | kfree(adapter); | ||
6167 | pci_disable_pcie_error_reporting(pdev); | 6166 | pci_disable_pcie_error_reporting(pdev); |
6168 | if ((adapter->flags & DEV_ENABLED)) { | 6167 | if ((adapter->flags & DEV_ENABLED)) { |
6169 | pci_disable_device(pdev); | 6168 | pci_disable_device(pdev); |
6170 | adapter->flags &= ~DEV_ENABLED; | 6169 | adapter->flags &= ~DEV_ENABLED; |
6171 | } | 6170 | } |
6172 | pci_release_regions(pdev); | 6171 | pci_release_regions(pdev); |
6172 | kfree(adapter); | ||
6173 | } else | 6173 | } else |
6174 | pci_release_regions(pdev); | 6174 | pci_release_regions(pdev); |
6175 | } | 6175 | } |