drivers/net: fix tasklet misuse issue
authorXiaotian Feng <xtfeng@gmail.com>
Tue, 13 Nov 2012 19:47:36 +0000 (19:47 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 15 Nov 2012 02:50:10 +0000 (21:50 -0500)
commit71c6c837a0fe9d291e0764503f09dac0fec59ce1
tree64fc5d4c2cf468c841050bed08774bd254d5edbf
parentb2942004fb5c9f3304b77e187b8a1977b3626c9b
drivers/net: fix tasklet misuse issue

In commit 175c0dff, drivers uses tasklet_kill to avoid put disabled tasklet
on the tasklet vec. But some of the drivers uses tasklet_init & tasklet_disable
in the driver init code, then tasklet_enable when it is opened. This makes
tasklet_enable on a killed tasklet and make ksoftirqd crazy then. Normally,
drivers should use tasklet_init/tasklet_kill on device open/remove, and use
tasklet_disable/tasklet_enable on device suspend/resume.

Reported-by: Peter Wu <lekensteyn@gmail.com>
Tested-by: Peter Wu <lekensteyn@gmail.com>
Signed-off-by: Xiaotian Feng <dannyfeng@tencent.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: netdev@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/jme.c
drivers/net/ethernet/micrel/ksz884x.c
drivers/net/ethernet/xilinx/xilinx_axienet_main.c