Bart Dorsey wrote:
> I constantly get this message on the console while using a Madge Smart
> 16/4 PCI Mk2 (Abyss) token ring card.
>
> kernel: Warning: kfree_skb on hard IRQ d08cfea9
The attached patch, against 2.4.1-pre10, should fix things. tms380tr,
the base module that abyss driver uses, needed to be updated to use
special IRQ versions of the dev_kfree_skb function.
Linus (and others), the patch also adds a missing dev->last_rx
assignment (which records the time of last packet reception).
-- Jeff Garzik | "You see, in this world there's two kinds of Building 1024 | people, my friend: Those with loaded guns MandrakeSoft | and those who dig. You dig." --Blondie --------------C870A6A1C9162BB41A2EFEFF Content-Type: text/plain; charset=us-ascii; name="tms380tr.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="tms380tr.patch"Index: linux_2_4/drivers/net/tokenring/tms380tr.c diff -u linux_2_4/drivers/net/tokenring/tms380tr.c:1.1.1.3 linux_2_4/drivers/net/tokenring/tms380tr.c:1.1.1.3.76.2 --- linux_2_4/drivers/net/tokenring/tms380tr.c:1.1.1.3 Sun Oct 22 14:56:23 2000 +++ linux_2_4/drivers/net/tokenring/tms380tr.c Tue Jan 23 07:19:16 2001 @@ -1977,7 +1977,7 @@ printk(KERN_INFO "Cancel tx (%08lXh).\n", (unsigned long)tpl); - dev_kfree_skb(tpl->Skb); + dev_kfree_skb_any(tpl->Skb); } for(;;) @@ -1986,7 +1986,7 @@ if(skb == NULL) break; tp->QueueSkb++; - dev_kfree_skb(skb); + dev_kfree_skb_any(skb); } return; @@ -2053,7 +2053,7 @@ } tp->MacStat.tx_packets++; - dev_kfree_skb(tpl->Skb); + dev_kfree_skb_irq(tpl->Skb); tpl->BusyFlag = 0; /* "free" TPL */ } @@ -2127,7 +2127,7 @@ printk(KERN_INFO "%s: Received my own frame\n", dev->name); if(rpl->Skb != NULL) - dev_kfree_skb(rpl->Skb); + dev_kfree_skb_irq(rpl->Skb); } else #endif @@ -2171,13 +2171,14 @@ skb_trim(skb,Length); skb->protocol = tr_type_trans(skb,dev); netif_rx(skb); + dev->last_rx = jiffies; } } } else /* Invalid frame */ { if(rpl->Skb != NULL) - dev_kfree_skb(rpl->Skb); + dev_kfree_skb_irq(rpl->Skb); /* Skip list. */ if(rpl->Status & RX_START_FRAME)
--------------C870A6A1C9162BB41A2EFEFF--
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/