From: AnilKumar Ch Date: Thu, 27 Sep 2012 12:24:58 +0000 (+0530) Subject: can: c_can: fix segfault during rmmod X-Git-Tag: firefly_0821_release~3680^2~1949^2~44^2 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=c523530ce17defe6b28ccfe622c506488f430866;p=firefly-linux-kernel-4.4.55.git can: c_can: fix segfault during rmmod This patch fixes an oops which occurs during unloading the driver. unregister_c_can_dev() is doing c_can/d_can module interrupts disable, which requires module clock enable. c_can/d_can interrupts enable/disable is handled properly in c_can_start and c_can_stop, so removing from unregister_c_can_dev(). The problem was triggered by adding runtime PM support to the c_can driver by this commit: 4cdd34b can: c_can: Add runtime PM support to Bosch C_CAN/D_CAN controller Signed-off-by: AnilKumar Ch Signed-off-by: Marc Kleine-Budde --- diff --git a/drivers/net/can/c_can/c_can.c b/drivers/net/can/c_can/c_can.c index 2c4a21f98442..e5180dfddba5 100644 --- a/drivers/net/can/c_can/c_can.c +++ b/drivers/net/can/c_can/c_can.c @@ -1265,9 +1265,6 @@ void unregister_c_can_dev(struct net_device *dev) { struct c_can_priv *priv = netdev_priv(dev); - /* disable all interrupts */ - c_can_enable_all_interrupts(priv, DISABLE_ALL_INTERRUPTS); - unregister_candev(dev); c_can_pm_runtime_disable(priv);