diff mbox

drivers/net/smc911x.c: Fix lockdep warning on xmit.

Message ID 87a5b0800810280506h71fd6508i9474917b0ef0b191@mail.gmail.com
State Accepted, archived
Delegated to: Jeff Garzik
Headers show

Commit Message

Will Newton Oct. 28, 2008, 12:06 p.m. UTC
From 0e3ec7f78e115533e4aca9ac067acbc33eb0a21f Mon Sep 17 00:00:00 2001
From: Will Newton <will.newton@gmail.com>
Date: Tue, 28 Oct 2008 10:52:36 +0000
Subject: [PATCH] drivers/net/smc911x.c: Fix lockdep warning on xmit.

dev_kfree_skb should not be called with irqs disabled, use dev_kfree_skb_irq
instead. The warning caused looks like this:

 		netif_wake_queue(dev);

Comments

Jeff Garzik Nov. 2, 2008, 1:46 p.m. UTC | #1
Will Newton wrote:
>>From 0e3ec7f78e115533e4aca9ac067acbc33eb0a21f Mon Sep 17 00:00:00 2001
> From: Will Newton <will.newton@gmail.com>
> Date: Tue, 28 Oct 2008 10:52:36 +0000
> Subject: [PATCH] drivers/net/smc911x.c: Fix lockdep warning on xmit.
> 
> dev_kfree_skb should not be called with irqs disabled, use dev_kfree_skb_irq
> instead. The warning caused looks like this:
> 
> ======================================================
> [ INFO: hard-safe -> hard-unsafe lock order detected ]
> 2.6.28-rc1 #273
> ------------------------------------------------------
> swapper/0 [HC0[0]:SC1[2]:HE0:SE0] is trying to acquire:
>  (clock-AF_INET){-..+}, at: [<4015c17c>] _sock_def_write_space+0x28/0xd8
> 
> and this task is already holding:
>  (&lp->lock){++..}, at: [<4013f230>] _smc911x_hard_start_xmit+0x30/0x4b8
> which would create a new lock dependency:
>  (&lp->lock){++..} -> (clock-AF_INET){-..+}
> 
> Signed-off-by: Will Newton <will.newton@gmail.com>
> ---
>  drivers/net/smc911x.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/drivers/net/smc911x.c b/drivers/net/smc911x.c
> index f59c777..5051554 100644
> --- a/drivers/net/smc911x.c
> +++ b/drivers/net/smc911x.c
> @@ -499,7 +499,7 @@ static void smc911x_hardware_send_pkt(struct
> net_device *dev)
>  #else
>  	SMC_PUSH_DATA(lp, buf, len);
>  	dev->trans_start = jiffies;
> -	dev_kfree_skb(skb);
> +	dev_kfree_skb_irq(skb);
>  #endif
>  	if (!lp->tx_throttle) {
>  		netif_wake_queue(dev);

applied manually, your patch was corrupted


--
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 mbox

Patch

From 0e3ec7f78e115533e4aca9ac067acbc33eb0a21f Mon Sep 17 00:00:00 2001
From: Will Newton <will.newton@gmail.com>
Date: Tue, 28 Oct 2008 10:52:36 +0000
Subject: [PATCH] drivers/net/smc911x.c: Fix lockdep warning on xmit.

dev_kfree_skb should not be called with irqs disabled, use dev_kfree_skb_irq
instead. The warning caused looks like this:

======================================================
[ INFO: hard-safe -> hard-unsafe lock order detected ]
2.6.28-rc1 #273
------------------------------------------------------
swapper/0 [HC0[0]:SC1[2]:HE0:SE0] is trying to acquire:
 (clock-AF_INET){-..+}, at: [<4015c17c>] _sock_def_write_space+0x28/0xd8

and this task is already holding:
 (&lp->lock){++..}, at: [<4013f230>] _smc911x_hard_start_xmit+0x30/0x4b8
which would create a new lock dependency:
 (&lp->lock){++..} -> (clock-AF_INET){-..+}

Signed-off-by: Will Newton <will.newton@gmail.com>
---
 drivers/net/smc911x.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/net/smc911x.c b/drivers/net/smc911x.c
index f59c777..5051554 100644
--- a/drivers/net/smc911x.c
+++ b/drivers/net/smc911x.c
@@ -499,7 +499,7 @@  static void smc911x_hardware_send_pkt(struct net_device *dev)
 #else
 	SMC_PUSH_DATA(lp, buf, len);
 	dev->trans_start = jiffies;
-	dev_kfree_skb(skb);
+	dev_kfree_skb_irq(skb);
 #endif
 	if (!lp->tx_throttle) {
 		netif_wake_queue(dev);
-- 
1.5.5.2