diff options
author | Ayaz Abdulla <aabdulla@nvidia.com> | 2009-02-07 09:24:15 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-02-07 09:24:15 +0100 |
commit | b6e4405bf7241ae91c497e021370066fcfb196c8 (patch) | |
tree | a1f369143df2a7d657407f17ae48a6d6fbd34ffb /drivers/net/forcedeth.c | |
parent | forcedeth: mgmt unit interface (diff) | |
download | linux-b6e4405bf7241ae91c497e021370066fcfb196c8.tar.xz linux-b6e4405bf7241ae91c497e021370066fcfb196c8.zip |
forcedeth: msi interrupt fix
This patch fixes an issue with the suspend/resume cycle with msi
interrupts. See bugzilla number 10487 for more details. The fix is to
re-setup a private msi pci config offset field.
Signed-off-by: Ayaz Abdulla <aabdulla@nvidia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/forcedeth.c')
-rw-r--r-- | drivers/net/forcedeth.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/net/forcedeth.c b/drivers/net/forcedeth.c index da7c9ee069b5..47962ed4b04c 100644 --- a/drivers/net/forcedeth.c +++ b/drivers/net/forcedeth.c @@ -589,6 +589,9 @@ union ring_type { #define NV_MSI_X_VECTOR_TX 0x1 #define NV_MSI_X_VECTOR_OTHER 0x2 +#define NV_MSI_PRIV_OFFSET 0x68 +#define NV_MSI_PRIV_VALUE 0xffffffff + #define NV_RESTART_TX 0x1 #define NV_RESTART_RX 0x2 @@ -6074,6 +6077,8 @@ static int nv_resume(struct pci_dev *pdev) for (i = 0;i <= np->register_size/sizeof(u32); i++) writel(np->saved_config_space[i], base+i*sizeof(u32)); + pci_write_config_dword(pdev, NV_MSI_PRIV_OFFSET, NV_MSI_PRIV_VALUE); + netif_device_attach(dev); if (netif_running(dev)) { rc = nv_open(dev); |