Subject: Re: 2.6.18-rc1-mm1 inconsistent lock state in netpoll_send_skb

From: Laurent Riffard <[email-masked]>
Date: Mon, 10 Jul 2006 21:06:10 +0200

Le 10.07.2006 10:40, Arjan van de Ven a écrit :
> On Sun, 2006-07-09 at 23:37 +0200, Laurent Riffard wrote:
>> ei_start_xmit
> 
> please try this patch
> 
> ---
>  drivers/net/8390.c |   10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)
> 
> Index: linux-2.6.17-mm4/drivers/net/8390.c
> ===================================================================
> --- linux-2.6.17-mm4.orig/drivers/net/8390.c
> +++ linux-2.6.17-mm4/drivers/net/8390.c
> @@ -299,7 +299,7 @@ static int ei_start_xmit(struct sk_buff 
>  	 *	Slow phase with lock held.
>  	 */
>  	 
> -	disable_irq_nosync(dev->irq);
> +	disable_irq_nosync_lockdep(dev->irq);
>  	
>  	spin_lock(&ei_local->page_lock);
>  	
> @@ -338,7 +338,7 @@ static int ei_start_xmit(struct sk_buff 
>  		netif_stop_queue(dev);
>  		outb_p(ENISR_ALL, e8390_base + EN0_IMR);
>  		spin_unlock(&ei_local->page_lock);
> -		enable_irq(dev->irq);
> +		enable_irq_lockdep(dev->irq);
>  		ei_local->stat.tx_errors++;
>  		return 1;
>  	}
> @@ -379,7 +379,7 @@ static int ei_start_xmit(struct sk_buff 
>  	outb_p(ENISR_ALL, e8390_base + EN0_IMR);
>  	
>  	spin_unlock(&ei_local->page_lock);
> -	enable_irq(dev->irq);
> +	enable_irq_lockdep(dev->irq);
>  
>  	dev_kfree_skb (skb);
>  	ei_local->stat.tx_bytes += send_length;
> @@ -505,9 +505,9 @@ irqreturn_t ei_interrupt(int irq, void *
>  #ifdef CONFIG_NET_POLL_CONTROLLER
>  void ei_poll(struct net_device *dev)
>  {
> -	disable_irq(dev->irq);
> +	disable_irq_lockdep(dev->irq);
>  	ei_interrupt(dev->irq, dev, NULL);
> -	enable_irq(dev->irq);
> +	enable_irq_lockdep(dev->irq);
>  }
>  #endif

Reversed (or previously applied) patch detected! 

Wrong patch ? This one won't apply, it seems to be already 
applied to 2.6.18-rc1-mm1.

-- 
laurent