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

Reply via email to