drivers/net: use tasklet_kill in device remove/close process
authorXiaotian Feng <xtfeng@gmail.com>
Wed, 31 Oct 2012 00:29:57 +0000 (00:29 +0000)
committerDavid S. Miller <davem@davemloft.net>
Sat, 3 Nov 2012 19:10:15 +0000 (15:10 -0400)
commit175c0dffef310fc7d7f026ca4a7682beb2fbd8ec
treeb9ff3f9ae6b5a1a6e41b1b950d3820d68c5ef8ac
parentd145f7ec23b6366e2b75442eaefafa11077ed568
drivers/net: use tasklet_kill in device remove/close process

Some driver uses tasklet_disable in device remove/close process,
tasklet_disable will inc tasklet->count and return. If the tasklet
is not handled yet because some softirq pressure, the tasklet will
placed on the tasklet_vec, never have a chance to excute. This might
lead to ksoftirqd heavy loaded, wakeup with pending_softirq, but
tasklet is disabled. tasklet_kill should be used in this case.

Signed-off-by: Xiaotian Feng <dannyfeng@tencent.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: netdev@vger.kernel.org
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/jme.c
drivers/net/ethernet/marvell/skge.c
drivers/net/ethernet/micrel/ksz884x.c
drivers/net/ethernet/xilinx/xilinx_axienet_main.c
drivers/net/wireless/b43legacy/pio.c