From nobody Tue Oct 7 08:15:40 2025 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.16]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6443727D782 for ; Fri, 11 Jul 2025 09:54:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.16 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752227662; cv=none; b=WQ1QOfrW1+FU/ppNhYGCHo+dc+xnzCoxqKW5FEMMYZjOvzVLqkpCrEqB5Mceem7zj1rHkghyerhUHUE/l2AqnVGPxsx2HqnurVNPAxx1WetMEU7dKSBCYwUFNG2oM2dnX399K0TT8WhMdqIKEba8UNHgzTMGo5lE5faZ6ZC9Z8s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752227662; c=relaxed/simple; bh=rDQsJWK/+pi3UfhJ9aofcYax70wDXPUM2p4h0K9ZSrU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HlhFnosVKSKhvz3TYKw807m0CO2DaGxX3MPcf5co02FnaGxa+0oycK0etkDS/NJX/TALmFPRRwrfK8h6LDDjdxCM1WsCeJ6DbVdnZDuUIqA4O2IB4RTMCKE3PZSlrjvpi/kCHG12c9Z8Dro295DgU0fQJ20vflgW0J7k9BBA45M= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com; spf=none smtp.mailfrom=linux.intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=eCWIk2TN; arc=none smtp.client-ip=192.198.163.16 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="eCWIk2TN" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1752227661; x=1783763661; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=rDQsJWK/+pi3UfhJ9aofcYax70wDXPUM2p4h0K9ZSrU=; b=eCWIk2TNgcjaPE8+SN3wM6czfX7sxGdx+jCKKJrqVU9mHmLpfNJm9kle 6a2OPJveWQyJYWSKPtwn0Y22qc5wtKZMtdFSnfpQqwmqZMBLA2wXMnnaG Wa8aDPI+h5CiZ4s7eAH6jun1MRrS0V3fGUVrPYwft0vg+JalZETCp4jtZ 3/emYmyE/d8Qz2KhAVo2Xhzld2IechQPVUNysAw5qeT/1YZrK+hqviXFO QiDg0GYgHXaBCzKfrEoN0YhvL7JXlSU0qxzAXRWrrbvR6BIommWe/BbGD GjmmWzkpm5QyG9pLFFEtHDDaox+RIzBMHGUHDEH7g++GrVTCE7ztFQiBI A==; X-CSE-ConnectionGUID: yvztUHouS+WfUsrq+eG8AQ== X-CSE-MsgGUID: Uc3Kx5P8SnOrCK77Oiw1sQ== X-IronPort-AV: E=McAfee;i="6800,10657,11490"; a="42153915" X-IronPort-AV: E=Sophos;i="6.16,303,1744095600"; d="scan'208";a="42153915" Received: from orviesa010.jf.intel.com ([10.64.159.150]) by fmvoesa110.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Jul 2025 02:54:20 -0700 X-CSE-ConnectionGUID: qias/e+3SAyLQPVW34oXUw== X-CSE-MsgGUID: KTtIVIdpSHqUL1zxma5a2Q== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.16,303,1744095600"; d="scan'208";a="155746985" Received: from black.fi.intel.com ([10.237.72.28]) by orviesa010.jf.intel.com with ESMTP; 11 Jul 2025 02:54:19 -0700 Received: by black.fi.intel.com (Postfix, from userid 1003) id 450BA108; Fri, 11 Jul 2025 12:54:17 +0300 (EEST) From: Andy Shevchenko To: Feng Tang , Andy Shevchenko , linux-kernel@vger.kernel.org Cc: Andrew Morton , Nathan Chancellor Subject: [PATCH v1 1/7] Revert "panic: fix compilation error (`make W=1`)" Date: Fri, 11 Jul 2025 12:51:07 +0300 Message-ID: <20250711095413.1472448-2-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250711095413.1472448-1-andriy.shevchenko@linux.intel.com> References: <20250711095413.1472448-1-andriy.shevchenko@linux.intel.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 reverts commit d66eaf0a73fbe3dfbe95c473ef12c68d582e5ce2. Signed-off-by: Andy Shevchenko --- lib/sys_info.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/sys_info.c b/lib/sys_info.c index 779f8725b194..46d6f4f1ad2a 100644 --- a/lib/sys_info.c +++ b/lib/sys_info.c @@ -49,11 +49,13 @@ unsigned long sys_info_parse_param(char *str) =20 #ifdef CONFIG_SYSCTL =20 +static const char sys_info_avail[] =3D "tasks,mem,timers,locks,ftrace,all_= bt,blocked_tasks"; + int sysctl_sys_info_handler(const struct ctl_table *ro_table, int write, void *buffer, size_t *lenp, loff_t *ppos) { - char names[sizeof("tasks,mem,timers,locks,ftrace,all_bt,blocked_tasks") += 1]; + char names[sizeof(sys_info_avail) + 1]; struct ctl_table table; unsigned long *si_bits_global; =20 --=20 2.47.2 From nobody Tue Oct 7 08:15:40 2025 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B53BB27EFF7 for ; Fri, 11 Jul 2025 09:54:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.12 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752227665; cv=none; b=LVDIuZtd8x40qrXTUffbRDmwh1mZgcNTaAw7/M+md3iNmJdLW9Pxa8X6yaQMGrv8v5oZlPueVfgJLb05+AoV4iMOg1D4zgH1xy2aGrET4vG0fRMlzfDIsFXrlanAtK2easNN0GNx0xopYcLjHyt504hehyg5oz626BROLyfwq3c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752227665; c=relaxed/simple; bh=jggy00wSu6GI7ekpzyXARHk8GAzocK9Cbbq+5a08ySY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=BuyPDboGfBZm3hX4em/Bu3G0sdrawCg35D+aKr/HLfnFqB4+rOUuM5M8TnR2cDN9dUxCAxasnH9Zwli9hIGhQlVmFmQ1A8t00n8MxVrmsJaf3yTO3ZcnvFmIL0dhFLUjVCXdeFZ7aqE10Xe8NSg1UtDENnNlWJUtAU1paAF00zA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com; spf=none smtp.mailfrom=linux.intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=h9/dJbxx; arc=none smtp.client-ip=192.198.163.12 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="h9/dJbxx" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1752227664; x=1783763664; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=jggy00wSu6GI7ekpzyXARHk8GAzocK9Cbbq+5a08ySY=; b=h9/dJbxxvmiqxPzAlAQS/ehljMHKOXGPJSjMPHaPVpEV+rq4oDCt8GEq PyuHP2BfKCnFiL/K61/NI1oEulkuATi89MHs9ATpI92Fdk+wK2Jqw0dXu 9+2BBw47SVWy/N2Pp4XNtpu5b64+ioS68fXO/Jt2P9kLd+U60HzLarODa NR3+63FhIm+1Fh8xP0LftZOxHJVlVdi+nxKCjhvBAhTiszNnuk5ftPItF Bbda69Hja2cy1azG2L+GMRuJVw5W0F+Wnthw95omuJwqnxenkDYQ2IBkx tpB52KYGhUdJ9wcWmAUFgb8VeaO4Hrlc49zi8XP0VvAp+ua3dSKJ1thwJ A==; X-CSE-ConnectionGUID: oXX0uenZTUqLWOWEwSPFfQ== X-CSE-MsgGUID: KQy0YeDnQrC4ZAbOFuNrCQ== X-IronPort-AV: E=McAfee;i="6800,10657,11490"; a="58332680" X-IronPort-AV: E=Sophos;i="6.16,303,1744095600"; d="scan'208";a="58332680" Received: from fmviesa009.fm.intel.com ([10.60.135.149]) by fmvoesa106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Jul 2025 02:54:20 -0700 X-CSE-ConnectionGUID: bRpjDiZlR3itHFnIDxixmA== X-CSE-MsgGUID: 0bfJgWzdS/iTYryCZJx0Uw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.16,303,1744095600"; d="scan'208";a="156669846" Received: from black.fi.intel.com ([10.237.72.28]) by fmviesa009.fm.intel.com with ESMTP; 11 Jul 2025 02:54:18 -0700 Received: by black.fi.intel.com (Postfix, from userid 1003) id 52147377; Fri, 11 Jul 2025 12:54:17 +0300 (EEST) From: Andy Shevchenko To: Feng Tang , Andy Shevchenko , linux-kernel@vger.kernel.org Cc: Andrew Morton , Nathan Chancellor Subject: [PATCH v1 2/7] panic: sys_info: Align constant definition names with parameters Date: Fri, 11 Jul 2025 12:51:08 +0300 Message-ID: <20250711095413.1472448-3-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250711095413.1472448-1-andriy.shevchenko@linux.intel.com> References: <20250711095413.1472448-1-andriy.shevchenko@linux.intel.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" Align constant definition names with parameters to make it easier to map. It's also better to maintain and extend the names while keeping their uniqueness. Signed-off-by: Andy Shevchenko --- include/linux/sys_info.h | 2 +- kernel/panic.c | 2 +- lib/sys_info.c | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/include/linux/sys_info.h b/include/linux/sys_info.h index 89d77dc4f2ed..a5bc3ea3d44b 100644 --- a/include/linux/sys_info.h +++ b/include/linux/sys_info.h @@ -14,7 +14,7 @@ #define SYS_INFO_LOCKS 0x00000008 #define SYS_INFO_FTRACE 0x00000010 #define SYS_INFO_PANIC_CONSOLE_REPLAY 0x00000020 -#define SYS_INFO_ALL_CPU_BT 0x00000040 +#define SYS_INFO_ALL_BT 0x00000040 #define SYS_INFO_BLOCKED_TASKS 0x00000080 =20 void sys_info(unsigned long si_mask); diff --git a/kernel/panic.c b/kernel/panic.c index ccee04378d2e..1567f04a58fc 100644 --- a/kernel/panic.c +++ b/kernel/panic.c @@ -334,7 +334,7 @@ void check_panic_on_warn(const char *origin) */ static void panic_other_cpus_shutdown(bool crash_kexec) { - if (panic_print & SYS_INFO_ALL_CPU_BT) { + if (panic_print & SYS_INFO_ALL_BT) { /* Temporary allow non-panic CPUs to write their backtraces. */ panic_triggering_all_cpu_backtrace =3D true; trigger_all_cpu_backtrace(); diff --git a/lib/sys_info.c b/lib/sys_info.c index 46d6f4f1ad2a..44bc6d96b702 100644 --- a/lib/sys_info.c +++ b/lib/sys_info.c @@ -23,7 +23,7 @@ static const struct sys_info_name si_names[] =3D { { SYS_INFO_TIMERS, "timers" }, { SYS_INFO_LOCKS, "locks" }, { SYS_INFO_FTRACE, "ftrace" }, - { SYS_INFO_ALL_CPU_BT, "all_bt" }, + { SYS_INFO_ALL_BT, "all_bt" }, { SYS_INFO_BLOCKED_TASKS, "blocked_tasks" }, }; =20 @@ -114,7 +114,7 @@ void sys_info(unsigned long si_mask) if (si_mask & SYS_INFO_FTRACE) ftrace_dump(DUMP_ALL); =20 - if (si_mask & SYS_INFO_ALL_CPU_BT) + if (si_mask & SYS_INFO_ALL_BT) trigger_all_cpu_backtrace(); =20 if (si_mask & SYS_INFO_BLOCKED_TASKS) --=20 2.47.2 From nobody Tue Oct 7 08:15:40 2025 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2965027E07B for ; Fri, 11 Jul 2025 09:54:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.12 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752227663; cv=none; b=IIIjGaWeXdYvw6dmI2i7gs1yWmh8ZINLZEi4qKzr4KTkqo0qk1focYY54YJfaaA1Iqff63UG5KFBGGC+Y32UXbPV//E4Owg1UCW+misyEZv5G8N56FGP9h6pAsCGPGyqSEyomq49NwCpetrmrW4tfica22vZTwnQPLNsiWntUA8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752227663; c=relaxed/simple; bh=9gCnuVhXd7LCipm/gA67/wb0kXZ/5WMqqt0mQZG9tbI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=pXmUEYNOsS+D+B+B0ffSAA+IOFkNhDBMs4f7LYz9Ks6y0tVy4DyApqir84R0bRgjNhA0/cqbfohVVUpt/uhn397nvISSY6vjPXI8jQADmII1Sllzb5935VJ9S+m0il43rFRRv1s3c5Tx4Snw1tFmxWAWpBJ/N2zZnT4QmYU3J1w= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com; spf=none smtp.mailfrom=linux.intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=EmT6PVkI; arc=none smtp.client-ip=192.198.163.12 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="EmT6PVkI" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1752227662; x=1783763662; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=9gCnuVhXd7LCipm/gA67/wb0kXZ/5WMqqt0mQZG9tbI=; b=EmT6PVkIedWoJsjtmoHjkpoexTRHwlqrxb5+bd/GJOt1m5CPRWTeQOhe 4SikvWmHy2IZMW2ZKUHU0NVJ94WwuTPPPUxHXmXeuPdfYks1cE3ajwtNY Xh3eHtsxPNZsDLPpb/wQ9WoTuDExi7oGH66UcFT8IvsvgUn2FVaFqaFoo pCkSclo3MC6oLebks1vKm8YDs40RbAYpbGlbJNezj0fVn8NKzbCbV0VS8 ZUobbF5fX41Y9BElOPzVOW6L+zCZNl/N4EKrXl5uTN4vXuS+QLDdKN46x YuLc1FkvGWJy3IqmVed1wg1U8z+5GW/t3gpayN42lRNQSGkVylbfPuisw Q==; X-CSE-ConnectionGUID: ndz3V8K5TIGDkLavUBRcRA== X-CSE-MsgGUID: 73WzfG7sQZ29nyM6MNehTg== X-IronPort-AV: E=McAfee;i="6800,10657,11490"; a="58332684" X-IronPort-AV: E=Sophos;i="6.16,303,1744095600"; d="scan'208";a="58332684" Received: from fmviesa009.fm.intel.com ([10.60.135.149]) by fmvoesa106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Jul 2025 02:54:20 -0700 X-CSE-ConnectionGUID: PHZTSFSnQN6Xrf56eAhWmQ== X-CSE-MsgGUID: Lo35J46GT7a/m3A2gnFA8Q== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.16,303,1744095600"; d="scan'208";a="156669848" Received: from black.fi.intel.com ([10.237.72.28]) by fmviesa009.fm.intel.com with ESMTP; 11 Jul 2025 02:54:18 -0700 Received: by black.fi.intel.com (Postfix, from userid 1003) id 5F689445; Fri, 11 Jul 2025 12:54:17 +0300 (EEST) From: Andy Shevchenko To: Feng Tang , Andy Shevchenko , linux-kernel@vger.kernel.org Cc: Andrew Morton , Nathan Chancellor Subject: [PATCH v1 3/7] panic: sys_info: Capture si_bits_global before iterating over it Date: Fri, 11 Jul 2025 12:51:09 +0300 Message-ID: <20250711095413.1472448-4-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250711095413.1472448-1-andriy.shevchenko@linux.intel.com> References: <20250711095413.1472448-1-andriy.shevchenko@linux.intel.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 for-loop might re-read the content of the memory the si_bits_global points to on each iteration. Instead, just capture it for the sake of consistency and use that instead. Signed-off-by: Andy Shevchenko --- lib/sys_info.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/sys_info.c b/lib/sys_info.c index 44bc6d96b702..5d98560f3f53 100644 --- a/lib/sys_info.c +++ b/lib/sys_info.c @@ -58,11 +58,11 @@ int sysctl_sys_info_handler(const struct ctl_table *ro_= table, int write, char names[sizeof(sys_info_avail) + 1]; struct ctl_table table; unsigned long *si_bits_global; + unsigned long si_bits; =20 si_bits_global =3D ro_table->data; =20 if (write) { - unsigned long si_bits; int ret; =20 table =3D *ro_table; @@ -81,8 +81,11 @@ int sysctl_sys_info_handler(const struct ctl_table *ro_t= able, int write, char *delim =3D ""; int i, len =3D 0; =20 + /* The access to the global value is not synchronized. */ + si_bits =3D READ_ONCE(*si_bits_global); + for (i =3D 0; i < ARRAY_SIZE(si_names); i++) { - if (*si_bits_global & si_names[i].bit) { + if (si_bits & si_names[i].bit) { len +=3D scnprintf(names + len, sizeof(names) - len, "%s%s", delim, si_names[i].name); delim =3D ","; --=20 2.47.2 From nobody Tue Oct 7 08:15:40 2025 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9D47527E1D5 for ; Fri, 11 Jul 2025 09:54:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.12 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752227664; cv=none; b=i6YOjornKQoLqjYYNin8Q8y/h5HjVQ16ubDFgI8FdY6hn62kNX+TP959EDhFX4+ZVnzERpzwMGC+ahFjD2UpL9p9Fpf3tzwWtL/C9q65Jp8FnXDDQ2HfK5G6oNAAJx+iWOceLybPZcz4596nZQGZbLOG0Nt2avOzOVym8C0nu6U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752227664; c=relaxed/simple; bh=lo3PrLGp4mRxoe8qcwAaj0qOk19581q3yRYynl3U1VY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=IJlIWkugNqgmdbvyULeGYDOjApgGZeCHCakX5aTy4vWkHROclu4yjDmjzK/WjMfzta+wRvjvuoH3H4N1GB9m3xWhEsjp80KQo+WAqhG85TFZ+AmxCE6hZ2mSX2zcUJIYn2AjTo07DTayS1IZtSjoVC5zWaM2wy2iD6S0NLrjUZU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com; spf=none smtp.mailfrom=linux.intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=FTQ8R+7s; arc=none smtp.client-ip=192.198.163.12 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="FTQ8R+7s" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1752227663; x=1783763663; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=lo3PrLGp4mRxoe8qcwAaj0qOk19581q3yRYynl3U1VY=; b=FTQ8R+7s+mijSsDAua/pRtC+nC7sC8dMOwKjdXgS3fYJVdm5XRHl7LEy kcItpzGrX7K5qs7ZYZgHVSYDA1wegpLhOl25sF30S9+3R4Wudl9qo8yBs Z5Ei4PDR56RdShzYR4SkY8nCVtJOkYVh0hACEAlaerWZyG2uF3YMy6/OU rZAbTJ8ECF9bxY+JpD04XZI4a7+/zOuVEyi9sdvjLstovy8bP4QUTqdpH OgfYlnwR/9ly35od9Cw0/j2LYfmeeUTx6rZi+iC13SKLe4etXbDoM4S64 x8GBaFQLtLrsNksxbp1jc6opYvXQ96c9oiZf+EU6zXLZYyo6cCjS/3KmS g==; X-CSE-ConnectionGUID: tHzq7u/GRP2NmafCX13HSQ== X-CSE-MsgGUID: p4PQaExnRcyoMyCxtaPI3Q== X-IronPort-AV: E=McAfee;i="6800,10657,11490"; a="58332692" X-IronPort-AV: E=Sophos;i="6.16,303,1744095600"; d="scan'208";a="58332692" Received: from fmviesa009.fm.intel.com ([10.60.135.149]) by fmvoesa106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Jul 2025 02:54:20 -0700 X-CSE-ConnectionGUID: fl65E6eSRJmdkM9IcM/Xzg== X-CSE-MsgGUID: Gbw+C65kR6mXwDnjE89Rxw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.16,303,1744095600"; d="scan'208";a="156669847" Received: from black.fi.intel.com ([10.237.72.28]) by fmviesa009.fm.intel.com with ESMTP; 11 Jul 2025 02:54:18 -0700 Received: by black.fi.intel.com (Postfix, from userid 1003) id 651F81BF; Fri, 11 Jul 2025 12:54:17 +0300 (EEST) From: Andy Shevchenko To: Feng Tang , Andy Shevchenko , linux-kernel@vger.kernel.org Cc: Andrew Morton , Nathan Chancellor Subject: [PATCH v1 4/7] panic: sys_info: Replace struct sys_info_name with plain array of strings Date: Fri, 11 Jul 2025 12:51:10 +0300 Message-ID: <20250711095413.1472448-5-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250711095413.1472448-1-andriy.shevchenko@linux.intel.com> References: <20250711095413.1472448-1-andriy.shevchenko@linux.intel.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" There is no need to keep a custom structure just for the need of a plain array of strings. Replace struct sys_info_name with plain array of strings. With that done, simplify the code, in particular, naturally use for_each_set_bit() when iterating over si_bits_global bitmap. Signed-off-by: Andy Shevchenko --- lib/sys_info.c | 47 ++++++++++++++++++++--------------------------- 1 file changed, 20 insertions(+), 27 deletions(-) diff --git a/lib/sys_info.c b/lib/sys_info.c index 5d98560f3f53..7965984c6d67 100644 --- a/lib/sys_info.c +++ b/lib/sys_info.c @@ -1,30 +1,28 @@ // SPDX-License-Identifier: GPL-2.0-only -#include +#include #include +#include #include #include -#include #include +#include +#include +#include =20 #include =20 -struct sys_info_name { - unsigned long bit; - const char *name; -}; - /* * When 'si_names' gets updated, please make sure the 'sys_info_avail' * below is updated accordingly. */ -static const struct sys_info_name si_names[] =3D { - { SYS_INFO_TASKS, "tasks" }, - { SYS_INFO_MEM, "mem" }, - { SYS_INFO_TIMERS, "timers" }, - { SYS_INFO_LOCKS, "locks" }, - { SYS_INFO_FTRACE, "ftrace" }, - { SYS_INFO_ALL_BT, "all_bt" }, - { SYS_INFO_BLOCKED_TASKS, "blocked_tasks" }, +static const char * const si_names[] =3D { + [ilog2(SYS_INFO_TASKS)] =3D "tasks", + [ilog2(SYS_INFO_MEM)] =3D "mem", + [ilog2(SYS_INFO_TIMERS)] =3D "timers", + [ilog2(SYS_INFO_LOCKS)] =3D "locks", + [ilog2(SYS_INFO_FTRACE)] =3D "ftrace", + [ilog2(SYS_INFO_ALL_BT)] =3D "all_bt", + [ilog2(SYS_INFO_BLOCKED_TASKS)] =3D "blocked_tasks", }; =20 /* Expecting string like "xxx_sys_info=3Dtasks,mem,timers,locks,ftrace,...= " */ @@ -36,12 +34,9 @@ unsigned long sys_info_parse_param(char *str) =20 s =3D str; while ((name =3D strsep(&s, ",")) && *name) { - for (i =3D 0; i < ARRAY_SIZE(si_names); i++) { - if (!strcmp(name, si_names[i].name)) { - si_bits |=3D si_names[i].bit; - break; - } - } + i =3D match_string(si_names, ARRAY_SIZE(si_names), name); + if (i >=3D 0) + __set_bit(i, &si_bits); } =20 return si_bits; @@ -84,12 +79,10 @@ int sysctl_sys_info_handler(const struct ctl_table *ro_= table, int write, /* The access to the global value is not synchronized. */ si_bits =3D READ_ONCE(*si_bits_global); =20 - for (i =3D 0; i < ARRAY_SIZE(si_names); i++) { - if (si_bits & si_names[i].bit) { - len +=3D scnprintf(names + len, sizeof(names) - len, - "%s%s", delim, si_names[i].name); - delim =3D ","; - } + for_each_set_bit(i, &si_bits, ARRAY_SIZE(si_names)) { + len +=3D scnprintf(names + len, sizeof(names) - len, + "%s%s", delim, si_names[i]); + delim =3D ","; } =20 table =3D *ro_table; --=20 2.47.2 From nobody Tue Oct 7 08:15:40 2025 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 38F6827F4CA for ; Fri, 11 Jul 2025 09:54:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.12 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752227665; cv=none; b=qZR+UJ1NPp4lt/6fsXAsT+7Ymn+1V8vSGDTIpTX4C96KFEsLSUBrsTVJwMkTtvcmqlkwcIGTHJn+syyr3bnqO2KvUCr2Qp833J79PAtHjZwrGDVE+HATDgmjfAegbaoP/V4kzwKKbERdYDC42nhPzNajOfGdBm8auBAxe1ole8A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752227665; c=relaxed/simple; bh=YadJ8hXt+b1YwyLCgZvgMxZb8stWI+VVpDM/3amT+Vk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=VwYG8QzbfNYGgJKMHsORqOP03b5YcSCtD6mupaeae76EtcRvmgvCztRBwERcT8lOKhiJcf7QenuDIbUO3uMMrJj7wmROYx7BHvvewueNBFDmQl8OoMZjmgEFqk0WaUT+CcZ8/J8liJvy967XbLoUkVYmcNdRT4iOi8s3TThnlA4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com; spf=none smtp.mailfrom=linux.intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=a5XB21Co; arc=none smtp.client-ip=192.198.163.12 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="a5XB21Co" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1752227664; x=1783763664; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=YadJ8hXt+b1YwyLCgZvgMxZb8stWI+VVpDM/3amT+Vk=; b=a5XB21CouTpZHNPrFpNVVJvTxonldD4DpfzIbmnW47ijBPbnyv4q6ZFp wdTZMDEZMk2iKZKeEdiea8VcixvzMqxSoSs3TSkeuu9PDNfK/dMuboSIt 0fKgy5CMK6mjj4HK3ly4lI36jBau4XaO3B+0j3ZD94FU4T98/b4TmsoZ1 jMr5rGePPK/lp0wpCdEpY4NsXZmCfFJUU8IALNSU8cJcZrkgXI+5+NW1M meSF4wsVA8ItTJy9E2fIu2Z+VV0n/Oiz9hf8p9M1CWuoFLLNmWd07KwCX oKWzHpqDaUK+bLAyLVlwp2IfDUYEQ3tQaJRupZj7sYFsEZI5Q0fxKbw3S g==; X-CSE-ConnectionGUID: /pkVVpS/To6sdpAlsV0byA== X-CSE-MsgGUID: JyoXooibSv+fQnvv3LaLjw== X-IronPort-AV: E=McAfee;i="6800,10657,11490"; a="58332701" X-IronPort-AV: E=Sophos;i="6.16,303,1744095600"; d="scan'208";a="58332701" Received: from fmviesa009.fm.intel.com ([10.60.135.149]) by fmvoesa106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Jul 2025 02:54:23 -0700 X-CSE-ConnectionGUID: cnyk1UROTLaTYPTLuGSdrg== X-CSE-MsgGUID: N2u+EAeGTVy+RDzuxK7DEA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.16,303,1744095600"; d="scan'208";a="156669854" Received: from black.fi.intel.com ([10.237.72.28]) by fmviesa009.fm.intel.com with ESMTP; 11 Jul 2025 02:54:21 -0700 Received: by black.fi.intel.com (Postfix, from userid 1003) id 74CDB58E; Fri, 11 Jul 2025 12:54:17 +0300 (EEST) From: Andy Shevchenko To: Feng Tang , Andy Shevchenko , linux-kernel@vger.kernel.org Cc: Andrew Morton , Nathan Chancellor Subject: [PATCH v1 5/7] panic: sys_info: Fix compilation error (`make W=1`) Date: Fri, 11 Jul 2025 12:51:11 +0300 Message-ID: <20250711095413.1472448-6-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250711095413.1472448-1-andriy.shevchenko@linux.intel.com> References: <20250711095413.1472448-1-andriy.shevchenko@linux.intel.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" Compiler is not happy about the recently added code: lib/sys_info.c:52:19: error: variable 'sys_info_avail' is not needed and wi= ll not be emitted [-Werror,-Wunneeded-internal-declaration] 52 | static const char sys_info_avail[] =3D "tasks,mem,timers,locks,ftra= ce,all_bt,blocked_tasks"; | ^~~~~~~~~~~~~~ Fix it by moving the local variable from stack to a heap. Signed-off-by: Andy Shevchenko --- lib/sys_info.c | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/lib/sys_info.c b/lib/sys_info.c index 7965984c6d67..08de4c5fcfca 100644 --- a/lib/sys_info.c +++ b/lib/sys_info.c @@ -1,5 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-only #include +#include #include #include #include @@ -11,10 +12,6 @@ =20 #include =20 -/* - * When 'si_names' gets updated, please make sure the 'sys_info_avail' - * below is updated accordingly. - */ static const char * const si_names[] =3D { [ilog2(SYS_INFO_TASKS)] =3D "tasks", [ilog2(SYS_INFO_MEM)] =3D "mem", @@ -43,26 +40,32 @@ unsigned long sys_info_parse_param(char *str) } =20 #ifdef CONFIG_SYSCTL - -static const char sys_info_avail[] =3D "tasks,mem,timers,locks,ftrace,all_= bt,blocked_tasks"; - int sysctl_sys_info_handler(const struct ctl_table *ro_table, int write, void *buffer, size_t *lenp, loff_t *ppos) { - char names[sizeof(sys_info_avail) + 1]; struct ctl_table table; unsigned long *si_bits_global; unsigned long si_bits; + unsigned int i; + size_t maxlen; =20 si_bits_global =3D ro_table->data; =20 + maxlen =3D 0; + for (i =3D 0; i < ARRAY_SIZE(si_names); i++) + maxlen +=3D strlen(si_names[i]) + 1; + + char *names __free(kfree) =3D kmalloc(maxlen, GFP_KERNEL); + if (!names) + return -ENOMEM; + if (write) { int ret; =20 table =3D *ro_table; table.data =3D names; - table.maxlen =3D sizeof(names); + table.maxlen =3D maxlen; ret =3D proc_dostring(&table, write, buffer, lenp, ppos); if (ret) return ret; @@ -73,21 +76,21 @@ int sysctl_sys_info_handler(const struct ctl_table *ro_= table, int write, return 0; } else { /* for 'read' operation */ + unsigned int len =3D 0; char *delim =3D ""; - int i, len =3D 0; =20 /* The access to the global value is not synchronized. */ si_bits =3D READ_ONCE(*si_bits_global); =20 for_each_set_bit(i, &si_bits, ARRAY_SIZE(si_names)) { - len +=3D scnprintf(names + len, sizeof(names) - len, + len +=3D scnprintf(names + len, maxlen - len, "%s%s", delim, si_names[i]); delim =3D ","; } =20 table =3D *ro_table; table.data =3D names; - table.maxlen =3D sizeof(names); + table.maxlen =3D maxlen; return proc_dostring(&table, write, buffer, lenp, ppos); } } --=20 2.47.2 From nobody Tue Oct 7 08:15:40 2025 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.16]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0550D27E7E1 for ; Fri, 11 Jul 2025 09:54:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.16 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752227664; cv=none; b=hkAZwREkLI4WI9YYA0voxwhYpFBcP0JnYHFe4cvLKwe3o0XkfBiI/HSoUy8lpG2gwV+/gf6qG+YY6QefqGrumXfaQSXeHwUONFzcNkHoslvT4x7/ehCdDWlqtSW7viF/modP7sF7INl3kWDXfwVm/ORFkdkbVt/N4GGMTh0loew= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752227664; c=relaxed/simple; bh=5yyMHYSOnxlRtD1oDiidpGURuUrue6yvRXZ3UYzWOgM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=fUtSZwWq7FJwdr4YsXzQc8+kmMYrZNtSf8OVaNKZ7533Muj+B2aoEkY1C1oitnfTftx2naFhbnqiVHtWLhLylSG7TO+V3R4f6BW0dY2Bx6/oFhzH6LG+BrGvXVcQ4SMQPXiEAbeJ6D5Vu7H6hmsbYaT/BDVCMeGN/GNO08kw0vU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com; spf=none smtp.mailfrom=linux.intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=IlMybKh1; arc=none smtp.client-ip=192.198.163.16 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="IlMybKh1" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1752227663; x=1783763663; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=5yyMHYSOnxlRtD1oDiidpGURuUrue6yvRXZ3UYzWOgM=; b=IlMybKh11pck/DuXROeRRWicavCRjerHci4EMkX8JvUSs22sioL15Ay3 y+LGvX4frqKkeXDWNgM0+kFsmuzewBCFqrlLkJqaixJkC3LENQlcVinh4 OkA1m6LPKV/TJJp67k4mBJX1DCTDfldso46YCoTVnVEGZGXrLyTuA2HF9 X/0iiuveOJ/Ucanp3j9PgoEO7E+OEaO4DnM9+ANDICwyKTvhems9yqGVK veTE7oiMjOCSi7NbMQJ58WgDjjPhGWNIgitj8kZulvApGK66ZZqDSp71z RbokhiccZRkJRGFAIXw/xmWqr63aXnFmKz3YrMbnSrwj7G2KQ8ijBluOq Q==; X-CSE-ConnectionGUID: zqMkDeefRZOHC1+cSmqQZA== X-CSE-MsgGUID: YDTocYfST/OjBhtnEqPRww== X-IronPort-AV: E=McAfee;i="6800,10657,11490"; a="42153919" X-IronPort-AV: E=Sophos;i="6.16,303,1744095600"; d="scan'208";a="42153919" Received: from orviesa010.jf.intel.com ([10.64.159.150]) by fmvoesa110.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Jul 2025 02:54:22 -0700 X-CSE-ConnectionGUID: IStz57GIRFOOB0lGPYEr2A== X-CSE-MsgGUID: JUQUAlleQoKHeS7oOgpnnA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.16,303,1744095600"; d="scan'208";a="155746992" Received: from black.fi.intel.com ([10.237.72.28]) by orviesa010.jf.intel.com with ESMTP; 11 Jul 2025 02:54:22 -0700 Received: by black.fi.intel.com (Postfix, from userid 1003) id 7A6AC4E5; Fri, 11 Jul 2025 12:54:17 +0300 (EEST) From: Andy Shevchenko To: Feng Tang , Andy Shevchenko , linux-kernel@vger.kernel.org Cc: Andrew Morton , Nathan Chancellor Subject: [PATCH v1 6/7] panic: sys_info: Deduplicate local variable 'table; assignments Date: Fri, 11 Jul 2025 12:51:12 +0300 Message-ID: <20250711095413.1472448-7-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250711095413.1472448-1-andriy.shevchenko@linux.intel.com> References: <20250711095413.1472448-1-andriy.shevchenko@linux.intel.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 both handlers use the local 'table' variable and assign the same data to it, deduplicate that. Signed-off-by: Andy Shevchenko --- lib/sys_info.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/lib/sys_info.c b/lib/sys_info.c index 08de4c5fcfca..7483b6e9b30b 100644 --- a/lib/sys_info.c +++ b/lib/sys_info.c @@ -60,12 +60,13 @@ int sysctl_sys_info_handler(const struct ctl_table *ro_= table, int write, if (!names) return -ENOMEM; =20 + table =3D *ro_table; + table.data =3D names; + table.maxlen =3D maxlen; + if (write) { int ret; =20 - table =3D *ro_table; - table.data =3D names; - table.maxlen =3D maxlen; ret =3D proc_dostring(&table, write, buffer, lenp, ppos); if (ret) return ret; @@ -88,9 +89,6 @@ int sysctl_sys_info_handler(const struct ctl_table *ro_ta= ble, int write, delim =3D ","; } =20 - table =3D *ro_table; - table.data =3D names; - table.maxlen =3D maxlen; return proc_dostring(&table, write, buffer, lenp, ppos); } } --=20 2.47.2 From nobody Tue Oct 7 08:15:40 2025 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3408727F19B for ; Fri, 11 Jul 2025 09:54:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.12 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752227665; cv=none; b=VnGAP+u+eV97TlPABk/qt7Dv0E2ikvrTyUupmj6dcmGMedCOJs+YUcyqA05K8v435MIFE7yb7IqIPW3wTVnSgmk/KKGRr6Plt+1c03JQ9hNva4+ADm50eUL+e6aHkVGJsyUMUbzmpyzPYYdpImyusyyHmkGg+wgtgxA1jiisad0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752227665; c=relaxed/simple; bh=sPXQ28L2m6IBjCYr20bqC2fecFsA72jS43qusK/x+zc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=cSUgNjgLnZHr8dtCIsNh92hmJTU1EiZ4sKUClD5jXhcsP9ceHWFyylfdn3yL/BGrcmAMW1bUUav4n8H6WTflxxeYrBi6qg1pgytUkEeLNTAhEVu0aV+f8HQSUpoFRCqvDzl/0AVrr+DOAF/97cfDwqAIUTN3Ez5yHT3r0xk8d/Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com; spf=none smtp.mailfrom=linux.intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=YrJMENuc; arc=none smtp.client-ip=192.198.163.12 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="YrJMENuc" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1752227664; x=1783763664; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=sPXQ28L2m6IBjCYr20bqC2fecFsA72jS43qusK/x+zc=; b=YrJMENucpY8g9zPrAOFe1sqcBXl7qk7v2ak9pFG/SPiM1kWuAC4AP7s8 nndgvXoawjMHXlEu/G9n4sh7/Q1k+W+X5Rr71LwWvsctzlSmjjmqysGbJ Li6QMXeu1xzWBbUZxKvLhDbVby+uOcp7SNzS3SXVFrpTyUlgCgH+7W088 dGnqgfuX0Dz9h2W/slLu4oaolRgwVrwCzIX6vNSWAePtdVWuF84DFD+Gz XXNGdfE9uLYx3fJHkSqtxECEPtunePeIyjny4kXvkD29vUG8YOXdYUzBn BfQV5FU4U3yiunqiTd3INoY2mnoN/NRIIrqKqByiJJXOOu7Ac7Eyg4ega w==; X-CSE-ConnectionGUID: 2p3BNPD6RUyQOHvAmrU6DQ== X-CSE-MsgGUID: s6Q4NELzQQi1u6kMg3SnOw== X-IronPort-AV: E=McAfee;i="6800,10657,11490"; a="58332697" X-IronPort-AV: E=Sophos;i="6.16,303,1744095600"; d="scan'208";a="58332697" Received: from fmviesa009.fm.intel.com ([10.60.135.149]) by fmvoesa106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Jul 2025 02:54:23 -0700 X-CSE-ConnectionGUID: hzDtAHmTSeeQcwXJvgxlNA== X-CSE-MsgGUID: R8+Ov2tlRH+OmZyTMPJhXQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.16,303,1744095600"; d="scan'208";a="156669855" Received: from black.fi.intel.com ([10.237.72.28]) by fmviesa009.fm.intel.com with ESMTP; 11 Jul 2025 02:54:21 -0700 Received: by black.fi.intel.com (Postfix, from userid 1003) id 8DE816A8; Fri, 11 Jul 2025 12:54:17 +0300 (EEST) From: Andy Shevchenko To: Feng Tang , Andy Shevchenko , linux-kernel@vger.kernel.org Cc: Andrew Morton , Nathan Chancellor Subject: [PATCH v1 7/7] panic: sys_info: Factor out read and write handlers Date: Fri, 11 Jul 2025 12:51:13 +0300 Message-ID: <20250711095413.1472448-8-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250711095413.1472448-1-andriy.shevchenko@linux.intel.com> References: <20250711095413.1472448-1-andriy.shevchenko@linux.intel.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" For the sake of the code readability and easier maintenance factor out read and write sys_info handlers. Signed-off-by: Andy Shevchenko --- lib/sys_info.c | 72 ++++++++++++++++++++++++++++++-------------------- 1 file changed, 44 insertions(+), 28 deletions(-) diff --git a/lib/sys_info.c b/lib/sys_info.c index 7483b6e9b30b..32bf639c4de2 100644 --- a/lib/sys_info.c +++ b/lib/sys_info.c @@ -40,13 +40,52 @@ unsigned long sys_info_parse_param(char *str) } =20 #ifdef CONFIG_SYSCTL +static int sys_info_write_handler(struct ctl_table *table, + void *buffer, size_t *lenp, loff_t *ppos, + unsigned long *si_bits_global) +{ + unsigned long si_bits; + int ret; + + ret =3D proc_dostring(table, 1, buffer, lenp, ppos); + if (ret) + return ret; + + si_bits =3D sys_info_parse_param(table->data); + + /* The access to the global value is not synchronized. */ + WRITE_ONCE(*si_bits_global, si_bits); + + return 0; +} + +static int sys_info_read_handler(struct ctl_table *table, + void *buffer, size_t *lenp, loff_t *ppos, + unsigned long *si_bits_global) +{ + unsigned long si_bits; + unsigned int len =3D 0; + char *delim =3D ""; + unsigned int i; + + /* The access to the global value is not synchronized. */ + si_bits =3D READ_ONCE(*si_bits_global); + + for_each_set_bit(i, &si_bits, ARRAY_SIZE(si_names)) { + len +=3D scnprintf(table->data + len, table->maxlen - len, + "%s%s", delim, si_names[i]); + delim =3D ","; + } + + return proc_dostring(table, 0, buffer, lenp, ppos); +} + int sysctl_sys_info_handler(const struct ctl_table *ro_table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct ctl_table table; unsigned long *si_bits_global; - unsigned long si_bits; unsigned int i; size_t maxlen; =20 @@ -64,33 +103,10 @@ int sysctl_sys_info_handler(const struct ctl_table *ro= _table, int write, table.data =3D names; table.maxlen =3D maxlen; =20 - if (write) { - int ret; - - ret =3D proc_dostring(&table, write, buffer, lenp, ppos); - if (ret) - return ret; - - si_bits =3D sys_info_parse_param(names); - /* The access to the global value is not synchronized. */ - WRITE_ONCE(*si_bits_global, si_bits); - return 0; - } else { - /* for 'read' operation */ - unsigned int len =3D 0; - char *delim =3D ""; - - /* The access to the global value is not synchronized. */ - si_bits =3D READ_ONCE(*si_bits_global); - - for_each_set_bit(i, &si_bits, ARRAY_SIZE(si_names)) { - len +=3D scnprintf(names + len, maxlen - len, - "%s%s", delim, si_names[i]); - delim =3D ","; - } - - return proc_dostring(&table, write, buffer, lenp, ppos); - } + if (write) + return sys_info_write_handler(&table, buffer, lenp, ppos, si_bits_global= ); + else + return sys_info_read_handler(&table, buffer, lenp, ppos, si_bits_global); } #endif =20 --=20 2.47.2