• S
    lib/vsprintf: Replace space with '_' before crng is ready · 91efafb1
    Shunyong Yang 提交于
    Before crng is ready, output of "%p" composes of "(ptrval)" and
    left padding spaces for alignment as no random address can be
    generated. This seems a little strange when default string width
    is larger than strlen("(ptrval)").
    
    For example, when irq domain names are built with "%p", the nodes
    under /sys/kernel/debug/irq/domains like this on AArch64 system,
    
    [root@y irq]# ls domains/
    default                   irqchip@        (ptrval)-2
    irqchip@        (ptrval)-4  \_SB_.TCS0.QIC1  \_SB_.TCS0.QIC3
    irqchip@        (ptrval)  irqchip@        (ptrval)-3
    \_SB_.TCS0.QIC0             \_SB_.TCS0.QIC2
    
    The name "irqchip@        (ptrval)-2" is not so readable in console
    output.
    
    This patch replaces space with readable "_" when output needs padding.
    Following is the output after applying the patch,
    
    [root@y domains]# ls
    default                   irqchip@(____ptrval____)-2
    irqchip@(____ptrval____)-4  \_SB_.TCS0.QIC1  \_SB_.TCS0.QIC3
    irqchip@(____ptrval____)  irqchip@(____ptrval____)-3  \_SB_.TCS0.QIC0
    \_SB_.TCS0.QIC2
    
    There is same problem in some subsystem's dmesg output. Moreover,
    someone may call "%p" in a similar case. In addition, the timing of
    crng initialization done may vary on different system. So, the change
    is made in vsprintf.c.
    Suggested-by: NRasmus Villemoes <linux@rasmusvillemoes.dk>
    Link: http://lkml.kernel.org/r/20180216210711.79901-7-andriy.shevchenko@linux.intel.com
    To: "Tobin C . Harding" <me@tobin.cc>
    To: linux@rasmusvillemoes.dk
    To: Joe Perches <joe@perches.com>
    To: linux-kernel@vger.kernel.org
    To: Andrew Morton <akpm@linux-foundation.org>
    Cc: Joey Zheng <yu.zheng@hxt-semitech.com>
    Signed-off-by: NShunyong Yang <shunyong.yang@hxt-semitech.com>
    Signed-off-by: NAndy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: NPetr Mladek <pmladek@suse.com>
    91efafb1
vsprintf.c 73.6 KB