On Tue, 12 May 2009 13:48:13 +1000 Herbert Xu wrote: > On Mon, May 11, 2009 at 06:47:39PM -0400, Yury Polyanskiy wrote: > > xfrm_input() code uses spin_lock() where it must be using > > spin_lock_bh() instead. The corresponding code in xfrm_output.c > > correctly uses spin_lock_bh(). > > > > Note that if the locally generated packet is sent to a local ip, > > dev_queue_xmit() calls loopback_xmit() and the xfrm_input() will be > > called with softirqs enabled. > > dev_queue_xmit always disables BH before calling the device xmit > function. So how can this happen? > Oops, you right. Thanks for the explanation! YP