Hi,
I am seeing backtraces on 2.6.15-rc7 on NFS traffic that are similar
to this one:
Badness in local_bh_enable at kernel/softirq.c:140
Call trace:
[c0005340] check_bug_trap+0xb0/0xd0
[c0005bb4] program_check_exception+0x174/0x4f0
[c0004f04] ret_from_except_full+0x0/0x4c
[c0021b8c] local_bh_enable+0x1c/0x90
[c0208410] skb_copy_bits+0x2a0/0x3c0
[c020f778] __skb_linearize+0x98/0x190
[c019f3b0] mv643xx_eth_start_xmit+0x2c0/0x5a0
[c02113f8] dev_queue_xmit+0x258/0x3c0
[c0232ffc] ip_finish_output+0x14c/0x2e0
[c0231c50] ip_fragment+0x4c0/0x720
[c02338c8] ip_output+0x258/0x360
[c02322d8] ip_push_pending_frames+0x428/0x4c0
[c0252b38] udp_push_pending_frames+0x108/0x230
[c02536b0] udp_sendmsg+0x3b0/0x6a0
[c025c660] inet_sendmsg+0x50/0x80
[c02025d8] sock_sendmsg+0xa8/0xf0
[c0202654] kernel_sendmsg+0x34/0x60
CONFIG_PPC=y
CONFIG_HIGHMEM=y
CONFIG_PREEMPT=y
CONFIG_MV643XX_ETH=y
In mv643xx_eth_start_xmit:
[...]
spin_lock_irqsave(&mp->lock, flags);
[...]
/* Since hardware can't handle unaligned fragments smaller
* than 9 bytes, if we find any, we linearize the skb
* and start again. */
[...]
skb_linearize(skb, GFP_ATOMIC);
[...]
which ends up calling kunmap_skb_frag(vaddr), which, when
CONFIG_HIGHMEM=y, calls local_bh_enable with interrupts off.
-- Paul
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html