netxen: fix crashes during module unload
This patch fixes two problems during driver unload. The pci_disable_device() call is before firmware reload, causing reads and writes across PCI bus after disabling device. Second problem is the register window was wrong during firmware reload Signed-off by: Dhananjay Phadke <dhananjay@netxen.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
This commit is contained in:

committed by
Jeff Garzik

parent
b3e2d8874e
commit
3052246c81
@@ -904,11 +904,11 @@ netxen_nic_pci_set_window(struct netxen_adapter *adapter,
|
||||
ddr_mn_window = window;
|
||||
writel(window, PCI_OFFSET_SECOND_RANGE(adapter,
|
||||
NETXEN_PCIX_PH_REG
|
||||
(PCIX_MN_WINDOW)));
|
||||
(PCIX_MN_WINDOW(adapter->ahw.pci_func))));
|
||||
/* MUST make sure window is set before we forge on... */
|
||||
readl(PCI_OFFSET_SECOND_RANGE(adapter,
|
||||
NETXEN_PCIX_PH_REG
|
||||
(PCIX_MN_WINDOW)));
|
||||
(PCIX_MN_WINDOW(adapter->ahw.pci_func))));
|
||||
}
|
||||
addr -= (window * NETXEN_WINDOW_ONE);
|
||||
addr += NETXEN_PCI_DDR_NET;
|
||||
@@ -929,11 +929,11 @@ netxen_nic_pci_set_window(struct netxen_adapter *adapter,
|
||||
writel((window << 22),
|
||||
PCI_OFFSET_SECOND_RANGE(adapter,
|
||||
NETXEN_PCIX_PH_REG
|
||||
(PCIX_SN_WINDOW)));
|
||||
(PCIX_SN_WINDOW(adapter->ahw.pci_func))));
|
||||
/* MUST make sure window is set before we forge on... */
|
||||
readl(PCI_OFFSET_SECOND_RANGE(adapter,
|
||||
NETXEN_PCIX_PH_REG
|
||||
(PCIX_SN_WINDOW)));
|
||||
(PCIX_SN_WINDOW(adapter->ahw.pci_func))));
|
||||
}
|
||||
addr -= (window * 0x400000);
|
||||
addr += NETXEN_PCI_QDR_NET;
|
||||
|
Reference in New Issue
Block a user