linux/kernel/printk
John Ogness 3342aa8e6b printk: fix cpu lock ordering
The cpu lock implementation uses a full memory barrier to take
the lock, but no memory barriers when releasing the lock. This
means that changes performed by a lock owner may not be seen by
the next lock owner. This may have been "good enough" for use
by dump_stack() as a serialization mechanism, but it is not
enough to provide proper protection for a critical section.

Correct this problem by using acquire/release memory barriers
for lock/unlock, respectively.

Signed-off-by: John Ogness <john.ogness@linutronix.de>
Reviewed-by: Sergey Senozhatsky <senozhatsky@chromium.org>
Reviewed-by: Petr Mladek <pmladek@suse.com>
Signed-off-by: Petr Mladek <pmladek@suse.com>
Link: https://lore.kernel.org/r/20210617095051.4808-3-john.ogness@linutronix.de
2021-06-22 09:57:15 +02:00
..
braille.c printk: Replace strncmp() with str_has_prefix() 2019-08-16 09:54:08 +02:00
braille.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
console_cmdline.h printk: Fix preferred console selection with multiple matches 2020-02-18 09:34:42 +01:00
internal.h printk: rename vprintk_func to vprintk 2021-03-30 15:21:18 +02:00
Makefile printk: add lockless ringbuffer 2020-07-10 08:48:19 +02:00
printk.c printk: fix cpu lock ordering 2021-06-22 09:57:15 +02:00
printk_ringbuffer.c Merge branch 'printk-rework' into for-linus 2021-01-21 16:06:21 +01:00
printk_ringbuffer.h printk: rectify kernel-doc for prb_rec_init_wr() 2021-01-26 11:17:51 +01:00
printk_safe.c printk: rename vprintk_func to vprintk 2021-03-30 15:21:18 +02:00