Message ID | 20081111185559.GD30481@hmsreliant.think-freely.org |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
From: Neil Horman <nhorman@tuxdriver.com> Date: Tue, 11 Nov 2008 15:58:03 -0500 > Fix bnx2 so that netpoll works properly. Specifically: > > 1) Fix parameters to bnx2_interrupt to be a struct bnx2_napi rather than a > struct net_device > > 2) Fix poll_controller method to check every queue in the rx case so frames > aren't missed > > Signed-off-by: Neil Horman <nhorman@tuxdriver.com> This looks good, applied, thanks Neil! -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Wed, Nov 12, 2008 at 04:23:59PM -0800, David Miller wrote: > From: Neil Horman <nhorman@tuxdriver.com> > Date: Tue, 11 Nov 2008 15:58:03 -0500 > > > Fix bnx2 so that netpoll works properly. Specifically: > > > > 1) Fix parameters to bnx2_interrupt to be a struct bnx2_napi rather than a > > struct net_device > > > > 2) Fix poll_controller method to check every queue in the rx case so frames > > aren't missed > > > > Signed-off-by: Neil Horman <nhorman@tuxdriver.com> > > This looks good, applied, thanks Neil! > Thank you Dave! Neil -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/net/bnx2.c b/drivers/net/bnx2.c index 430d430..d07e3f1 100644 --- a/drivers/net/bnx2.c +++ b/drivers/net/bnx2.c @@ -7204,10 +7204,13 @@ static void poll_bnx2(struct net_device *dev) { struct bnx2 *bp = netdev_priv(dev); + int i; - disable_irq(bp->pdev->irq); - bnx2_interrupt(bp->pdev->irq, dev); - enable_irq(bp->pdev->irq); + for (i = 0; i < bp->irq_nvecs; i++) { + disable_irq(bp->irq_tbl[i].vector); + bnx2_interrupt(bp->irq_tbl[i].vector, &bp->bnx2_napi[i]); + enable_irq(bp->irq_tbl[i].vector); + } } #endif