cxgb3 - fix netpoll hanlder
Subsystems (2)
PATCH 2/5 cxgb3 - fix netpoll hanlder
From: Divy Le Ray <[email protected]>
Fix netpoll handler to work with line interrupt, msi and msi-x.
Signed-off-by Divy Le Ray <[email protected]>
---
drivers/net/cxgb3/cxgb3_main.c | 16 +++++++++++++--- drivers/net/cxgb3/sge.c | 1 - 2 files changed, 13 insertions(+), 4 deletions(-)
drivers/net/cxgb3/cxgb3_main.c +13 -3
@@ -2076,10 +2076,20 @@ static void vlan_rx_kill_vid(struct net_static void cxgb_netpoll (struct net_device *dev) {struct adapter *adapter = dev->priv; -struct sge_qset *qs =dev2qset (dev); +struct port_info *pi =netdev_priv (dev); +int qidx; -t3_intr_handler (adapter, qs->rspq.polling) (adapter->pdev->irq, - adapter); +for (qidx = pi->first_qset; qidx < pi->first_qset + pi->nqsets; qidx++) { +struct sge_qset *qs = &adapter->sge.qs[qidx]; +void *source; + +if (adapter->flags &USING_MSIX ) + source = qs; +else + source = adapter; + +t3_intr_handler (adapter, qs->rspq.polling) (0 , source); + } }#endif
drivers/net/cxgb3/sge.c +0 -1
@@ -2217,7 +2217,6 @@ irqreturn_t t3_sge_intr_msix_napi(int irstruct sge_rspq *q = &qs->rspq;spin_lock (&q->lock); -BUG_ON (napi_is_scheduled (qs->netdev));if (handle_responses (adap, q) <0 ) q->unhandled_irqs++;