Revision cccd32816506cbac3a4c65d9dff51b3125ef1a03 authored by Lukas Wunner on 15 September 2023, 07:55:39 UTC, committed by Ingo Molnar on 15 September 2023, 09:28:08 UTC
Commit:

  5a5d7e9badd2 ("cpuidle: lib/bug: Disable rcu_is_watching() during WARN/BUG")

amended warn_slowpath_fmt() to disable preemption until the WARN splat
has been emitted.

However the commit neglected to reenable preemption in the !fmt codepath,
i.e. when a WARN splat is emitted without additional format string.

One consequence is that users may see more splats than intended.  E.g. a
WARN splat emitted in a work item results in at least two extra splats:

  BUG: workqueue leaked lock or atomic
  (emitted by process_one_work())

  BUG: scheduling while atomic
  (emitted by worker_thread() -> schedule())

Ironically the point of the commit was to *avoid* extra splats. ;)

Fix it.

Fixes: 5a5d7e9badd2 ("cpuidle: lib/bug: Disable rcu_is_watching() during WARN/BUG")
Signed-off-by: Lukas Wunner <lukas@wunner.de>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Paul E. McKenney <paulmck@kernel.org>
Link: https://lore.kernel.org/r/3ec48fde01e4ee6505f77908ba351bad200ae3d1.1694763684.git.lukas@wunner.de
1 parent 9fdfb15
History
File Mode Size
Makefile -rw-r--r-- 366 bytes
advise.c -rw-r--r-- 2.3 KB
advise.h -rw-r--r-- 316 bytes
alloc_cache.h -rw-r--r-- 1.4 KB
cancel.c -rw-r--r-- 7.9 KB
cancel.h -rw-r--r-- 665 bytes
epoll.c -rw-r--r-- 1.3 KB
epoll.h -rw-r--r-- 213 bytes
fdinfo.c -rw-r--r-- 6.7 KB
fdinfo.h -rw-r--r-- 100 bytes
filetable.c -rw-r--r-- 4.0 KB
filetable.h -rw-r--r-- 2.2 KB
fs.c -rw-r--r-- 6.8 KB
fs.h -rw-r--r-- 929 bytes
io-wq.c -rw-r--r-- 32.7 KB
io-wq.h -rw-r--r-- 2.1 KB
io_uring.c -rw-r--r-- 121.7 KB
io_uring.h -rw-r--r-- 10.9 KB
kbuf.c -rw-r--r-- 15.0 KB
kbuf.h -rw-r--r-- 3.8 KB
msg_ring.c -rw-r--r-- 7.5 KB
msg_ring.h -rw-r--r-- 226 bytes
net.c -rw-r--r-- 37.8 KB
net.h -rw-r--r-- 2.2 KB
nop.c -rw-r--r-- 498 bytes
nop.h -rw-r--r-- 168 bytes
notif.c -rw-r--r-- 2.2 KB
notif.h -rw-r--r-- 1.3 KB
opdef.c -rw-r--r-- 13.9 KB
opdef.h -rw-r--r-- 1.4 KB
openclose.c -rw-r--r-- 6.4 KB
openclose.h -rw-r--r-- 596 bytes
poll.c -rw-r--r-- 28.0 KB
poll.h -rw-r--r-- 1.1 KB
refs.h -rw-r--r-- 1.2 KB
rsrc.c -rw-r--r-- 29.7 KB
rsrc.h -rw-r--r-- 4.2 KB
rw.c -rw-r--r-- 27.4 KB
rw.h -rw-r--r-- 776 bytes
slist.h -rw-r--r-- 2.7 KB
splice.c -rw-r--r-- 2.9 KB
splice.h -rw-r--r-- 306 bytes
sqpoll.c -rw-r--r-- 9.9 KB
sqpoll.h -rw-r--r-- 830 bytes
statx.c -rw-r--r-- 1.6 KB
statx.h -rw-r--r-- 217 bytes
sync.c -rw-r--r-- 2.8 KB
sync.h -rw-r--r-- 460 bytes
tctx.c -rw-r--r-- 7.4 KB
tctx.h -rw-r--r-- 992 bytes
timeout.c -rw-r--r-- 18.0 KB
timeout.h -rw-r--r-- 1.2 KB
uring_cmd.c -rw-r--r-- 4.9 KB
uring_cmd.h -rw-r--r-- 231 bytes
xattr.c -rw-r--r-- 5.6 KB
xattr.h -rw-r--r-- 654 bytes

back to top