From nobody Fri Oct 3 20:56:11 2025 Received: from mail-pl1-f170.google.com (mail-pl1-f170.google.com [209.85.214.170]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0CFA5226541; Mon, 25 Aug 2025 02:30:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.170 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756089033; cv=none; b=TVmxyI+SgTRmujz3tPRZS5dlagfSJU926V/Cyttcfr9bEfGdGI0ve9Kp0FgJ+4vRObcw2Jtf7SBdHDN71ccPAEdVGuxPQYj5fT8qicrBCffvbOySkoMixGNaQoLv2hTpvXesOGw7dtjCaUs9tTVRzWtgJ2xVesOyAq9b7OCs6CE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756089033; c=relaxed/simple; bh=2lakStH7b673PNcvcyv/2zOrSVlxevXvJhX9fOU/PM4=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HjrADs1fuHGQ/jZlKIsBTM0reU3l9AomyRv5+zsQGBU9vNGLKj2MG2OxPo6voyJ/5j+a0PYH+s8wrixmPnWJzXs4seJmoYD/o4mJNVaSl6Y3XqpU2+qt2KzTigrCCa2JZT1NjmQmFQzHN3/vRRLa/sy4E3JoXmGZTPWM7M6NRX0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=NpcPaO4K; arc=none smtp.client-ip=209.85.214.170 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="NpcPaO4K" Received: by mail-pl1-f170.google.com with SMTP id d9443c01a7336-2466443b37fso17229275ad.1; Sun, 24 Aug 2025 19:30:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1756089031; x=1756693831; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=D22H5WgHrRDr6Rs9uj/QpBbAQMcw3KfQsKqL222d6ec=; b=NpcPaO4K/1FgZI3BmblhiOo/+eLJMo1yzM1BhBTU0w9nlFdBc9PsSmxI6Z42Vq3drE n+Q6ESxqE2wBGOlgnNsYo6he2C+sN7axedeRGfdysUteNC0vgp3UV2cpKjFtNIaEp97L 2ymWPgqfhPdAuNeupWeljQLawHwjRXPUOYvSIQZhORevJRZXmWUxSp9KOg88cns9I+BU qNLJR/Be4aThbsYVk1p/AXnRGXGESRQyH/isVvSwOwndRz51CLMd+Y3xz9pVncwx6mK9 GtZTbtFhrbnZHmPAbO9RxFCenaPungZ16fCbD3rxAO8y3xHae5CIyHoWJ7aOE9VZxwM3 ZWOg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756089031; x=1756693831; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=D22H5WgHrRDr6Rs9uj/QpBbAQMcw3KfQsKqL222d6ec=; b=SWYkOilMRLErRFPZ+mMgdQmSd1nyCvzAcwTbhysjKLVW9IedD3lQe1nH+tvLwR2HZj jtNzxY2LGeQ797znNV1IM/MR0uWwsSGtpCCH3bsTgec9WLjbuK1lcRPG6APvVsoneQUI OfL+3j7QAKJXRLmxwB8Ha0hLL+xvhWBTU8npu0hkzsVIkpx3iFN+1/eAvyMyxXrk+COp +4j6NgAoOb1EATPtABmOnmGmI8kSi72aTAYzvkkw0YW56TXPFlPhUUMFMJHgMRkoJZTM cjeWCiprSz4wHhTHQR2o8JqDQzik5OgnJ1dyW4WNMRSvx8W6LrNWai9RqGP1KIZJou0A pbIw== X-Forwarded-Encrypted: i=1; AJvYcCVQeeoGvZdkxcncsgTen2mIRq8niy2DuswLD7WKNDykV+k/nkqQFnEj/XI9iOiieMlRhjpiRQWvZvkfEyLyfbPr@vger.kernel.org, AJvYcCWR27+h05N4xJWVfFKWp33+EB5qzDSwwSYhv6dMG7gyZ7s2kuaQENNJKecoLEIDUOuRG4ueyb1cxZM0J/Sm@vger.kernel.org, AJvYcCXkZ+Ot6rd2MCREQaZC/9h/JB/RgnKRBuBVlk9uSy+XKkRZliJA3Effksd7Es6pVezZIsFsP+0ssUbFBw==@vger.kernel.org X-Gm-Message-State: AOJu0YzKKQD9n9NEy819of7DcBFEOa050vgZ+/EFyvzSRVhYYve6kuWp 9o/WcHoWW9Hpy2e5DnkR1Q7pI+WzX8lS8Yjt7AaK8sHoPymVInBcP6vu X-Gm-Gg: ASbGncujjj+KpQhtoqdvh43ey+AAUirmUihTDYA5D4xszvIwLEcj/e4WVlKjq6OPVJ7 44eHxkMHiqDzBj3UIC2YWjCAKiQziLBelHDsGzzYSFr/GW/vOfVcxW4rjwZ1qFJ+Gjj8Tegwygt I7ROW3TVu0dSHY+5pFlCjFwKdnxe94bfLpyk8DohmyJ7e4POF73Orp4x9NCcYkwf3Yzi7puzbLx MGnASSxGi8AJVnToFK35b4nkFiP04iVvfzWxyIO/Img0+c+JVxjTvWZxu7IcRixl+sCK5qkfBvj kkjg51o8pnBs96EN7bxoQ9h1w72YL6ZZrhFMOUYvTSp+jeG9kJ/V4QJ0t9WcMnPZGz8PuK9a5uu H2kuv5oSaJue75ChoukQJj+iE1MYsW3JaHYlSaADYQbEu3KbpfsB8mD3V8cU4dRjnSdWi1D20ct A= X-Google-Smtp-Source: AGHT+IHvUbvFr57GAj/hQE8xfxiDlLg1TWgL+5HGU9dNUcnxRdGMO81pVBBt5RpnalyVwaK4Xtg7ig== X-Received: by 2002:a17:903:1a2c:b0:234:a139:11f0 with SMTP id d9443c01a7336-2462edab80amr150747455ad.7.1756089031108; Sun, 24 Aug 2025 19:30:31 -0700 (PDT) Received: from localhost.localdomain ([114.242.33.243]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-246687af234sm53905175ad.48.2025.08.24.19.30.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 24 Aug 2025 19:30:30 -0700 (PDT) From: Jinchao Wang To: Andrew Morton , Baoquan He , Yury Norov , Qianqiang Liu , Simona Vetter , Helge Deller , Petr Mladek , Steven Rostedt , John Ogness , Sergey Senozhatsky , Vivek Goyal , Dave Young , Kees Cook , Tony Luck , "Guilherme G. Piccoli" , Thomas Zimmermann , =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= , Shixiong Ou , Jinchao Wang , Zsolt Kajtar , Ingo Molnar , Nam Cao , Jonathan Cameron , Joel Fernandes , Joel Granados , Jason Gunthorpe , Sohil Mehta , Feng Tang , Sravan Kumar Gundu , Douglas Anderson , Thomas Gleixner , Anna Schumaker , "Darrick J. Wong" , Max Kellermann , Yunhui Cui , Tejun Heo , Luo Gengkun , Li Huafei , Thorsten Blum , Yicong Yang , linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, kexec@lists.infradead.org, linux-hardening@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 1/9] panic: Introduce helper functions for panic state Date: Mon, 25 Aug 2025 10:29:29 +0800 Message-ID: <20250825022947.1596226-2-wangjinchao600@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250825022947.1596226-1-wangjinchao600@gmail.com> References: <20250825022947.1596226-1-wangjinchao600@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" This patch introduces four new helper functions to abstract the management of the panic_cpu variable. These functions will be used in subsequent patches to refactor existing code. The direct use of panic_cpu can be error-prone and ambiguous, as it requires manual checks to determine which CPU is handling the panic. The new helpers clarify intent: panic_try_start(): Atomically sets the current CPU as the panicking CPU. panic_reset(): Reset panic_cpu to PANIC_CPU_INVALID. panic_in_progress(): Checks if a panic has been triggered. panic_on_this_cpu(): Returns true if the current CPU is the panic originator. panic_on_other_cpu(): Returns true if a panic is on another CPU. This change lays the groundwork for improved code readability and robustness in the panic handling subsystem. Signed-off-by: Jinchao Wang Reviewed-by: Petr Mladek --- include/linux/panic.h | 6 +++++ kernel/panic.c | 53 ++++++++++++++++++++++++++++++++++++++++++ kernel/printk/printk.c | 5 ---- 3 files changed, 59 insertions(+), 5 deletions(-) diff --git a/include/linux/panic.h b/include/linux/panic.h index 7be742628c25..6f972a66c13e 100644 --- a/include/linux/panic.h +++ b/include/linux/panic.h @@ -43,6 +43,12 @@ void abort(void); extern atomic_t panic_cpu; #define PANIC_CPU_INVALID -1 =20 +bool panic_try_start(void); +void panic_reset(void); +bool panic_in_progress(void); +bool panic_on_this_cpu(void); +bool panic_on_other_cpu(void); + /* * Only to be used by arch init code. If the user over-wrote the default * CONFIG_PANIC_TIMEOUT, honor it. diff --git a/kernel/panic.c b/kernel/panic.c index 72fcbb5a071b..eacb0c972110 100644 --- a/kernel/panic.c +++ b/kernel/panic.c @@ -294,6 +294,59 @@ void __weak crash_smp_send_stop(void) =20 atomic_t panic_cpu =3D ATOMIC_INIT(PANIC_CPU_INVALID); =20 +bool panic_try_start(void) +{ + int old_cpu, this_cpu; + + /* + * Only one CPU is allowed to execute the crash_kexec() code as with + * panic(). Otherwise parallel calls of panic() and crash_kexec() + * may stop each other. To exclude them, we use panic_cpu here too. + */ + old_cpu =3D PANIC_CPU_INVALID; + this_cpu =3D raw_smp_processor_id(); + + return atomic_try_cmpxchg(&panic_cpu, &old_cpu, this_cpu); +} +EXPORT_SYMBOL(panic_try_start); + +void panic_reset(void) +{ + atomic_set(&panic_cpu, PANIC_CPU_INVALID); +} +EXPORT_SYMBOL(panic_reset); + +bool panic_in_progress(void) +{ + return unlikely(atomic_read(&panic_cpu) !=3D PANIC_CPU_INVALID); +} +EXPORT_SYMBOL(panic_in_progress); + +/* Return true if a panic is in progress on the current CPU. */ +bool panic_on_this_cpu(void) +{ + /* + * We can use raw_smp_processor_id() here because it is impossible for + * the task to be migrated to the panic_cpu, or away from it. If + * panic_cpu has already been set, and we're not currently executing on + * that CPU, then we never will be. + */ + return unlikely(atomic_read(&panic_cpu) =3D=3D raw_smp_processor_id()); +} +EXPORT_SYMBOL(panic_on_this_cpu); + +/* + * Return true if a panic is in progress on a remote CPU. + * + * On true, the local CPU should immediately release any printing resources + * that may be needed by the panic CPU. + */ +bool panic_on_other_cpu(void) +{ + return (panic_in_progress() && !this_cpu_in_panic()); +} +EXPORT_SYMBOL(panic_on_other_cpu); + /* * A variant of panic() called from NMI context. We return if we've already * panicked on this CPU. If another CPU already panicked, loop in diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c index 0efbcdda9aab..5fe35f377b79 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -345,11 +345,6 @@ static void __up_console_sem(unsigned long ip) } #define up_console_sem() __up_console_sem(_RET_IP_) =20 -static bool panic_in_progress(void) -{ - return unlikely(atomic_read(&panic_cpu) !=3D PANIC_CPU_INVALID); -} - /* Return true if a panic is in progress on the current CPU. */ bool this_cpu_in_panic(void) { --=20 2.43.0 From nobody Fri Oct 3 20:56:11 2025 Received: from mail-pg1-f174.google.com (mail-pg1-f174.google.com [209.85.215.174]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 382D01C8626; Mon, 25 Aug 2025 02:30:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.174 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756089044; cv=none; b=siy3d+urwY+TuP/UhETIVrZy6VtNJ5FHNEC7htTJVxvT8Wug5GMEAZUkcjnYCzqMKwX/zKK947BqBk+YWAqlD97GRNC8t7B/33NGAzFVL1IpK5ANRH7NzAiRJ3Cxc/jIba/t7PKA1yuaJeT36idBYLjkfI1B5tpR0M/GeGtcCNw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756089044; c=relaxed/simple; bh=gK1bji433iA2jl/n7FvFfwhw8vDqh7Q2h32KSjblVwA=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=liuocTlFlN8URlJlcqWwJjnPQyV3OJhPCjF9E8cVJco+FLsKcNw3AA/56m1H937WHOuHfLWow4JkDdxIsSdi3f+KayvWjlsYpqixS9/Z5Wh6uK0faP35c8GlzvsQAHfy589BMHYELfybDbH/beszHJVfiwVoVXcn29fBYEkCvH0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=LBEifjA5; arc=none smtp.client-ip=209.85.215.174 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="LBEifjA5" Received: by mail-pg1-f174.google.com with SMTP id 41be03b00d2f7-b49e0686139so594932a12.2; Sun, 24 Aug 2025 19:30:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1756089042; x=1756693842; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=zFHAHU/+z+yhl9VER8s4Wp+oPk3FiOJt9Cdy6eMoyvc=; b=LBEifjA5kgkD++w99+07meLC8qMpVeKMElvKw+RLaoIw+zKqBqNChLmzIEXhxeqFY3 AzPb+3vs6lx45/ApuHo7tKrHaO5dJupR+Bdq4jjS0IYfy61LlLPE1c93WdRyyspLkqtm FUb8ilAS5iXpqjAYH3n6k/Fl7KFt/mMGP225C+6f4wBg7moar3mBkj8DMWIubGXv6Usm uYsIK2QIhNIN5moHzX2QTolMVlP2kQyJUcKTK308K19cdqmW4F3kXBIIpxkCkbXvkhbL dB3c14zfHoTtzlf3McY/zn+4H+H/Z9HjTStfd3AT4gk2mt7EH6v5Ao8+IlVW7/VvrAby ihew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756089042; x=1756693842; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=zFHAHU/+z+yhl9VER8s4Wp+oPk3FiOJt9Cdy6eMoyvc=; b=bbXXnGOKFiofmLYAqTzOVIW9AqWxaxBHQ9rY/6n8Ufr/6iOGtf/plZB/NznJ8PPJzw NFQSdZtETh0vaMm+2Hp2fjt9CwU+CmJWQP9IX2K+zxau5DPRIra8dOLkxH2MlbrX8x6D ldR9Rz4n1zCysNh0SL2WeLecfEdlmqps6PcAhrYrkxrHNXG2ESHrPEaNRKVWqvrhSJmf XmLLRzNx20dGAwcMeLOzUn789G2iWsk2H3q93JcuIr+DXdNTom0lbQARBUJCEhQAjHqj z9v0zHOh/tqEbKqu5nD3WyACE4trAURyQZnUqNAsZPD3xS1+P6729hu3kC2dWhJsZfYx qAwQ== X-Forwarded-Encrypted: i=1; AJvYcCU2CeDk3W9Al4fEeCjgPqtAwpPwfy65iCEmSOUoDRfM0nFU85+1GtITs5am7dZviKizc+woKL+N5zVXhg==@vger.kernel.org, AJvYcCUn7Qvxjbrs62mbQjpLCMT8HkHuoS7FqXMlDo9hcx9pAgo3y+BzzzpILL6wgD9I0Ar9xjeNiCZQOKH3uz1w4eJB@vger.kernel.org, AJvYcCWOdJpGkrL/qq5kYHCSteAh17mQBPUsMp24WKFBYjfKm1H4B8sDV1Nv5uFTGIu9+JmkiQs/TtEb9uXOYvFo@vger.kernel.org X-Gm-Message-State: AOJu0YyzbhAj0nDs97QXsfUNWoL6MyEpEwEAbsq+Z1sXY/kp/LdXFO3z iRM5OuTxpX60PzSAoT5M5KJ9G8zqFahY38Hx7J9D6n5l2AI23UO3gXtA X-Gm-Gg: ASbGnctCm0N0wZIw5rdlK5fHEaJnqvlSnKog1hC8rFY1JVKbJSUMq4F1Pjmn9Ou7lBZ SrbENK1zjfgItjFbZbXRy/PTA8AlZEej080mpWprrZtpwJdN1c6BLZ4yz64B/0c/cSeRAPCfcm7 3paEhDzIEPXpbV6uk/HCxWiEUTYlcK6LIp+jSK/LxThFWhF2cgc/PVgx/U2MLjmdWbnFu7kay/A irNorpl2e6mxfRoMNp11vwefA8V2qWlc+sfmgLPPGvUGbjsdmFKoWd/N3Xmk8tPobmwRizHI2gP ocmFGGYDosQhp7pqw/vcivTz5uspE2OKFPQRI4IQUeuA9Ce49Wt257Vkqp/3WZi6nIf8cWHUvTx lwtZ1XRvjHOEfQFhpT6qsBJLGX2muGcvXTbYivld6ySfna/JsmJ2RG9VPQ0TkrLU/jxBf3IvnGq k= X-Google-Smtp-Source: AGHT+IHERO/1eHRkEF6AC+dBVfTjpOtqq/Unp7jmksVhNk83icoLby3erE1Gst+iT6A6gassubAXtA== X-Received: by 2002:a17:903:41cc:b0:246:b58b:8b86 with SMTP id d9443c01a7336-246b58b8f44mr31066895ad.32.1756089042108; Sun, 24 Aug 2025 19:30:42 -0700 (PDT) Received: from localhost.localdomain ([114.242.33.243]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-246687af234sm53905175ad.48.2025.08.24.19.30.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 24 Aug 2025 19:30:41 -0700 (PDT) From: Jinchao Wang To: Andrew Morton , Baoquan He , Yury Norov , Qianqiang Liu , Simona Vetter , Helge Deller , Petr Mladek , Steven Rostedt , John Ogness , Sergey Senozhatsky , Vivek Goyal , Dave Young , Kees Cook , Tony Luck , "Guilherme G. Piccoli" , Thomas Zimmermann , =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= , Shixiong Ou , Jinchao Wang , Zsolt Kajtar , Ingo Molnar , Nam Cao , Jonathan Cameron , Joel Fernandes , Joel Granados , Jason Gunthorpe , Sohil Mehta , Feng Tang , Sravan Kumar Gundu , Douglas Anderson , Thomas Gleixner , Anna Schumaker , "Darrick J. Wong" , Max Kellermann , Yunhui Cui , Tejun Heo , Luo Gengkun , Li Huafei , Thorsten Blum , Yicong Yang , linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, kexec@lists.infradead.org, linux-hardening@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 2/9] fbdev: Use panic_in_progress() helper Date: Mon, 25 Aug 2025 10:29:30 +0800 Message-ID: <20250825022947.1596226-3-wangjinchao600@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250825022947.1596226-1-wangjinchao600@gmail.com> References: <20250825022947.1596226-1-wangjinchao600@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" This patch updates the fbcon_skip_panic() function to use the panic_in_progress() helper. The previous direct access to panic_cpu is less readable and is being replaced by a dedicated function that more clearly expresses the intent. This change is part of a series to refactor the kernel's panic handling logic for better clarity and robustness. Signed-off-by: Jinchao Wang Acked-by Qianqiang Liu Acked-by Qianqiang Liu --- drivers/video/fbdev/core/fbcon.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/drivers/video/fbdev/core/fbcon.c b/drivers/video/fbdev/core/fb= con.c index 55f5731e94c3..b062b05f4128 100644 --- a/drivers/video/fbdev/core/fbcon.c +++ b/drivers/video/fbdev/core/fbcon.c @@ -279,14 +279,7 @@ static int fbcon_get_rotate(struct fb_info *info) =20 static bool fbcon_skip_panic(struct fb_info *info) { -/* panic_cpu is not exported, and can't be used if built as module. Use - * oops_in_progress instead, but non-fatal oops won't be printed. - */ -#if defined(MODULE) - return (info->skip_panic && unlikely(oops_in_progress)); -#else - return (info->skip_panic && unlikely(atomic_read(&panic_cpu) !=3D PANIC_C= PU_INVALID)); -#endif + return (info->skip_panic && unlikely(panic_in_progress())); } =20 static inline bool fbcon_is_active(struct vc_data *vc, struct fb_info *inf= o) --=20 2.43.0 From nobody Fri Oct 3 20:56:11 2025 Received: from mail-pg1-f181.google.com (mail-pg1-f181.google.com [209.85.215.181]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B2FA11F7575; Mon, 25 Aug 2025 02:30:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756089057; cv=none; b=EaexxOpGsUcNuKQzGyw7UoEaU9JOdvZ/pe6Hw4s5UMmpXmHE5LjY57JP6CuGjkxxLQ80OQwoTBZmXzbn8mD7hBIUd5wt39+M7frV7rk85CFFnMRd4/edaeiRuuLw8xI2yApkynYrbbQF9FC1hOU1TWGexc4kWKlvFRFFwFX5Dj4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756089057; c=relaxed/simple; bh=rotx+P4b7HEx0aZgPSk7AQPfYVAI7p0UBrUh5aeZU8E=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Ai03tpIep7ouFGElweQ8nmFbFbcuVQsuIYXFWstAxxjSM/1xUqFJCW6EEixjxWiicgCzwgaoiecPIganKIfRwyMu3BnnkCNsZIYaT2dW/jOd4BPvXIAo3Y45UK59CSdYSdHxdkeZ0sIfcjiZviVCAw3dmDr6PHrTsP7oY4V4lxI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=gmlI6ExJ; arc=none smtp.client-ip=209.85.215.181 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="gmlI6ExJ" Received: by mail-pg1-f181.google.com with SMTP id 41be03b00d2f7-b49d46a8d05so1058004a12.0; Sun, 24 Aug 2025 19:30:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1756089054; x=1756693854; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=IH8YhLChJO+46PfNNdyjwrwQJKBLxU7b8IaUufHISe4=; b=gmlI6ExJmqstcC1YRgn/PmipRAGa0T1V3CVu9pNKNrKUq5d5OrfG+eGxhoY1J3diDb 6fAevfBrYFZ4PCfclConeCzpS48lgI2i9OWtr1TTyBfhPs4KXCCUkOZkuMsKxVHsxAQ8 6+kQC6nHiecFoLtY2KaNuBKn0jdh4yCZFCWnzLVWZITcU8f2uCy+jXEtYIUAOwBgjfFG kc/iSm23yXDiI2z/yIfGjH1grGZOAn7wBW7+36MRhZwaE7wD/BJOTA00jug9UEv14WEn bp5yhMYiueF+G0OcL/fMHx6yrMEwZXOtsnb2gzIIuvjVDb9FCiV+dqY/Yskr+3JkIQU6 6+cQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756089055; x=1756693855; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=IH8YhLChJO+46PfNNdyjwrwQJKBLxU7b8IaUufHISe4=; b=GmJp/f2jhn9KcXY57J7Ej6OC1SRnV90ZWpe616fdMnXsiipKXGqP+PR3vRpEwVRrCp OHNuecr1uyVYrJJtrFrZajuTI99ffHDQCsEtnw3ZlwasSRZpYOlnu5vFBct3cvfTdVUr lldkOwqp4bohVaVI0Mv6L1VBPVwzKQsShOKfDxGWe9NPAlQbmRWBCxqesS/YmEqb+qLv xP/cd05Nz+ygAhybgqwaf9Ho4fobF4amJdBpzLoufEJlHrHKrFrqID0a+TJ63q3Ft1tS Oc+niozDPVzZGqW4JZzeZjV06foZ9j7VeDkgm0vkHDcDpDZJtxQL74kGhC9XtapTaVsU 8C+g== X-Forwarded-Encrypted: i=1; AJvYcCUV2LJPdQgmY/Cvgw3aquf+j825VbheqwpLg9v145r4VJGBdogL7fBgdYINAMPLIXImDuPWgWQmkDSjsfIW@vger.kernel.org, AJvYcCV0beaxJwVnt4QBhtypbwy8cV3thw5ei+q1PWcj6VC2vN7KgbsfmwfLYfE8z2nLVztGBxykt/FoWXyVTlH+/BDy@vger.kernel.org, AJvYcCX0nMD7pA3YMw2dzuAEq6hG2DaCohdpSjyZ9RxJT5XXMYK2DzvpgMSF3m0zlhSL0MZAMEoi7V/gDw2AWw==@vger.kernel.org X-Gm-Message-State: AOJu0YyGtiPCw0GiMNAwwfkpCU5bKmrVHxipk2h2BCLHqPGgZGSfdc20 ZJ83SVm4EYsquaWZYO7KAHo5W1SOafDpRtTe9zdG7DIMWpwTvHguLXa5 X-Gm-Gg: ASbGncskm6ztyYAsLAsDDwbFRM2+Laz8G+gICbygiorgVr9NZR2AXaOtlG0iJSpJ3Hf dSjUuqZZ1BGU0vmn3xtYvDNy/4cMmWFjvalSFZ6amoML2Lvuq+qh1iNwnv+O8jqskPXutPGeMJA bsF+E3062t/ZrJ6Xyzt+MhB0m/t9wtQ5C2Mqf6cfIXNJ+kYmqaZzSm60OH9mm6gi1E5Wm6LhH4c HC73UDQLzz4x4gWJ8bli78NiSknghyYT3D1iYuPB9sYIq38PdmTN6G8QfpPdjqfUm9MkAQj2bj+ 3JXsPGPt5TJcIuiEcch7788RzkEN9nnddmGFEi5v+2ZNiphAl4ePhsm18i+XeYhrXQ6Z60Q5Zf4 hCKi5wlC1f5OeS+z6FPYxcjRSOTXwESuL5SSwVIj9zOcP0BdhQI01WH7X5AsCsnMI6WnuC+0zjQ I= X-Google-Smtp-Source: AGHT+IH6pBx05EUggFYxitz83mZVXTIxwPpm1bcXy5QtfKJU32rVyZCwSo5s5hfxiY5yh80orLgZOQ== X-Received: by 2002:a17:902:dad1:b0:240:8262:1a46 with SMTP id d9443c01a7336-2462ee54512mr139147305ad.25.1756089054419; Sun, 24 Aug 2025 19:30:54 -0700 (PDT) Received: from localhost.localdomain ([114.242.33.243]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-246687af234sm53905175ad.48.2025.08.24.19.30.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 24 Aug 2025 19:30:54 -0700 (PDT) From: Jinchao Wang To: Andrew Morton , Baoquan He , Yury Norov , Qianqiang Liu , Simona Vetter , Helge Deller , Petr Mladek , Steven Rostedt , John Ogness , Sergey Senozhatsky , Vivek Goyal , Dave Young , Kees Cook , Tony Luck , "Guilherme G. Piccoli" , Thomas Zimmermann , =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= , Shixiong Ou , Jinchao Wang , Zsolt Kajtar , Ingo Molnar , Nam Cao , Jonathan Cameron , Joel Fernandes , Joel Granados , Jason Gunthorpe , Sohil Mehta , Feng Tang , Sravan Kumar Gundu , Douglas Anderson , Thomas Gleixner , Anna Schumaker , "Darrick J. Wong" , Max Kellermann , Yunhui Cui , Tejun Heo , Luo Gengkun , Li Huafei , Thorsten Blum , Yicong Yang , linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, kexec@lists.infradead.org, linux-hardening@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 3/9] crash_core: use panic_try_start() in crash_kexec() Date: Mon, 25 Aug 2025 10:29:31 +0800 Message-ID: <20250825022947.1596226-4-wangjinchao600@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250825022947.1596226-1-wangjinchao600@gmail.com> References: <20250825022947.1596226-1-wangjinchao600@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" crash_kexec() had its own code to exclude parallel execution by setting panic_cpu. This is already handled by panic_try_start(). Switch to panic_try_start() to remove the duplication and keep the logic consistent. Signed-off-by: Jinchao Wang --- kernel/crash_core.c | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/kernel/crash_core.c b/kernel/crash_core.c index a4ef79591eb2..bb38bbaf3a26 100644 --- a/kernel/crash_core.c +++ b/kernel/crash_core.c @@ -4,6 +4,7 @@ * Copyright (C) 2002-2004 Eric Biederman */ =20 +#include "linux/panic.h" #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt =20 #include @@ -143,17 +144,7 @@ STACK_FRAME_NON_STANDARD(__crash_kexec); =20 __bpf_kfunc void crash_kexec(struct pt_regs *regs) { - int old_cpu, this_cpu; - - /* - * Only one CPU is allowed to execute the crash_kexec() code as with - * panic(). Otherwise parallel calls of panic() and crash_kexec() - * may stop each other. To exclude them, we use panic_cpu here too. - */ - old_cpu =3D PANIC_CPU_INVALID; - this_cpu =3D raw_smp_processor_id(); - - if (atomic_try_cmpxchg(&panic_cpu, &old_cpu, this_cpu)) { + if (panic_try_start()) { /* This is the 1st CPU which comes here, so go ahead. */ __crash_kexec(regs); =20 @@ -161,7 +152,7 @@ __bpf_kfunc void crash_kexec(struct pt_regs *regs) * Reset panic_cpu to allow another panic()/crash_kexec() * call. */ - atomic_set(&panic_cpu, PANIC_CPU_INVALID); + panic_reset(); } } =20 --=20 2.43.0 From nobody Fri Oct 3 20:56:11 2025 Received: from mail-pj1-f50.google.com (mail-pj1-f50.google.com [209.85.216.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3EF53153BD9; Mon, 25 Aug 2025 02:31:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756089068; cv=none; b=Inv3XPmk4tug7CbhdjuMW7VTlkfyOET8x9/KGDC1hfQD1aAHT0BgK7ZxOLIqI7zb5GJO+1gGDHIdJlgVZGshfuAlWQY/wQplfPX11t9I2bnneaDX05YUEowefwkAHzxss39cYdf9WPwSsQ8u6JEV4/vF3NZWp/FLwITz81hs5R4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756089068; c=relaxed/simple; bh=l4d2aO6yflIfj5ehW9qRQYi+2Dxw/Zf2JlJdhPbdTWU=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=UpNtfJ6+MW+b7CBM71JYa8/K8bRXMLnLqRfKJErgPLqOVJEdfuA3En2mIfZTV4djUp05QT9kZb0ht1Swn1diAsouqM9i0uceye967XwklIzHGqjPpvdD3AmDO38WUavcA4Dd7UW1wp1EGrmju3edTzVLybnRgX66RAjNAu6RvR0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=WcTeO2Mk; arc=none smtp.client-ip=209.85.216.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="WcTeO2Mk" Received: by mail-pj1-f50.google.com with SMTP id 98e67ed59e1d1-323267872f3so3010197a91.1; Sun, 24 Aug 2025 19:31:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1756089066; x=1756693866; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=G+OueiTUtaQ+cl4byHqQJI84zYdm0M5wQwtNQy1rpWk=; b=WcTeO2MkOCzTvt270utL5p0lLRjRwePHQ7scat6skhMuIxsENAuVEznNCp/IE5NI8r BQjYWnAJHp0RjQhfgS3GNs6Wlfft2BvI/OIlNJjMsfsZ05y0hJ1ClT1WNfhokiHqoXsJ Txg3E5Y3V2OYd5R4g12BsfEc9tCXc1kZk+UNM65YG6mQcEUYj5lQeAMcZzs7BgZAvjfO 7IhpjT/Uyh+/HiL496h/RAKPckJpGkhABV+w21m+l3Os5mx3VkVaO2nrTJ3lhfltqhvj 6eZ8fYOPFAswJ2QsfJuMETE30Y53Tydb1W3Fn17+pn9Wb5gX+bm5Z1z49jZgKsAzlDOH QKag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756089066; x=1756693866; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=G+OueiTUtaQ+cl4byHqQJI84zYdm0M5wQwtNQy1rpWk=; b=j+WnwpczMwMayXC0L6F8XyNwCAG6itzd9Q7seXnn2sW84H5pXHD7KAn0IpZMeApm/H 5kI06Hn54jXTAOTjL5nLnivz2mfOtr7m5M/yHtUzWL0C0ilmSHRe7wLHD11mZpUro/Ud A2i4HSpopYh7xLl/JF4R3jsIDI37/WXunRs5pKLELaaOTUwY2SdhWFAHEGSDX1hyAU3g /15cCtFU+3Hj/xjXD4ON7/FqbcwxQkftyZK8ZICvsGN7PLWyQ4KwxDpLdP5yEHkIIgvf kXxufBO9vasUJ2z1rbrLhhMnXTUmM4atCjmJ0fYRP00+T4/5LC6YafSUwDlXeH//cO0X vU6A== X-Forwarded-Encrypted: i=1; AJvYcCUBh1B27bBbpLD9GOTUe7XpnuC125yaDhuqhHEkilEDBzlF4GfQ1a4ZwiXfYX2No0YcR1QEW4Exu86frA==@vger.kernel.org, AJvYcCX+F5yNVObW949NcNuohAWQPSn4AYMxOkx9RU5jf+QnF/ZLyQ8O+zUjZzPGRJuuWxCRFtm4inIZJQ9VgI/A@vger.kernel.org, AJvYcCXMDPH3WwHSvV3EXp1NGZIMQVjYdAsLI3oUK0sp1pO4AIXtQ01OC5shovFlqnIL8YEifKlB8vWqvjtadbbsvEm6@vger.kernel.org X-Gm-Message-State: AOJu0Yws3c+k1+SE+VnZXSyrWu4e4cYicSJsNTwzdnXkD8gSAjSTFuF+ VPUy/JZxJUtB3wg1DrPPcqcZ7DrU1YCFq+m0+hwe8BOudcpszAyF0gfW X-Gm-Gg: ASbGncvk6jBPCsJXNz04MKgCJm8ytVUMkdQxyOddbCy0D3y0thvv4hTBO5R3OIqNy/h kctPE3luPPAnbA17bZXyl/SJO1DMnjgVwjiXfv3EbKjUN8PIE3NzS0S8NXSQITSP6Yg/w6uLkzC 5vdAvB2uW7exae1gPZldKLr9nOx24BlhF8ODXzvITBqUs6nUP2cJ/koW/noYLJK5rKNWdwsGHfG 4jyI9j6x19B+TQlBjWKtcaLOK2dQ8LNfN1JyBSvHJ62P6y/MkM+f+O8Z5tsc9q6vt48VXR8rMcS Uumr3vc7GNJss/TbFIWv3sppXBlpxFZDEt62M4T05Zugh+Oy1+O3TIzJAf5mKnINBNFQeosXtno //XpWu/cXeiU8FIv31MTD5xZtF1FKgjjcQaRoCwrj7sJ3RLfZwctMVookd3BnrRtEM09AXSxZaZ U= X-Google-Smtp-Source: AGHT+IGGTCfkkziinXGfm5OQ/klvHSQOorcEs0SZvFKbeIqW5aKv9q5QfSmua5wLs2b3iOYngv2Dpw== X-Received: by 2002:a17:903:37cb:b0:240:1bdc:afc3 with SMTP id d9443c01a7336-2462ef6f678mr124826755ad.44.1756089066318; Sun, 24 Aug 2025 19:31:06 -0700 (PDT) Received: from localhost.localdomain ([114.242.33.243]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-246687af234sm53905175ad.48.2025.08.24.19.30.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 24 Aug 2025 19:31:05 -0700 (PDT) From: Jinchao Wang To: Andrew Morton , Baoquan He , Yury Norov , Qianqiang Liu , Simona Vetter , Helge Deller , Petr Mladek , Steven Rostedt , John Ogness , Sergey Senozhatsky , Vivek Goyal , Dave Young , Kees Cook , Tony Luck , "Guilherme G. Piccoli" , Thomas Zimmermann , =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= , Shixiong Ou , Jinchao Wang , Zsolt Kajtar , Ingo Molnar , Nam Cao , Jonathan Cameron , Joel Fernandes , Joel Granados , Jason Gunthorpe , Sohil Mehta , Feng Tang , Sravan Kumar Gundu , Douglas Anderson , Thomas Gleixner , Anna Schumaker , "Darrick J. Wong" , Max Kellermann , Yunhui Cui , Tejun Heo , Luo Gengkun , Li Huafei , Thorsten Blum , Yicong Yang , linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, kexec@lists.infradead.org, linux-hardening@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 4/9] panic: use panic_try_start() in nmi_panic() Date: Mon, 25 Aug 2025 10:29:32 +0800 Message-ID: <20250825022947.1596226-5-wangjinchao600@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250825022947.1596226-1-wangjinchao600@gmail.com> References: <20250825022947.1596226-1-wangjinchao600@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" nmi_panic() duplicated the logic to claim panic_cpu with atomic_try_cmpxchg. This is already wrapped in panic_try_start(). Replace the open-coded logic with panic_try_start(), and use panic_on_other_cpu() for the fallback path. This removes duplication and keeps panic handling code consistent. Signed-off-by: Jinchao Wang --- kernel/panic.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/kernel/panic.c b/kernel/panic.c index eacb0c972110..cd86d37d124c 100644 --- a/kernel/panic.c +++ b/kernel/panic.c @@ -355,15 +355,9 @@ EXPORT_SYMBOL(panic_on_other_cpu); */ void nmi_panic(struct pt_regs *regs, const char *msg) { - int old_cpu, this_cpu; - - old_cpu =3D PANIC_CPU_INVALID; - this_cpu =3D raw_smp_processor_id(); - - /* atomic_try_cmpxchg updates old_cpu on failure */ - if (atomic_try_cmpxchg(&panic_cpu, &old_cpu, this_cpu)) + if (panic_try_start()) panic("%s", msg); - else if (old_cpu !=3D this_cpu) + else if (panic_on_other_cpu()) nmi_panic_self_stop(regs); } EXPORT_SYMBOL(nmi_panic); --=20 2.43.0 From nobody Fri Oct 3 20:56:11 2025 Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0811723504B; Mon, 25 Aug 2025 02:31:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756089080; cv=none; b=nXdn8LMA3UcR5hNA4/qGp0eNFT4tabTRmH67cD07zBtFQZfNFwxthTrsLf67v3lhji1BCZiHLFmhsi4AnNYj1h8vvAM/QXY1lnHYFaqPYuDJw2v0Z0cICRjh6Xs3nKAo0AOGPLnoC3S5aqSTHbQlywhAq9JHtCyEPRRPNMVNAOg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756089080; c=relaxed/simple; bh=NRMbYvlGW941kMEietS2rZxYzAjvsg56wuTDhUbjaPE=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MJiz2SVR3sGZI3p1Rhs+kB3gYMo7+xub3fDWNipVymI1XUxuxOoRRUda/8row5HNdaP8GweZfcJ4WEHlfTJcO0OM12HV0ObwrTIjxjoeV8oUx4LU6ceg8q2mxRhUxqHRBm/1l1T7byyxUDMjxSrCUT1FfaOb7HoybO5O5vrDXWA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=gTiBlNCq; arc=none smtp.client-ip=209.85.214.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="gTiBlNCq" Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-2445824dc27so36346345ad.3; Sun, 24 Aug 2025 19:31:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1756089078; x=1756693878; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=F7yKzJNb2rx6SiyelcSe/xXvw8ffKUxo6CoK3itAFgM=; b=gTiBlNCq/54tADIkumqgmrWdWUjbwz9mKFE1qPSQ7rlwd+gB0jvF8Aa5libp9AzXz4 lS+G66TmLsxbZg0nprtjnXv1jCs8iLYcd/RTZweeEIzCxP4JwfdDzwm9Un78pGZZazWr MeO/uxmd0RbMjrkFRPX10UjM7z2o9PDnsGA6WqFrqUnYp933oNAt1XqF6rF8r41/mpYp /aODh8NVaJa5LhcmdAyCl5tviuZ4O/qThTKc4azWzR2AlStpw01+yC2hsIC0XBSz3jvP htSn7c8Z04CPk6EjlGIUT3Rog7iy6ErD+psAu7Lv0o6XzUlm5BX9luFndGWjqxYKWplz XaiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756089078; x=1756693878; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=F7yKzJNb2rx6SiyelcSe/xXvw8ffKUxo6CoK3itAFgM=; b=rRKmchATgaLvgMHrKFh6r6Ge2qnk5137a+0eTXPq6gnIPjTWyeimPsnXou5lZ/5Idn VjCivb23xKe+8PrfyN2yJS4JH7ffE+2Ql4OMMXmLw0h8jldfC6SWv4gqskxIMZKQvm9r 4mIwIjcNNS55molIfPU94uDYZX5wCYCJ2urRB9kpuEXeOyUmDNa+aTV+uOrAuAA/Eu9/ j8SIyRq8Rj9uYQauybePDMEA9RIBmc38u4/2KQzFgRQt5ojfcvdm/YqonjqZ+BGKFvRt d1oL844PZLQOjFwf8ZOG+NUrtVp8IZfg2NQvOgVqpKApeSd6h00pDR0j1tmQ4YG5WOdV o19Q== X-Forwarded-Encrypted: i=1; AJvYcCU/zI9lmZ8ScV4iUuROzu4oI0fqFRSE4yT/DtgH+VyvAtcT+yQvEQpT2O+FJ9wRwCxS3HZVUC/uqmovZ094@vger.kernel.org, AJvYcCVjauU948bNEjIc4JgZfnDC25/6U5RLP3M/NnWtEeVCpSvlvnl1C3Zjye4mr7XFpBVwosXP7WnIp0kSgg==@vger.kernel.org, AJvYcCW0IrZ8CYUJ1I8FjKS6KDzp7GQNGZjfD6alGDDXv2o8SQxHEcj+2WmPRtueGzbAxMABSN6SooEPdl1k57rBW0l2@vger.kernel.org X-Gm-Message-State: AOJu0YwaBINqW9oAqzq8rIHH2ZOtU6AC9N9UASlTDEe/LsElgyjptmxf 3W4BxiAIvnAi4MzfM5Xbyq23T7RF7kg5B9KXmCbw7IheAA/e03yMXxMn X-Gm-Gg: ASbGnct/1KIajgZk3GWCUx7eqFXVZO4Nhqm3TZ7tbKiemPgaYMXJ50lSvIbeQrpDmy7 mtAHNYD3/m9WUvvKb7RvF/+WnbpEG5gD28+7i9+DxNG8UwW0b6XLX5lQuFA9bVYoD/hyq1+SBZr 8zXti8wMGDBc4d6y3aRo8RHuIAjUBIEGw6MBS8Gj9UlMtuvSeewm9BpbVA4KteCxq04TyQFvGeD 2OOc55hCD6wkvb+0bTLVpRn1KZxljV9YoU9COmAUZ895ExCcV9ASAYoAq+IYnZu3dxliNtJVDoy lUaAnhPTn04OnwbGOgw+9Gl8p8r1kj8HVgZdy9/63ZhKdmZzs0iLIRUiHu6LT5ZdcDHkPjnsj3P oDcZIh6P45jBTqUb6LNtG43KER/+s5zV4VC5YqVQLYIAhL34QQJAzBPrC05SUr5O7XiXoxmEWzZ ITR1os15mDyg== X-Google-Smtp-Source: AGHT+IGGk8nOO00I8QY6Ycp9jgs1ZyfKkaugn7N1DZdz8CRfy99hpUtZQbqKZx4/jp/Z5JOoCix/CQ== X-Received: by 2002:a17:903:40ca:b0:246:ece3:de0b with SMTP id d9443c01a7336-246ed0267f5mr4431665ad.16.1756089078131; Sun, 24 Aug 2025 19:31:18 -0700 (PDT) Received: from localhost.localdomain ([114.242.33.243]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-246687af234sm53905175ad.48.2025.08.24.19.31.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 24 Aug 2025 19:31:17 -0700 (PDT) From: Jinchao Wang To: Andrew Morton , Baoquan He , Yury Norov , Qianqiang Liu , Simona Vetter , Helge Deller , Petr Mladek , Steven Rostedt , John Ogness , Sergey Senozhatsky , Vivek Goyal , Dave Young , Kees Cook , Tony Luck , "Guilherme G. Piccoli" , Thomas Zimmermann , =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= , Shixiong Ou , Jinchao Wang , Zsolt Kajtar , Ingo Molnar , Nam Cao , Jonathan Cameron , Joel Fernandes , Joel Granados , Jason Gunthorpe , Sohil Mehta , Feng Tang , Sravan Kumar Gundu , Douglas Anderson , Thomas Gleixner , Anna Schumaker , "Darrick J. Wong" , Max Kellermann , Yunhui Cui , Tejun Heo , Luo Gengkun , Li Huafei , Thorsten Blum , Yicong Yang , linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, kexec@lists.infradead.org, linux-hardening@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 5/9] panic: use panic_try_start() in vpanic() Date: Mon, 25 Aug 2025 10:29:33 +0800 Message-ID: <20250825022947.1596226-6-wangjinchao600@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250825022947.1596226-1-wangjinchao600@gmail.com> References: <20250825022947.1596226-1-wangjinchao600@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" vpanic() had open-coded logic to claim panic_cpu with atomic_try_cmpxchg. This is already handled by panic_try_start(). Switch to panic_try_start() and use panic_on_other_cpu() for the fallback path. This removes duplicate code and makes panic handling consistent across functions. Signed-off-by: Jinchao Wang --- kernel/panic.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/kernel/panic.c b/kernel/panic.c index cd86d37d124c..5266e195f5ac 100644 --- a/kernel/panic.c +++ b/kernel/panic.c @@ -415,7 +415,6 @@ void vpanic(const char *fmt, va_list args) static char buf[1024]; long i, i_next =3D 0, len; int state =3D 0; - int old_cpu, this_cpu; bool _crash_kexec_post_notifiers =3D crash_kexec_post_notifiers; =20 if (panic_on_warn) { @@ -452,13 +451,10 @@ void vpanic(const char *fmt, va_list args) * `old_cpu =3D=3D this_cpu' means we came from nmi_panic() which sets * panic_cpu to this CPU. In this case, this is also the 1st CPU. */ - old_cpu =3D PANIC_CPU_INVALID; - this_cpu =3D raw_smp_processor_id(); - /* atomic_try_cmpxchg updates old_cpu on failure */ - if (atomic_try_cmpxchg(&panic_cpu, &old_cpu, this_cpu)) { + if (panic_try_start()) { /* go ahead */ - } else if (old_cpu !=3D this_cpu) + } else if (panic_on_other_cpu()) panic_smp_self_stop(); =20 console_verbose(); --=20 2.43.0 From nobody Fri Oct 3 20:56:11 2025 Received: from mail-pj1-f42.google.com (mail-pj1-f42.google.com [209.85.216.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 019B4234963; Mon, 25 Aug 2025 02:31:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756089092; cv=none; b=QSv1eSv57uOYWQLHoAu/cqpqC3+e7PsFOzp0FOtWDRe+DWM1krBJpO4wKtq/sVLtDhDiA22EsiepxC6L3n6pBlMpco7k1sM7ro+0XJo9f7ecvtaQwNZ3fjeizfg6AMu+/S8Ouo6zznL5nc6vsj8ty5e/DuvBkvT2ob7icspbozk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756089092; c=relaxed/simple; bh=KT9SUhjt4AKUdsfAMRDowDVzPk3fq4BEd8+MHQn5wjI=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=AVaJ5D0jlh6fxKHYN254vTp5cqXwpaS54s/wUlCJacwA0M1SjDZ9FcLvaMy7HVq3ZQGI3lGGad0TEmMmiyIkQvj+01VVYWyPFvP4QqpLfq/wVpW8eRvWXiWWyIHLj9jGIiOXJ9mHMvT1faK6aYyBF06Lz5/d5sbPcK6FxhwlQtY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=d1s/pu/1; arc=none smtp.client-ip=209.85.216.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="d1s/pu/1" Received: by mail-pj1-f42.google.com with SMTP id 98e67ed59e1d1-32326e67c95so4256544a91.3; Sun, 24 Aug 2025 19:31:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1756089090; x=1756693890; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=QVC8azoXPoxosuCvm1eCBz9SCYhPLAwxnPZ8goaQCGw=; b=d1s/pu/10YXd/RekzjE/SzgHro1ydF+nhCUIJcKNureBewoaci2wm59OPy6e7vjgP9 UIrFa+YI9w9DHNf3qLAbr3spiK6DUBuBX5x89CNLWGl6Y2MyKavxLUqwkdY5csyxaQHu wrIYAoKgbdB1OQufObZCAGFV7oHv+GuJCr5DmwxX9ydmqnItGpqI10/2IPvqVeXBpTNl HYNdp1VmvLUsmNNGoiQRL0KdcKsicwyp5CXDFX9N1vRNpCgqfCV7I4IgFsO5cm09HkZC 6bWl9UlU+f+wK7bep8D2XQfMV9t2mLLz1JDy+L5tt2EENrDIkFesx7dNur1BUUJ4TyDH xcVA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756089090; x=1756693890; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=QVC8azoXPoxosuCvm1eCBz9SCYhPLAwxnPZ8goaQCGw=; b=C7ayGiX/DSTfHoCPZjjgaKu0WYZwCLMlOIHo+F3JDXJQqDP30J5riydlJQrOMaYQYS 42rpxEDQKdlWKY2Ls2F7RAxsNkjVV12I/XnlglzQg40pjGwrJyT/F/2rPBkmJ0/dEizg ZOybUJvFyD5ba0c7cGA6BnCtYyqbAbUvYahWmwvCvqizKA1rgyjldXtCpMeIaYc8XuLI Jt2qEEOsdquOZOTWFopLqSpIGGsg5hQFnUUHBV9Q7CK8737UIVGOKYeMhDEjpwnFSzV4 01hpoEVBJfvmiYrgRY3cv8gJsrfhKIfzHO6Ri6Oyoasbzb+G9rwJSpFkBVGupO1uGyNR Ljig== X-Forwarded-Encrypted: i=1; AJvYcCVafHzzdubKVZcXMf+Xep0faxBxHovbdTPlGN9HnXBDCAMQnRA4hly3ND9v82xsESkjypVenhpqfSEyFfotdcij@vger.kernel.org, AJvYcCWWtY4Bt8R+obNWNd3fFt7caIV4USI8V0jy1wZn4Jou+gMkB0//RIYfCVhGe21cvzfU+28/WXnbWxM8yw==@vger.kernel.org, AJvYcCXL8FXlwzxVe2vpRYb/ntFsDm8ig8LgY168Lxwy18fzNk1BDL9f+XAQra+enKld186YTs/b8dCha1LwNYWJ@vger.kernel.org X-Gm-Message-State: AOJu0YyQtGyqluWw9pHD/zcLm1SGPTmsNXleUro8eYEDqBbtUhJWyCAM GD+O3CHuF77MBaTUIckbLrYiwkv/DL/XupUWri2ZoSHHZKTrxqgaLi4T X-Gm-Gg: ASbGncs3/BVHtbXDniEPl18HPgnIDG396ZKjINu7HuQBh4Ydi4xeFo9eJsRjrX8fD3h zkaNZRLvXKn05DG1KuTcRlWdDA6ctgB0HwgAo05dB6NAHN8r0D40LGItY/gkQENzS1QQFRWzGoh deyV4bYmycb83lDoi8nTx/eh2439OHOtsJXUAIGvYzvnGXgBAUYBMV6AgUi+oLAUS7Voay7QPVU BrjXKV7L+L9DwJJP1rdoEZlwJ7HJYjM9B7d6BHXDbhzoEZmZR06rwMDoNZx47yyUQYlSDRJP4Pp 9ulXJHtx0LnFiVHamfWUbh5j8ZiPr9Bo7YKUTC/JjDyrplNNvVDgLBZyKDrhirB23gh4QZ3mpOE GmC2T+SljiMGdZ670vbB45mHwpmoZNGlA/iA9amEBPXOODRqmrt8S7T9Clcynbc5/q5pcwbjbd7 I= X-Google-Smtp-Source: AGHT+IEJ/RxmV9vk0nXMb491fT4XTeycZujwgAzjS69NOeWahllc9+DZTfyHZl2PP7ynSHAO+OZuag== X-Received: by 2002:a17:903:1ae4:b0:240:a889:554d with SMTP id d9443c01a7336-2462ef8e723mr143141775ad.45.1756089090224; Sun, 24 Aug 2025 19:31:30 -0700 (PDT) Received: from localhost.localdomain ([114.242.33.243]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-246687af234sm53905175ad.48.2025.08.24.19.31.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 24 Aug 2025 19:31:29 -0700 (PDT) From: Jinchao Wang To: Andrew Morton , Baoquan He , Yury Norov , Qianqiang Liu , Simona Vetter , Helge Deller , Petr Mladek , Steven Rostedt , John Ogness , Sergey Senozhatsky , Vivek Goyal , Dave Young , Kees Cook , Tony Luck , "Guilherme G. Piccoli" , Thomas Zimmermann , =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= , Shixiong Ou , Jinchao Wang , Zsolt Kajtar , Ingo Molnar , Nam Cao , Jonathan Cameron , Joel Fernandes , Joel Granados , Jason Gunthorpe , Sohil Mehta , Feng Tang , Sravan Kumar Gundu , Douglas Anderson , Thomas Gleixner , Anna Schumaker , "Darrick J. Wong" , Max Kellermann , Yunhui Cui , Tejun Heo , Luo Gengkun , Li Huafei , Thorsten Blum , Yicong Yang , linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, kexec@lists.infradead.org, linux-hardening@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 6/9] printk/nbcon: use panic_on_this_cpu() helper Date: Mon, 25 Aug 2025 10:29:34 +0800 Message-ID: <20250825022947.1596226-7-wangjinchao600@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250825022947.1596226-1-wangjinchao600@gmail.com> References: <20250825022947.1596226-1-wangjinchao600@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" nbcon_context_try_acquire() compared panic_cpu directly with smp_processor_id(). This open-coded check is now provided by panic_on_this_cpu(). Switch to panic_on_this_cpu() to simplify the code and improve readability. Signed-off-by: Jinchao Wang Reviewed-by: Petr Mladek --- kernel/printk/nbcon.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel/printk/nbcon.c b/kernel/printk/nbcon.c index 646801813415..7490865e2f44 100644 --- a/kernel/printk/nbcon.c +++ b/kernel/printk/nbcon.c @@ -2,6 +2,7 @@ // Copyright (C) 2022 Linutronix GmbH, John Ogness // Copyright (C) 2022 Intel, Thomas Gleixner =20 +#include "linux/panic.h" #include #include #include @@ -589,7 +590,6 @@ static struct printk_buffers panic_nbcon_pbufs; */ static bool nbcon_context_try_acquire(struct nbcon_context *ctxt, bool is_= reacquire) { - unsigned int cpu =3D smp_processor_id(); struct console *con =3D ctxt->console; struct nbcon_state cur; int err; @@ -614,7 +614,7 @@ static bool nbcon_context_try_acquire(struct nbcon_cont= ext *ctxt, bool is_reacqu /* Acquire succeeded. */ =20 /* Assign the appropriate buffer for this context. */ - if (atomic_read(&panic_cpu) =3D=3D cpu) + if (panic_on_this_cpu()) ctxt->pbufs =3D &panic_nbcon_pbufs; else ctxt->pbufs =3D con->pbufs; --=20 2.43.0 From nobody Fri Oct 3 20:56:11 2025 Received: from mail-pl1-f182.google.com (mail-pl1-f182.google.com [209.85.214.182]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0AE47233136; Mon, 25 Aug 2025 02:31:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756089103; cv=none; b=VjOQfI4JaEVAeW2xna8UnuFbbc/0/KTds9OLr/BDAVR4zniRn3t1kqEJAqhhOpfS66LjwqlKu/Wx2q97vABUhCGXhH2KPIUmROSygKQZl3r8VjpPgGmijGqcejKPa5T93a5X0NxjQ/Dw7IoVVrfrJg5O1/Tnr6GGHlvVM83TZQ8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756089103; c=relaxed/simple; bh=9keaCwlo1nRU6PVMuHpxyQD3PQWcJROLr4j+vesuEEk=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=CIxGfHseS4WSZAMhqCLKuAVCNI6GdLDKMLgPSxbQqmQSB5XvHp6xhURo0p9SCRzHZEaTYTrpiVu8kbKZpallU72fZItC3/nML8Vfn28/QDdVu64FGGPuJlyfXcvCwMdKQBXNs1z9Y6Kiw9X+DfhyDgAE3SRtzB4EXzLvLxd4PvA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=G/vEae0F; arc=none smtp.client-ip=209.85.214.182 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="G/vEae0F" Received: by mail-pl1-f182.google.com with SMTP id d9443c01a7336-2445806e03cso45349295ad.1; Sun, 24 Aug 2025 19:31:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1756089101; x=1756693901; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=WUEa4tYSS0p5DNjOCVeWcyYJH7ruf9/pefat3lfo8dQ=; b=G/vEae0FwZxnF1OGlOXFAGQ37c/PWIEjsbpVTkEYkJYK8ar6qhP58o/ANV+M7gpD7y KtfLixuB6tjj9drX1DSa6N6AMX35jTNfeZKtTF2zdAQnIMLeW9bN8wp6J4LEUrSJNwwE h8FdSjiSxAH4VCx2Gi5eriN07bxAu7Jj437H6bWk8W1EzmBMb/jbDv1noi9x8ESdXCbB cGNp6NHv7SC6cD37AVBI4Ubp+k52fTpdTe7j/PPYzgzS0NDxfoQMMbMqMVHFDZjZD+Yu RvLpq3zxXALndj3GUxLmfPV55qLSeSepAcA6rOuUa4p6txud1hyWnXgAs0ekIGAYDl2e l90A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756089101; x=1756693901; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=WUEa4tYSS0p5DNjOCVeWcyYJH7ruf9/pefat3lfo8dQ=; b=USujAL0PuHs/ZDs+rbrsYkm1hHk+alf2cf9FEEdXl4fIji2fGiHlh/COJZZFGXnIpB pFOwTK6X10xgS62+eygFDVfC70+/+9L1w4lLdwdAiazTpb2VJcY3xFHTcedWkeoprgYJ wu7jFV7/6OlFeHZseL3bJH2ZB8JjPQzYmoOezxZY9TxjED2k+HqTeR6/EGjtGbTjLQlB FsDxtJiuFptzwAusiiPVnG2T/OY1MGqMGeHa+D3x9eCFfW8JSCoigOY3akzm7Cj6ZqxW opJXcZNEspEKYNWzrwFBo4LKe/S29MR2JKGwF0xN8qN+d2TKvZPqXaxtAQNO4EraeAQD KbOQ== X-Forwarded-Encrypted: i=1; AJvYcCUZH/64tpGZjvOKyWFWiDPPa6dO4cOg0Dmshpl+lk6R2sflv9sOgyToTyAXJ7TMjNwXL2+EWsk2+jfKL6D/@vger.kernel.org, AJvYcCXACDskGvlQ3yitFB6UtbyFm/dpEo943dj6B/XOr5g0eBLQqStXdkzy8DMNJobplWLVZMv2kAqzLj+3DQ==@vger.kernel.org, AJvYcCXE4N3rDwSlkqlIDmD3drAItyd+6rHz0QW+VOluIo2+N0bFCJhpDu1Al24lihkelxvM25gPtoigyXqhETTsEdgS@vger.kernel.org X-Gm-Message-State: AOJu0YyS4Lf3ha5R6u4vrR4wupojwtu8TmKVUYqei1Qep0zY5tEaFFrX pJC6HQWyVsrn62jgyk93RPMz4we36QcN+JA524/2YK6K5bdl3yfwMBQc X-Gm-Gg: ASbGncvRveq02+uUfXJKQ/5eruNG2+BEuIONsCeXJagTagNGZvyQtCvFHCuCnYiizbf xJVfok3PmJ22ztMMojVMYonodMWwTCFCsiZMf0o4//GHy3XmKow97CVIOVIKviMcw3TobnW+2dH H0MN3p6ppS9VZ78jEp6hZz/+ybtYbLD1Tj+j7fswz2ps86JTvEYFtbxPYb9mKiD0+gydgB9YbJx yRBLRMYoUZMhCnu43t4xfrq3GB/Mr2AxWie8zWcpxTcKqGlX2sVa+XEYQe7qTF8gTtisueuuEWb m6jvGRteSJYt3VJPNHwIaX7wgAqpai/8RRGdp2tlB6b4Ttm9+Srk3U9zUCwiYMVHRvzcoUxiiyT Pp0zMrT7faUN65O9Vd/ginCKA5E9WykVHVXSyFesRRfQv7LEKkuVJXEm/PLUKeo1SZseKL/Ic6v M= X-Google-Smtp-Source: AGHT+IEsHHne9AMztJo7a8IjD1y4loI/AihrgL9BB/L9e0AetCJaQuYxWX/l7xlWh7T6OVyIoYtcqA== X-Received: by 2002:a17:903:283:b0:246:61c:a67e with SMTP id d9443c01a7336-2462efdd639mr124786615ad.61.1756089101128; Sun, 24 Aug 2025 19:31:41 -0700 (PDT) Received: from localhost.localdomain ([114.242.33.243]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-246687af234sm53905175ad.48.2025.08.24.19.31.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 24 Aug 2025 19:31:40 -0700 (PDT) From: Jinchao Wang To: Andrew Morton , Baoquan He , Yury Norov , Qianqiang Liu , Simona Vetter , Helge Deller , Petr Mladek , Steven Rostedt , John Ogness , Sergey Senozhatsky , Vivek Goyal , Dave Young , Kees Cook , Tony Luck , "Guilherme G. Piccoli" , Thomas Zimmermann , =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= , Shixiong Ou , Jinchao Wang , Zsolt Kajtar , Ingo Molnar , Nam Cao , Jonathan Cameron , Joel Fernandes , Joel Granados , Jason Gunthorpe , Sohil Mehta , Feng Tang , Sravan Kumar Gundu , Douglas Anderson , Thomas Gleixner , Anna Schumaker , "Darrick J. Wong" , Max Kellermann , Yunhui Cui , Tejun Heo , Luo Gengkun , Li Huafei , Thorsten Blum , Yicong Yang , linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, kexec@lists.infradead.org, linux-hardening@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 7/9] panic/printk: replace this_cpu_in_panic() with panic_on_this_cpu() Date: Mon, 25 Aug 2025 10:29:35 +0800 Message-ID: <20250825022947.1596226-8-wangjinchao600@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250825022947.1596226-1-wangjinchao600@gmail.com> References: <20250825022947.1596226-1-wangjinchao600@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The helper this_cpu_in_panic() duplicated logic already provided by panic_on_this_cpu(). Remove this_cpu_in_panic() and switch all users to panic_on_this_cpu(). This simplifies the code and avoids having two helpers for the same check. Signed-off-by: Jinchao Wang Reviewed-by: Petr Mladek --- include/linux/printk.h | 2 -- kernel/panic.c | 2 +- kernel/printk/nbcon.c | 2 +- kernel/printk/printk.c | 15 ++------------- kernel/printk/printk_ringbuffer.c | 2 +- lib/dump_stack.c | 2 +- 6 files changed, 6 insertions(+), 19 deletions(-) diff --git a/include/linux/printk.h b/include/linux/printk.h index 5d22b803f51e..45c663124c9b 100644 --- a/include/linux/printk.h +++ b/include/linux/printk.h @@ -330,8 +330,6 @@ static inline bool pr_flush(int timeout_ms, bool reset_= on_progress) =20 #endif =20 -bool this_cpu_in_panic(void); - #ifdef CONFIG_SMP extern int __printk_cpu_sync_try_get(void); extern void __printk_cpu_sync_wait(void); diff --git a/kernel/panic.c b/kernel/panic.c index 5266e195f5ac..8415e4073da1 100644 --- a/kernel/panic.c +++ b/kernel/panic.c @@ -343,7 +343,7 @@ EXPORT_SYMBOL(panic_on_this_cpu); */ bool panic_on_other_cpu(void) { - return (panic_in_progress() && !this_cpu_in_panic()); + return (panic_in_progress() && !panic_on_this_cpu()); } EXPORT_SYMBOL(panic_on_other_cpu); =20 diff --git a/kernel/printk/nbcon.c b/kernel/printk/nbcon.c index 7490865e2f44..c6d1a4a747e9 100644 --- a/kernel/printk/nbcon.c +++ b/kernel/printk/nbcon.c @@ -1394,7 +1394,7 @@ enum nbcon_prio nbcon_get_default_prio(void) { unsigned int *cpu_emergency_nesting; =20 - if (this_cpu_in_panic()) + if (panic_on_this_cpu()) return NBCON_PRIO_PANIC; =20 cpu_emergency_nesting =3D nbcon_get_cpu_emergency_nesting(); diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c index 5fe35f377b79..faa8b1f0585b 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -17,6 +17,7 @@ * 01Mar01 Andrew Morton */ =20 +#include "linux/panic.h" #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt =20 #include @@ -345,18 +346,6 @@ static void __up_console_sem(unsigned long ip) } #define up_console_sem() __up_console_sem(_RET_IP_) =20 -/* Return true if a panic is in progress on the current CPU. */ -bool this_cpu_in_panic(void) -{ - /* - * We can use raw_smp_processor_id() here because it is impossible for - * the task to be migrated to the panic_cpu, or away from it. If - * panic_cpu has already been set, and we're not currently executing on - * that CPU, then we never will be. - */ - return unlikely(atomic_read(&panic_cpu) =3D=3D raw_smp_processor_id()); -} - /* * Return true if a panic is in progress on a remote CPU. * @@ -365,7 +354,7 @@ bool this_cpu_in_panic(void) */ bool other_cpu_in_panic(void) { - return (panic_in_progress() && !this_cpu_in_panic()); + return (panic_in_progress() && !panic_on_this_cpu()); } =20 /* diff --git a/kernel/printk/printk_ringbuffer.c b/kernel/printk/printk_ringb= uffer.c index d9fb053cff67..e2a1b2d34d2b 100644 --- a/kernel/printk/printk_ringbuffer.c +++ b/kernel/printk/printk_ringbuffer.c @@ -2143,7 +2143,7 @@ static bool _prb_read_valid(struct printk_ringbuffer = *rb, u64 *seq, * But it would have the sequence number returned * by "prb_next_reserve_seq() - 1". */ - if (this_cpu_in_panic() && + if (panic_on_this_cpu() && (!debug_non_panic_cpus || legacy_allow_panic_sync) && ((*seq + 1) < prb_next_reserve_seq(rb))) { (*seq)++; diff --git a/lib/dump_stack.c b/lib/dump_stack.c index b3a85fe8b673..f0c78b5b5324 100644 --- a/lib/dump_stack.c +++ b/lib/dump_stack.c @@ -102,7 +102,7 @@ static void __dump_stack(const char *log_lvl) */ asmlinkage __visible void dump_stack_lvl(const char *log_lvl) { - bool in_panic =3D this_cpu_in_panic(); + bool in_panic =3D panic_on_this_cpu(); unsigned long flags; =20 /* --=20 2.43.0 From nobody Fri Oct 3 20:56:11 2025 Received: from mail-pl1-f179.google.com (mail-pl1-f179.google.com [209.85.214.179]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4341622DFBA; Mon, 25 Aug 2025 02:31:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756089114; cv=none; b=riNBaUqjj1/1dfiQTD4BZaVLdpzjol6iMuu4LP9eTZZl7mW2MLtQY2sytJdUyC77PawZaGtTPf9Ja7nwxkAYPX59MRRkrAFaJZqPSb/ZhXrtKsTAxrRx1zyiQuJVEHqgDdLs5WM+7AZN75E+j1Uo95VMkaTOeYT+ScT7XdXtqeY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756089114; c=relaxed/simple; bh=x+zpPC83ksQG9E0+OFpEShWdLPcZ9M4Kt6xZ7CcaWEc=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=cb+YxdfMpxXbeQKwDEd0tWmBTrQGntHbKQetPgxTkpdV4Tnds1hI3gY7wvCaLws3N1iAGYYFdkgwRj0hCtpsp23YqmNucL2t5o8kbakmXVCIkzAlze0y0+xJ/q3sa9k315aZHW01aOziDlz2DMjenPEUG7i3cT/QiPXwBlDpKJY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=eHislJqk; arc=none smtp.client-ip=209.85.214.179 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="eHislJqk" Received: by mail-pl1-f179.google.com with SMTP id d9443c01a7336-2461864f7f8so31149165ad.2; Sun, 24 Aug 2025 19:31:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1756089112; x=1756693912; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=hEDXk3YI1ppq8XrZvysREbE40c1EqMSzH1Ycau0V0x0=; b=eHislJqkVIKnCPHmStUwdpfdCzOvq+/bNLthoobRtjdMpQgPt5Wd47/+dbRBI2t+o/ NeSZGjI95/dPfDzII823q/YlzdnOHwniAAWNXkuEbsr4boE5gSsqj6gADje+7lzTBP+C oyBYe1str+7qgJbuxjOmN1bezGnsvTFtWAFvPsZbwVjt4GB5Rm93GH03/Rn5s5I7r0p7 uQDrMQ6y4zmzsvlWwI660tX9+/QmOeEkpNGPJxjVwgc0nZxubL8MUWWqZurF3m4bidnE +NnvM1HiYJXVdxNPVjwyPROx8X/9d+2S9cwzuEvjrri81Rutos3rW7vHxHIeUs3VmCF6 RSLQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756089112; x=1756693912; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=hEDXk3YI1ppq8XrZvysREbE40c1EqMSzH1Ycau0V0x0=; b=C3tElyumIBCHBFvn+Zu/8rAM4PUSCBy1BUK495/kW6UUfJdTP97WC8qtC0Hrix1kWa Jwrk2yfsU4aM/74sSpWSigd0A+2jZRqX3mZXsZaZTJuXqZdcCZbELwkePek+dVVlQpQn uDfGe6NdlS/Iarhq1rg5ObBBdbQ/pFoPqQbzRp9IfGSXAVy79g2FQ+7xvOrsCuwNEE0a mSfWiyj218x9ZS3gfN807nk1wC36XN5x8c7C8VK8IKYgam700b54qlTSU/CBGLJUkPt9 JW0Y1q7wws3sKdM2LMRTtC9gS/03uvCiSDRGEaHv7K48c/g+AtczNMvjsWA473jdpTvs cyAw== X-Forwarded-Encrypted: i=1; AJvYcCUxTL33QI9qUvj1pyltvt5tYFkcGJtXfRjla7QUZrsmU/DTxo5yrh2Oz94zNWv6BK+JCtHIXRj7xJjEdA==@vger.kernel.org, AJvYcCV6g9jAQdCto+dLr7kss6df97Kki3cgvomMYxxmVgBg9/AYW9e+O5uOIa6IPn4noqKjiUhJn5DD4wQpmOD5k9Zb@vger.kernel.org, AJvYcCXCXAZ33h10xSMo8+FLYrYNdH6rruMz21vUvOZ2+tF9ueBG75etfcQuzVo1fbZl2bj40zcogSk5X3BQytM7@vger.kernel.org X-Gm-Message-State: AOJu0YxC8iuOHkIk/iYa864UPRyIeoin8scPGOy23YB9650OIAZ+uavy 7vwPXI0keRNF1HfHwXQVLJp+ppN95Haj5iHDFFeqesziK7srhJdYtxvq X-Gm-Gg: ASbGncvbNmFQyqzqr3i578Ttu0DYOm2vDfi2ORyhXW/x55AdcferA9PRhu/2LW6oTsl H284KUZ8GmJGw6fa8Skr/oW00xatFa8DcR+/ELtJVrwW1oZ23ZKkGU2dXcQhZll+88UCjBRtkut gGLyLOgxe5wNZcUaAUvIC4UZTT2DkRxTdcFDBj5TJqLsMsBndCSs96Gh+bKN7vr7nq+KQ/VkvgE 0JolrLqyCmdNCAewChQVGPoqRdKoBebj4Q2nFo+nQ52YFWpoZZLTs/HLI28ScbKmNL0qA9Fp3op 5tydsTR/EzIhIn4mOUWJFr+AJDnxXGJm4D5j9VZVu0vfSwKj29hIsrEkjWWRw6Vw1dg9sroUis+ LbT50lqm2vnpOGvVv1gjGctG19M43Bp72wW5Sthvnwy9xZvWci0Hkbm7kR45m4m5ZBeA0C1ZDwP U= X-Google-Smtp-Source: AGHT+IGvyPlqdqig4mXFsHmtjBV9YF8gxzZSDkAdZlQGY1e3N0SakBpd1QLytsyfS5huP+/UcwJ3nw== X-Received: by 2002:a17:903:238e:b0:240:50ef:2f00 with SMTP id d9443c01a7336-2462eea80fbmr165661135ad.26.1756089112460; Sun, 24 Aug 2025 19:31:52 -0700 (PDT) Received: from localhost.localdomain ([114.242.33.243]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-246687af234sm53905175ad.48.2025.08.24.19.31.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 24 Aug 2025 19:31:51 -0700 (PDT) From: Jinchao Wang To: Andrew Morton , Baoquan He , Yury Norov , Qianqiang Liu , Simona Vetter , Helge Deller , Petr Mladek , Steven Rostedt , John Ogness , Sergey Senozhatsky , Vivek Goyal , Dave Young , Kees Cook , Tony Luck , "Guilherme G. Piccoli" , Thomas Zimmermann , =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= , Shixiong Ou , Jinchao Wang , Zsolt Kajtar , Ingo Molnar , Nam Cao , Jonathan Cameron , Joel Fernandes , Joel Granados , Jason Gunthorpe , Sohil Mehta , Feng Tang , Sravan Kumar Gundu , Douglas Anderson , Thomas Gleixner , Anna Schumaker , "Darrick J. Wong" , Max Kellermann , Yunhui Cui , Tejun Heo , Luo Gengkun , Li Huafei , Thorsten Blum , Yicong Yang , linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, kexec@lists.infradead.org, linux-hardening@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 8/9] panic/printk: replace other_cpu_in_panic() with panic_on_other_cpu() Date: Mon, 25 Aug 2025 10:29:36 +0800 Message-ID: <20250825022947.1596226-9-wangjinchao600@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250825022947.1596226-1-wangjinchao600@gmail.com> References: <20250825022947.1596226-1-wangjinchao600@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The helper other_cpu_in_panic() duplicated logic already provided by panic_on_other_cpu(). Remove other_cpu_in_panic() and update all users to call panic_on_other_cpu() instead. This removes redundant code and makes panic handling consistent. Signed-off-by: Jinchao Wang Reviewed-by: Petr Mladek --- kernel/printk/internal.h | 1 - kernel/printk/nbcon.c | 8 ++++---- kernel/printk/printk.c | 19 ++++--------------- 3 files changed, 8 insertions(+), 20 deletions(-) diff --git a/kernel/printk/internal.h b/kernel/printk/internal.h index ef282001f200..f72bbfa266d6 100644 --- a/kernel/printk/internal.h +++ b/kernel/printk/internal.h @@ -332,7 +332,6 @@ struct printk_message { unsigned long dropped; }; =20 -bool other_cpu_in_panic(void); bool printk_get_next_message(struct printk_message *pmsg, u64 seq, bool is_extended, bool may_supress); =20 diff --git a/kernel/printk/nbcon.c b/kernel/printk/nbcon.c index c6d1a4a747e9..171480135830 100644 --- a/kernel/printk/nbcon.c +++ b/kernel/printk/nbcon.c @@ -255,7 +255,7 @@ static int nbcon_context_try_acquire_direct(struct nbco= n_context *ctxt, * opportunity to perform any necessary cleanup if they were * interrupted by the panic CPU while printing. */ - if (other_cpu_in_panic() && + if (panic_on_other_cpu() && (!is_reacquire || cur->unsafe_takeover)) { return -EPERM; } @@ -310,7 +310,7 @@ static bool nbcon_waiter_matches(struct nbcon_state *cu= r, int expected_prio) * Event #2 implies the new context is PANIC. * Event #3 occurs when panic() has flushed the console. * Event #4 occurs when a non-panic CPU reacquires. - * Event #5 is not possible due to the other_cpu_in_panic() check + * Event #5 is not possible due to the panic_on_other_cpu() check * in nbcon_context_try_acquire_handover(). */ =20 @@ -349,7 +349,7 @@ static int nbcon_context_try_acquire_requested(struct n= bcon_context *ctxt, struct nbcon_state new; =20 /* Note that the caller must still remove the request! */ - if (other_cpu_in_panic()) + if (panic_on_other_cpu()) return -EPERM; =20 /* @@ -447,7 +447,7 @@ static int nbcon_context_try_acquire_handover(struct nb= con_context *ctxt, * nbcon_waiter_matches(). In particular, the assumption that * lower priorities are ignored during panic. */ - if (other_cpu_in_panic()) + if (panic_on_other_cpu()) return -EPERM; =20 /* Handover is not possible on the same CPU. */ diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c index faa8b1f0585b..236f03937107 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -346,17 +346,6 @@ static void __up_console_sem(unsigned long ip) } #define up_console_sem() __up_console_sem(_RET_IP_) =20 -/* - * Return true if a panic is in progress on a remote CPU. - * - * On true, the local CPU should immediately release any printing resources - * that may be needed by the panic CPU. - */ -bool other_cpu_in_panic(void) -{ - return (panic_in_progress() && !panic_on_this_cpu()); -} - /* * This is used for debugging the mess that is the VT code by * keeping track if we have the console semaphore held. It's @@ -2391,7 +2380,7 @@ asmlinkage int vprintk_emit(int facility, int level, * non-panic CPUs are generating any messages, they will be * silently dropped. */ - if (other_cpu_in_panic() && + if (panic_on_other_cpu() && !debug_non_panic_cpus && !panic_triggering_all_cpu_backtrace) return 0; @@ -2827,7 +2816,7 @@ void console_lock(void) might_sleep(); =20 /* On panic, the console_lock must be left to the panic cpu. */ - while (other_cpu_in_panic()) + while (panic_on_other_cpu()) msleep(1000); =20 down_console_sem(); @@ -2847,7 +2836,7 @@ EXPORT_SYMBOL(console_lock); int console_trylock(void) { /* On panic, the console_lock must be left to the panic cpu. */ - if (other_cpu_in_panic()) + if (panic_on_other_cpu()) return 0; if (down_trylock_console_sem()) return 0; @@ -3227,7 +3216,7 @@ static bool console_flush_all(bool do_cond_resched, u= 64 *next_seq, bool *handove any_progress =3D true; =20 /* Allow panic_cpu to take over the consoles safely. */ - if (other_cpu_in_panic()) + if (panic_on_other_cpu()) goto abandon; =20 if (do_cond_resched) --=20 2.43.0 From nobody Fri Oct 3 20:56:11 2025 Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CDED51CEAB2; Mon, 25 Aug 2025 02:32:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756089126; cv=none; b=pR5W4AZ+bs+xcQomQsdwhayXB0/7QkFWJDrBHpodHDbNVf2BwGuPtuQzpA2k2FXlUQ2GtDiVQc81x+6YsXYJU19eY7L7yT1S9NukgXHE/zm1agyv9SSbzcpZdFOORJ1DdZAqPlMjyQ//dyJFeyR2ZC/Pg9XvyzpBEfhUunGO3QA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756089126; c=relaxed/simple; bh=8w+Va6M4jsubK7hSQ4EV51F40ANmqzPbE3g+V8Rdxvc=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=W9UnYAr5S/XB/tSqodzQwyiTob14zM977yf1js12ISBG4hFVHOXAoTO/FxCCZ9pJLoUtHvvIuKyO71YXbpf+UfeEdkPK8Jg0EA4viUTlgpKAI1eDyswtxq28xdODjMEt/B7AJPWaO4QIxNCZ5fZ145E14x+TY4hU0WMUodmzV+k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=N5cZ1oPZ; arc=none smtp.client-ip=209.85.214.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="N5cZ1oPZ" Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-2445824dc27so36350635ad.3; Sun, 24 Aug 2025 19:32:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1756089124; x=1756693924; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=O10Bl4oetUFVZeVcIyFTPuGNIUEAVGF7F9sLfkbwSS4=; b=N5cZ1oPZdztFGINcAHDODig49X5faudKEq/6mYZ39STs/S51OUqWwNnwRSau+FWI1J P8nHCOxbEgX6wOo3pHQOiLLfSOCL6xVRjCbiL00m1u/vhokYGkOxIRN0mQmoT+shhEC2 VgOZb7LwEff+owTsP9Ku8l+iu/XLysQByVSi0x6i6IBw7xtsrceUx/M6psG19KZS2g/C o7A2le41vY88uEuZ0yf6ycer5aRfRINmy1OzztLkgAnHkwfXHn9H7Cu76CB6XgZ/urGh INBv7Vr67Q1Exr88DMCUsa/pxBjTJPWb9ObLyhK4goPO9yzfm+yfzVpb4xs3A9bX4BT4 QQRQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756089124; x=1756693924; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=O10Bl4oetUFVZeVcIyFTPuGNIUEAVGF7F9sLfkbwSS4=; b=t0emYk5H9kwG/Gv+kxbyTm1xiaveiB5YO33mrN1YaGu0stzRQDQY2AmCO9fZiH/fD/ sJ1au5fEeMUFol4bQuibRvJYxxAs4VQiOVYg1S2TQJWqTycmrNCDMZrGnLKEwn7TNpXp 6ZYQuwzHx2lSJ/gT8oN7RsAftPxkYewlNUhYrNNJjL+irHjDS4MPBpImP/N6dkjxSpGq Ubq41UOFv70syaQia70SwgM0zqfbp3JNW7TEBnZI4/2Ijyjpxr1qx4HdykWiCllA8YnR SiR5aEJMeH6bNsPU7LtJfx+JREnUsD4jkPn87IAnJJCOggDY18JBmHdpdgdaK9seE0Ow BRtQ== X-Forwarded-Encrypted: i=1; AJvYcCU2L+7vx6dDVyU9yhNON7T1ky1Fj1+pPBXd3FsBpa8cKsoJ9p7PqS+Ds5Qo044V5G5Rguywu8IDVJWArw==@vger.kernel.org, AJvYcCU8GbPoWSkkjsfyVVqnh0XDE4WbxEGtjXVld45cmSPT4wLfr9ipPH4PJqafH6Dg22CZ+TW2/GU40lYharzNEMBm@vger.kernel.org, AJvYcCXvi1Id32xzH+q6vtbSYysx1gkv18OvJXD7e/MGbsfatlyaQ/S/1bBnhICQZLDNXaLsHp+HcrrMU5wtQZ9j@vger.kernel.org X-Gm-Message-State: AOJu0Yxlsdd69B5HnL9kwznURI/KDJIChd6ueLc9/UQazFeLQxQDM0Fz hURbtM1qgIPJq3rsC7v8Pvk8ubmwjbhWMN2pOcyvxFlzoSgDq79ZRtWt X-Gm-Gg: ASbGncuAdhRz4NctxDiMh6z1yUDSKpXB3CODzvZuv4FGR1/KOVv0dinD7NljqYXvRdc Phd/qL0st1G9Vyaf6osQBFBoUbhckMo4se8cGAJdovqFHTTb0s24nUgzBLPeP1OpVsdqQ//KCcD cKs7oVEAAjKJofwV135zTnFMHDpRnX3qHYevVStPPNQmNuxqHc+wD/cbIfYQ6h783iwNN9TnPmG ONS5DZ8rYA0knt+8s8PuCq4uVLqzRXmTcFz58GU51HPx+nX4qn+/KPhbUdHX5ojkNXSlrwv1jRT DnbtMHJZpGLlnCOeS8sxEN86Jk5vaBaRhYH/PdsOgIA+n6GTsBhfy7OCAnBQWRjD+ZkcWYYfQB5 SuNLbkrW3Mr5pUF/nX/W+llQTLyCXtun0GX/noC3ORFUofAxpaBTI/l8YduotpvJbaHiMNNKwDA Y= X-Google-Smtp-Source: AGHT+IHiK6ZNzGbxD1aVZDdpEIJSJdRVCIVYu6qhCycor6e6tzkhdDgkg9nCBYkly1FiN66XhTD6Bw== X-Received: by 2002:a17:903:38c4:b0:240:5bde:532d with SMTP id d9443c01a7336-2462ef4c8eemr131114705ad.38.1756089123935; Sun, 24 Aug 2025 19:32:03 -0700 (PDT) Received: from localhost.localdomain ([114.242.33.243]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-246687af234sm53905175ad.48.2025.08.24.19.31.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 24 Aug 2025 19:32:03 -0700 (PDT) From: Jinchao Wang To: Andrew Morton , Baoquan He , Yury Norov , Qianqiang Liu , Simona Vetter , Helge Deller , Petr Mladek , Steven Rostedt , John Ogness , Sergey Senozhatsky , Vivek Goyal , Dave Young , Kees Cook , Tony Luck , "Guilherme G. Piccoli" , Thomas Zimmermann , =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= , Shixiong Ou , Jinchao Wang , Zsolt Kajtar , Ingo Molnar , Nam Cao , Jonathan Cameron , Joel Fernandes , Joel Granados , Jason Gunthorpe , Sohil Mehta , Feng Tang , Sravan Kumar Gundu , Douglas Anderson , Thomas Gleixner , Anna Schumaker , "Darrick J. Wong" , Max Kellermann , Yunhui Cui , Tejun Heo , Luo Gengkun , Li Huafei , Thorsten Blum , Yicong Yang , linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, kexec@lists.infradead.org, linux-hardening@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 9/9] watchdog: skip checks when panic is in progress Date: Mon, 25 Aug 2025 10:29:37 +0800 Message-ID: <20250825022947.1596226-10-wangjinchao600@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250825022947.1596226-1-wangjinchao600@gmail.com> References: <20250825022947.1596226-1-wangjinchao600@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" This issue was found when an EFI pstore was configured for kdump logging with the NMI hard lockup detector enabled. The efi-pstore write operation was slow, and with a large number of logs, the pstore dump callback within kmsg_dump() took a long time. This delay triggered the NMI watchdog, leading to a nested panic. The call flow demonstrates how the secondary panic caused an emergency_restart() to be triggered before the initial pstore operation could finish, leading to a failure to dump the logs: real panic() { kmsg_dump() { ... pstore_dump() { start_dump(); ... // long time operation triggers NMI watchdog nmi panic() { ... emergency_restart(); // pstore unfinished } ... finish_dump(); // never reached } } } Both watchdog_buddy_check_hardlockup() and watchdog_overflow_callback() may trigger during a panic. This can lead to recursive panic handling. Add panic_in_progress() checks so watchdog activity is skipped once a panic has begun. This prevents recursive panic and keeps the panic path more reliable. Signed-off-by: Jinchao Wang Reviewed-by: Yury Norov (NVIDIA) --- kernel/watchdog.c | 6 ++++++ kernel/watchdog_perf.c | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/kernel/watchdog.c b/kernel/watchdog.c index 80b56c002c7f..597c0d947c93 100644 --- a/kernel/watchdog.c +++ b/kernel/watchdog.c @@ -740,6 +740,12 @@ static enum hrtimer_restart watchdog_timer_fn(struct h= rtimer *hrtimer) if (!watchdog_enabled) return HRTIMER_NORESTART; =20 + /* + * pass the buddy check if a panic is in process + */ + if (panic_in_progress()) + return HRTIMER_NORESTART; + watchdog_hardlockup_kick(); =20 /* kick the softlockup detector */ diff --git a/kernel/watchdog_perf.c b/kernel/watchdog_perf.c index 9c58f5b4381d..d3ca70e3c256 100644 --- a/kernel/watchdog_perf.c +++ b/kernel/watchdog_perf.c @@ -12,6 +12,7 @@ =20 #define pr_fmt(fmt) "NMI watchdog: " fmt =20 +#include #include #include #include @@ -108,6 +109,9 @@ static void watchdog_overflow_callback(struct perf_even= t *event, /* Ensure the watchdog never gets throttled */ event->hw.interrupts =3D 0; =20 + if (panic_in_progress()) + return; + if (!watchdog_check_timestamp()) return; =20 --=20 2.43.0