From 9cb8b0f289560728dbb8b88158e7a957e2e90a14 Mon Sep 17 00:00:00 2001 From: Breno Leitao Date: Fri, 6 Feb 2026 03:18:02 -0800 Subject: [PATCH] workqueue: replace BUG_ON with panic in panic_on_wq_watchdog Replace BUG_ON() with panic() in panic_on_wq_watchdog(). This is not a bug condition but a deliberate forced panic requested by the user via module parameters to crash the system for debugging purposes. Using panic() instead of BUG_ON() makes this intent clearer and provides more informative output about which threshold was exceeded and the actual values, making it easier to diagnose the stall condition from crash dumps. Signed-off-by: Breno Leitao Signed-off-by: Tejun Heo --- kernel/workqueue.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/kernel/workqueue.c b/kernel/workqueue.c index 68e664d7dbecf..e6c249f2fb46b 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -7637,10 +7637,14 @@ static void panic_on_wq_watchdog(unsigned int stall_time_sec) if (wq_panic_on_stall) { wq_stall++; - BUG_ON(wq_stall >= wq_panic_on_stall); + if (wq_stall >= wq_panic_on_stall) + panic("workqueue: %u stall(s) exceeded threshold %u\n", + wq_stall, wq_panic_on_stall); } - BUG_ON(wq_panic_on_stall_time && stall_time_sec >= wq_panic_on_stall_time); + if (wq_panic_on_stall_time && stall_time_sec >= wq_panic_on_stall_time) + panic("workqueue: stall lasted %us, exceeding threshold %us\n", + stall_time_sec, wq_panic_on_stall_time); } static void wq_watchdog_reset_touched(void) -- 2.47.3