diff options
author | Stephen Hemminger <shemminger@linux-foundation.org> | 2007-02-26 17:18:36 -0800 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2007-03-02 16:32:46 -0800 |
commit | eecf18ffe65123882562c54e55fd2d5e54ad4fef (patch) | |
tree | b3450121483c5de6c975a0ffd23e5f5b40d8c930 | |
parent | fe864ebed2a1e894552bb426bbb02a2e2c2f6878 (diff) | |
download | linux-stable-eecf18ffe65123882562c54e55fd2d5e54ad4fef.tar.gz linux-stable-eecf18ffe65123882562c54e55fd2d5e54ad4fef.tar.bz2 linux-stable-eecf18ffe65123882562c54e55fd2d5e54ad4fef.zip |
sky2: kfree_skb with IRQ with netconsole
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>
-rw-r--r-- | drivers/net/sky2.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c index 79fded454ee4..50d60d200af5 100644 --- a/drivers/net/sky2.c +++ b/drivers/net/sky2.c @@ -1454,7 +1454,7 @@ static void sky2_tx_complete(struct sky2_port *sky2, u16 done) 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 */ |