|
@@ -2071,10 +2071,20 @@ static void vlan_rx_register(struct net_device *dev, struct vlan_group *grp)
|
|
|
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
|
|
|
|