• Andrey Ryabinin's avatar
    kernel: printk: specify alignment for struct printk_log · 5c9cf8af
    Andrey Ryabinin authored
    On architectures that have support for efficient unaligned access struct
    printk_log has 4-byte alignment.  Specify alignment attribute in type
    declaration.
    
    The whole point of this patch is to fix deadlock which happening when
    UBSAN detects unaligned access in printk() thus UBSAN recursively calls
    printk() with logbuf_lock held by top printk() call.
    Signed-off-by: default avatarAndrey Ryabinin <aryabinin@virtuozzo.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Sasha Levin <sasha.levin@oracle.com>
    Cc: Randy Dunlap <rdunlap@infradead.org>
    Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
    Cc: Jonathan Corbet <corbet@lwn.net>
    Cc: Michal Marek <mmarek@suse.cz>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Yury Gribov <y.gribov@samsung.com>
    Cc: Dmitry Vyukov <dvyukov@google.com>
    Cc: Konstantin Khlebnikov <koct9i@gmail.com>
    Cc: Kostya Serebryany <kcc@google.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    5c9cf8af
printk.c 81.2 KB