lkml.org 
[lkml]   [2009]   [Feb]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch 10/56] module: remove over-zealous check in __module_get()
    2.6.27-stable review patch.  If anyone has any objections, please let us know.
    ------------------

    From: Rusty Russell <rusty@rustcorp.com.au>

    commit 7f9a50a5b89b87f8e754f59ae9968da28be618a5 upstream.

    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>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

    ---
    include/linux/module.h | 1 -
    1 file changed, 1 deletion(-)

    --- a/include/linux/module.h
    +++ b/include/linux/module.h
    @@ -387,7 +387,6 @@ void symbol_put_addr(void *addr);
    static inline void __module_get(struct module *module)
    {
    if (module) {
    - BUG_ON(module_refcount(module) == 0);
    local_inc(&module->ref[get_cpu()].count);
    put_cpu();
    }


    \
     
     \ /
      Last update: 2009-02-11 01:33    [W:0.020 / U:117.720 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site