--- linux-2.6.orig/net/core/netpoll.c 2007-12-18 21:58:41.000000000 +0800 +++ linux-2.6/net/core/netpoll.c 2007-12-18 21:59:01.000000000 +0800 @@ -160,6 +160,11 @@ repeat: return; } + if(np->dev->xmit_lock_owner == smp_processor_id()) { + __kfree_skb(skb); + return; + } + spin_lock(&np->dev->xmit_lock); np->dev->xmit_lock_owner = smp_processor_id();