| Submitter | françois romieu |
|---|---|
| Date | Jan. 30, 2013, 12:04 a.m. |
| Message ID | <20130130000432.GA28621@electric-eye.fr.zoreil.com> |
| Download | mbox | patch |
| Permalink | /patch/216737/ |
| State | RFC |
| Delegated to: | David Miller |
| Headers | show |
Comments
On Wed, Jan 30, 2013 at 01:04:32AM +0100, Francois Romieu wrote: > David Miller <davem@davemloft.net> : > [...] > > I don't think you can't keep using dev_kfree_skb_irq() there. > > > > Francois any objections to this patch? > > None. > > I have almost surely broken via-rhine with NOHZ as I broke the r8169 > driver before 7dbb491878a2c51d372a8890fa45a8ff80358af1. Something like > the patch below could be needed as well (quick shot before bed time > and ~24h delay if Jamie wants to try something now). > > diff --git a/drivers/net/ethernet/via/via-rhine.c b/drivers/net/ethernet/via/via-rhine.c > index 7992b3e..5c7e900 100644 > --- a/drivers/net/ethernet/via/via-rhine.c > +++ b/drivers/net/ethernet/via/via-rhine.c > @@ -2010,11 +2010,7 @@ static void rhine_slow_event_task(struct work_struct *work) > if (intr_status & IntrPCIErr) > netif_warn(rp, hw, dev, "PCI error\n"); > > - napi_disable(&rp->napi); > - rhine_irq_disable(rp); > - /* Slow and safe. Consider __napi_schedule as a replacement ? */ > - napi_enable(&rp->napi); > - napi_schedule(&rp->napi); > + iowrite16(RHINE_EVENT & 0xffff, rp->base + IntrEnable); > > out_unlock: > mutex_unlock(&rp->task_lock); Francois's patch fixed the issue for me. thanks! Regards, Jamie Gloudon -- 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
Patch
diff --git a/drivers/net/ethernet/via/via-rhine.c b/drivers/net/ethernet/via/via-rhine.c index 7992b3e..5c7e900 100644 --- a/drivers/net/ethernet/via/via-rhine.c +++ b/drivers/net/ethernet/via/via-rhine.c @@ -2010,11 +2010,7 @@ static void rhine_slow_event_task(struct work_struct *work) if (intr_status & IntrPCIErr) netif_warn(rp, hw, dev, "PCI error\n"); - napi_disable(&rp->napi); - rhine_irq_disable(rp); - /* Slow and safe. Consider __napi_schedule as a replacement ? */ - napi_enable(&rp->napi); - napi_schedule(&rp->napi); + iowrite16(RHINE_EVENT & 0xffff, rp->base + IntrEnable); out_unlock: mutex_unlock(&rp->task_lock);