• Stephen Boyd's avatar
    lib/hexdump: make print_hex_dump_bytes() a nop on !DEBUG builds · 091cb099
    Stephen Boyd authored
    I'm seeing a bunch of debug prints from a user of print_hex_dump_bytes()
    in my kernel logs, but I don't have CONFIG_DYNAMIC_DEBUG enabled nor do I
    have DEBUG defined in my build.  The problem is that
    print_hex_dump_bytes() calls a wrapper function in lib/hexdump.c that
    calls print_hex_dump() with KERN_DEBUG level.  There are three cases to
    consider here
    
      1. CONFIG_DYNAMIC_DEBUG=y  --> call dynamic_hex_dum()
      2. CONFIG_DYNAMIC_DEBUG=n && DEBUG --> call print_hex_dump()
      3. CONFIG_DYNAMIC_DEBUG=n && !DEBUG --> stub it out
    
    Right now, that last case isn't detected and we still call
    print_hex_dump() from the stub wrapper.
    
    Let's make print_hex_dump_bytes() only call print_hex_dump_debug() so that
    it works properly in all cases.
    
    Case #1, print_hex_dump_debug() calls dynamic_hex_dump() and we get same
    behavior.  Case #2, print_hex_dump_debug() calls print_hex_dump() with
    KERN_DEBUG and we get the same behavior.  Case #3, print_hex_dump_debug()
    is a nop, changing behavior to what we want, i.e.  print nothing.
    
    Link: http://lkml.kernel.org/r/20190816235624.115280-1-swboyd@chromium.orgSigned-off-by: default avatarStephen Boyd <swboyd@chromium.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    091cb099
printk.h 14.8 KB