Subject: Re: [BUG] via-rhine: NOHZ: local_softirq_pending 08

From: Jamie Gloudon <[email-masked]>
Date: Tue, 29 Jan 2013 23:54:19 -0400

On Wed, Jan 30, 2013 at 01:04:32AM +0100, Francois Romieu wrote:
> David Miller <[email-masked]> :
> [...]
> > 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