| From shemminger@linux-foundation.org Mon Feb 26 17:36:04 2007 |
| From: Stephen Hemminger <shemminger@linux-foundation.org> |
| Date: Mon, 26 Feb 2007 17:18:36 -0800 |
| Subject: sky2: kfree_skb with IRQ with netconsole |
| To: Greg KH <greg@kroah.com> |
| Cc: stable@kernel.org |
| Message-ID: <20070227012021.494864678@linux-foundation.org> |
| Content-Disposition: inline; filename=sky2-netconsole-free.patch |
| |
| From: Stephen Hemminger <shemminger@linux-foundation.org> |
| |
| When using netconsole, it is possible for the driver to try and |
| free skb's with IRQ's disabled. This could cause problems if the skb |
| had a destructor function that didn't expect this. The documented semantics |
| is that skb->destructor callback happens in softirq. |
| |
| Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/net/sky2.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- linux-2.6.19.5.orig/drivers/net/sky2.c |
| +++ linux-2.6.19.5/drivers/net/sky2.c |
| @@ -1454,7 +1454,7 @@ static void sky2_tx_complete(struct sky2 |
| if (unlikely(netif_msg_tx_done(sky2))) |
| printk(KERN_DEBUG "%s: tx done %u\n", |
| dev->name, idx); |
| - dev_kfree_skb(re->skb); |
| + dev_kfree_skb_any(re->skb); |
| } |
| |
| le->opcode = 0; /* paranoia */ |