lkml.org 
[lkml]   [2018]   [Sep]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 09/22] dynamic_debug: use pointer comparison in ddebug_remove_module
    Date
    Now that we store the passed-in string directly in ddebug_add_module, we
    can use pointer equality instead of strcmp. This is a little more
    efficient, but more importantly, this also makes the code somewhat more
    correct:

    Currently, if one loads and then unloads a module whose name happens to
    match the KBUILD_MODNAME of some built-in functionality (which need not
    even be modular at all), all of their dynamic debug entries vanish along
    with those of the actual module. For example, loading and unloading a
    core.ko hides all pr_debugs from drivers/base/core.c and other built-in
    files called core.c (incidentally, there is an in-tree module whose name
    is core, but I just tested this with an out-of-tree trivial one).

    Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
    ---
    lib/dynamic_debug.c | 3 ++-
    1 file changed, 2 insertions(+), 1 deletion(-)

    diff --git a/lib/dynamic_debug.c b/lib/dynamic_debug.c
    index 2155e0e23530..ab81155f928d 100644
    --- a/lib/dynamic_debug.c
    +++ b/lib/dynamic_debug.c
    @@ -929,9 +929,10 @@ int ddebug_remove_module(const char *mod_name)

    mutex_lock(&ddebug_lock);
    list_for_each_entry_safe(dt, nextdt, &ddebug_tables, link) {
    - if (!strcmp(dt->mod_name, mod_name)) {
    + if (dt->mod_name == mod_name) {
    ddebug_table_free(dt);
    ret = 0;
    + break;
    }
    }
    mutex_unlock(&ddebug_lock);
    --
    2.16.4
    \
     
     \ /
      Last update: 2018-09-20 00:07    [W:4.184 / U:0.180 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site