• Masami Hiramatsu's avatar
    kprobes: bugfix: try_module_get even if calling_mod is NULL · bc2f7015
    Masami Hiramatsu authored
    When someone called register_*probe() from kernel-core code(not from
    module) and that probes a kernel module, users can remove the probed
    module because kprobe doesn't increment reference counter of the module.
    (on the other hand, if the kernel-module calls register_*probe, kprobe
    increments refcount of the probed module.)
    
    Currently, we have no register_*probe() calling from kernel-core(except
    smoke-test, but the smoke-test doesn't probe module), so there is no real
    bugs.  But the logic is wrong(or not fair) and it can causes a problem
    when someone might want to probe module from kernel.
    
    After this patch is applied, even if someone put register_*probe() call in
    the kernel-core code, it increments the reference counter of the probed
    module, and it prevents user to remove the module until stopping probing
    it.
    Signed-off-by: default avatarMasami Hiramatsu <mhiramat@redhat.com>
    Cc: Lai Jiangshan <laijs@cn.fujitsu.com>
    Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
    Cc: Hiroshi Shimamoto <h-shimamoto@ct.jp.nec.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    bc2f7015
kprobes.c 32.3 KB