aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/forcedeth.c26
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
3735static 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
3754static irqreturn_t nv_nic_irq_rx(int foo, void *data) 3734static 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
3802static irqreturn_t nv_nic_irq_other(int foo, void *data) 3781static 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;