From: Wang Dongsheng <dongsheng.w...@freescale.com> The module can not be removed when execute "rmmod". rmmod not use "--force".
Log: root:~# rmmod cpuidle-e500 incs[9], decs[1] rmmod: can't unload 'cpuidle_e500': Resource temporarily unavailable Signed-off-by: Wang Dongsheng <dongsheng.w...@freescale.com> --- Branch: pm-cpuidle drivers/cpuidle/cpuidle.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/cpuidle/cpuidle.c b/drivers/cpuidle/cpuidle.c index fdc432f..534320a 100644 --- a/drivers/cpuidle/cpuidle.c +++ b/drivers/cpuidle/cpuidle.c @@ -386,6 +386,9 @@ static int __cpuidle_register_device(struct cpuidle_device *dev) goto err_coupled; dev->registered = 1; + + module_put(drv->owner); + return 0; err_coupled: @@ -432,8 +435,6 @@ EXPORT_SYMBOL_GPL(cpuidle_register_device); */ void cpuidle_unregister_device(struct cpuidle_device *dev) { - struct cpuidle_driver *drv = cpuidle_get_cpu_driver(dev); - if (dev->registered == 0) return; @@ -448,8 +449,6 @@ void cpuidle_unregister_device(struct cpuidle_device *dev) cpuidle_coupled_unregister_device(dev); cpuidle_resume_and_unlock(); - - module_put(drv->owner); } EXPORT_SYMBOL_GPL(cpuidle_unregister_device); -- 1.8.0 _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev