From: Vladislav Zolotarov Date: Sun, 9 Jan 2011 02:20:19 +0000 (+0000) Subject: bnx2x: Move to D0 before clearing MSI/MSI-X configuration. X-Git-Tag: v2.6.38-rc1~403^2~53 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=084d6cbb13e351f48ecd87cc8718ace6b72845e8;p=users%2Fwilly%2Fxarray.git bnx2x: Move to D0 before clearing MSI/MSI-X configuration. Move to D0 before clearing MSI/MSI-X configuration. Otherwise MSI/MSI-X won't be cleared. Signed-off-by: Vladislav Zolotarov Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller --- diff --git a/drivers/net/bnx2x/bnx2x_main.c b/drivers/net/bnx2x/bnx2x_main.c index b5558bc7223d..84e1af4d65e1 100644 --- a/drivers/net/bnx2x/bnx2x_main.c +++ b/drivers/net/bnx2x/bnx2x_main.c @@ -9508,9 +9508,15 @@ static void __devexit bnx2x_remove_one(struct pci_dev *pdev) /* Delete all NAPI objects */ bnx2x_del_all_napi(bp); + /* Power on: we can't let PCI layer write to us while we are in D3 */ + bnx2x_set_power_state(bp, PCI_D0); + /* Disable MSI/MSI-X */ bnx2x_disable_msi(bp); + /* Power off */ + bnx2x_set_power_state(bp, PCI_D3hot); + /* Make sure RESET task is not scheduled before continuing */ cancel_delayed_work_sync(&bp->reset_task);