Most recent kernel where this bug did not occur: 2.6.13 Distribution: Gentoo Hardware Environment: P4 3.2GHz 2x e1000 driver 4GB RAM 8 SCSI DISCS Software Environment: Squid Problem Description: dmesg shows : KERNEL: assertion (!sk->sk_forward_alloc) failed at net/core/stream.c (279) KERNEL: assertion (!sk->sk_forward_alloc) failed at net/ipv4/af_inet.c (148)
What is the hardware? Are you using an E1000?
Yes lspci: 00:00.0 Host bridge: Intel Corporation 82875P/E7210 Memory Controller Hub (rev 02) 00:03.0 PCI bridge: Intel Corporation 82875P/E7210 Processor to PCI to CSA Bridge (rev 02) 00:1c.0 PCI bridge: Intel Corporation 6300ESB 64-bit PCI-X Bridge (rev 02) 00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 0a) 00:1f.0 ISA bridge: Intel Corporation 6300ESB LPC Interface Controller (rev 02) 00:1f.1 IDE interface: Intel Corporation 6300ESB PATA Storage Controller (rev 02) 00:1f.2 IDE interface: Intel Corporation 6300ESB SATA Storage Controller (rev 02) 00:1f.3 SMBus: Intel Corporation 6300ESB SMBus Controller (rev 02) 01:01.0 Ethernet controller: Intel Corporation 82547GI Gigabit Ethernet Controller 02:03.0 SCSI storage controller: Adaptec AIC-7902B U320 (rev 10) 02:03.1 SCSI storage controller: Adaptec AIC-7902B U320 (rev 10) 03:09.0 VGA compatible controller: ATI Technologies Inc Rage XL (rev 27) 03:0a.0 Ethernet controller: Intel Corporation 82541GI/PI Gigabit Ethernet Controller
Please retest with 2.6.17-rc1. Davem and Hubert found several errors in e1000 driver. One of them would have caused this error.
*** Bug 6279 has been marked as a duplicate of this bug. ***
*** Bug 5591 has been marked as a duplicate of this bug. ***
This patch is already in 2.6.16 and later. diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c index 49cd096..96b7bef 100644 --- a/drivers/net/e1000/e1000_main.c +++ b/drivers/net/e1000/e1000_main.c @@ -2821,13 +2821,6 @@ count++; #endif -#ifdef NETIF_F_TSO - /* Controller Erratum workaround */ - if (!skb->data_len && tx_ring->last_tx_tso && - !skb_shinfo(skb)->tso_size) - count++; -#endif - count += TXD_USE_COUNT(len, max_txd_pwr); if (adapter->pcix_82544) @@ -2846,11 +2839,6 @@ max_txd_pwr); if (adapter->pcix_82544) count += nr_frags; - - - if (adapter->hw.tx_pkt_filtering && - (adapter->hw.mac_type == e1000_82573)) - e1000_transfer_dhcp_info(adapter, skb); local_irq_save(flags); if (!spin_trylock(&tx_ring->tx_lock)) { @@ -2858,6 +2846,17 @@ local_irq_restore(flags); return NETDEV_TX_LOCKED; } + +#ifdef NETIF_F_TSO + /* Controller Erratum workaround */ + if (!skb->data_len && tx_ring->last_tx_tso && + !skb_shinfo(skb)->tso_size) + count++; +#endif + + if (adapter->hw.tx_pkt_filtering && + (adapter->hw.mac_type == e1000_82573)) + e1000_transfer_dhcp_info(adapter, skb); /* need: count + 2 desc gap to keep tail from touching * head, otherwise try next time */
Created attachment 7837 [details] can't post to comments, get error from bugzilla the current thread on this issue shows that the changes herbert made do not eliminate the issue. Also, some of the other bugs linked to this issue are *not* on e1000 adapters. One of the non-e1000 reporters was running an older kernel, but I would like to see if he can try 2.6.16+ In short I don't believe this is resolved.
Comment on attachment 7837 [details] can't post to comments, get error from bugzilla Stephen, can you please change the title to not have a "linefeed" in the middle of the Summary?
in kernel 2.6.16.9 : KERNEL: assertion (!sk->sk_forward_alloc) failed at net/core/stream.c (283) KERNEL: assertion (!sk->sk_forward_alloc) failed at net/ipv4/af_inet.c (150) Best regards Gino