diff options
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/forcedeth.c | 26 |
1 files changed, 5 insertions, 21 deletions
diff --git a/drivers/net/forcedeth.c b/drivers/net/forcedeth.c index 5346410aeb6e..a4f2f146ae68 100644 --- a/drivers/net/forcedeth.c +++ b/drivers/net/forcedeth.c | |||
@@ -3731,26 +3731,6 @@ static int nv_napi_poll(struct napi_struct *napi, int budget) | |||
3731 | } | 3731 | } |
3732 | #endif | 3732 | #endif |
3733 | 3733 | ||
3734 | #ifdef CONFIG_FORCEDETH_NAPI | ||
3735 | static irqreturn_t nv_nic_irq_rx(int foo, void *data) | ||
3736 | { | ||
3737 | struct net_device *dev = (struct net_device *) data; | ||
3738 | struct fe_priv *np = netdev_priv(dev); | ||
3739 | u8 __iomem *base = get_hwbase(dev); | ||
3740 | u32 events; | ||
3741 | |||
3742 | events = readl(base + NvRegMSIXIrqStatus) & NVREG_IRQ_RX_ALL; | ||
3743 | |||
3744 | if (events) { | ||
3745 | /* disable receive interrupts on the nic */ | ||
3746 | writel(NVREG_IRQ_RX_ALL, base + NvRegIrqMask); | ||
3747 | pci_push(base); | ||
3748 | writel(NVREG_IRQ_RX_ALL, base + NvRegMSIXIrqStatus); | ||
3749 | napi_schedule(&np->napi); | ||
3750 | } | ||
3751 | return IRQ_HANDLED; | ||
3752 | } | ||
3753 | #else | ||
3754 | static irqreturn_t nv_nic_irq_rx(int foo, void *data) | 3734 | static irqreturn_t nv_nic_irq_rx(int foo, void *data) |
3755 | { | 3735 | { |
3756 | struct net_device *dev = (struct net_device *) data; | 3736 | struct net_device *dev = (struct net_device *) data; |
@@ -3797,7 +3777,6 @@ static irqreturn_t nv_nic_irq_rx(int foo, void *data) | |||
3797 | 3777 | ||
3798 | return IRQ_RETVAL(i); | 3778 | return IRQ_RETVAL(i); |
3799 | } | 3779 | } |
3800 | #endif | ||
3801 | 3780 | ||
3802 | static irqreturn_t nv_nic_irq_other(int foo, void *data) | 3781 | static irqreturn_t nv_nic_irq_other(int foo, void *data) |
3803 | { | 3782 | { |
@@ -5670,7 +5649,12 @@ static int __devinit nv_probe(struct pci_dev *pci_dev, const struct pci_device_i | |||
5670 | np->msi_flags |= NV_MSI_CAPABLE; | 5649 | np->msi_flags |= NV_MSI_CAPABLE; |
5671 | } | 5650 | } |
5672 | if ((id->driver_data & DEV_HAS_MSI_X) && msix) { | 5651 | if ((id->driver_data & DEV_HAS_MSI_X) && msix) { |
5652 | /* msix has had reported issues when modifying irqmask | ||
5653 | as in the case of napi, therefore, disable for now | ||
5654 | */ | ||
5655 | #ifndef CONFIG_FORCEDETH_NAPI | ||
5673 | np->msi_flags |= NV_MSI_X_CAPABLE; | 5656 | np->msi_flags |= NV_MSI_X_CAPABLE; |
5657 | #endif | ||
5674 | } | 5658 | } |
5675 | 5659 | ||
5676 | np->pause_flags = NV_PAUSEFRAME_RX_CAPABLE | NV_PAUSEFRAME_RX_REQ | NV_PAUSEFRAME_AUTONEG; | 5660 | np->pause_flags = NV_PAUSEFRAME_RX_CAPABLE | NV_PAUSEFRAME_RX_REQ | NV_PAUSEFRAME_AUTONEG; |