Messages in this thread Patch in this message |  | | From | Rusty Russell <> | | Subject | [PATCH] module: remove over-zealous check in __module_get() | | Date | Sat, 7 Feb 2009 18:15:56 +1030 |
| |
Impact: fix spurious BUG_ON() triggered under load
module_refcount() isn't reliable outside stop_machine(), as demonstrated by Karsten Keil <kkeil@suse.de>, networking can trigger it under load (an inc on one cpu and dec on another while module_refcount() is tallying can give false results, for example).
Almost noone should be using __module_get, but that's another issue.
Cc: Karsten Keil <kkeil@suse.de> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> --- include/linux/module.h | 1 - 1 file changed, 1 deletion(-)
diff --git a/include/linux/module.h b/include/linux/module.h --- a/include/linux/module.h +++ b/include/linux/module.h @@ -407,7 +407,6 @@ static inline void __module_get(struct m static inline void __module_get(struct module *module) { if (module) { - BUG_ON(module_refcount(module) == 0); local_inc(__module_ref_addr(module, get_cpu())); put_cpu(); }
|  |