From nobody Fri Sep 25 08:46:28 2026 Received: from PH8PR06CU001.outbound.protection.outlook.com (mail-westus3azon11012027.outbound.protection.outlook.com [40.107.209.27]) (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 A656C3BFAE2; Tue, 15 Sep 2026 03:04:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.209.27 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789441443; cv=fail; b=rT6nY9f21FiUxJyop9D2NRh3eVcbUkASMIKx1IOq7EEsnhTtgiZUbwjneHe17A4DG5GH0PJq8T7BkTeBT90jVEfeAaaIUyhQgie0KBItJzJAaRZj0eS3U+Gb0DrynOgXOZepMB5cJ08N94mYhMTlYNsGW62iF336CYL2UNSPOKc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789441443; c=relaxed/simple; bh=30jVsvLsyAnVr0mCs+M3DFqNS3hk4x7vS6jL84urDPE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=D04qFTiBm1TmRnink/Icx0radPS+fdENKXaD4esYuXXxfCilnxrUd6YS+RG/7jSbSXvymLLn6dHweSxa6RPRl/UBTeCNhy0sAbVr3YqSdsLYThX14nuQLUX1rSQTyDoBJsSRusOpXkR7O0kwfOB4DY43xAjc+F27BG1s7Om4gGs= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=MwYvzb2u; arc=fail smtp.client-ip=40.107.209.27 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="MwYvzb2u" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=RqJzbZ6qISYe1SRXsUpuvCyg6PXQd2Vz/oPrKCOzwyOn3nQ3LfOcURe98LJeAkAzTPRB4TKKDbEP2eTLRnnP2mSHUsAiepHQkayNsX7joTKyPknBXhok0+TaA9l77upS0YNX0NG0WoTfokq5QHA9X4LjGYQebM4BBgEtZqOq9jdAvUfmxVXHK1uiXpphbzaSB8S8pSubZPdiEqgBtNtgUsYi76uIyiz3mjtzmEo8lQWtr5X2ygrWF9FbMELQu0pfogPpjBW8UYygdDZWukqu6SUFt7zh6ZsP1oByLbFR6CyIHBp3LwVlk6wv+k3ge1CiEFeJ6IYvTptCY8qwgIUjDg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=0DbP9wTpu074hCEDWViXjVrnTNfXH2OLo6eyXM0GwUM=; b=rKZK/kuDMuf2wqJbgbibXL2rqxGgY2+QqFcvuRCWKFpBuqzlW41qHW5GvnnUZdb8RJswkncHtIvQsQ17n7y541R2XPEeUrFwZZm3cbw+Cml884Y+fTs0MM/hco1DOIW8SZw3rG+rEJOZvFS3RK9EWDXRmBbR8L0TAzkFsAJ0gUa+yDJ0WDQEstqDBQxZAm1AUwqCzymh9+WCLHLKApfN5cLo5qLVt8E/QzlZxqlMeUjRqOkh+fCnJlXFgPEsC16AaDadMlW7kbopq4vcwb3nWPK/qmnVHt61xMSIpluNybWXAjdC7f3pZnJptXlNxCqav0CzD1mre4HfhDF1kEWb2Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0DbP9wTpu074hCEDWViXjVrnTNfXH2OLo6eyXM0GwUM=; b=MwYvzb2uChhWvatM53Z7pgN8kZ2k7K9MFMgFkRV5gFysZ17nLOzsyQnCh7VjsG7o+IeULcZLDRLmpz40ccswV+MwDbEju0SZQNj8dn/AwQD6EOdV2YbaIYBd8PNjmzspbNRhaDnIFj4ST81CMG6Wea+XeZol+iaTDNH5Z3uL5vr0PfPULfHkGM257dUizJFl5CFQOEHWjuRS2LTNiloxkQVtF7mvW3gfeZP+lrmt29kOKJs/xMcDN+hFAAAY60Rb9zNF0XkmN5I3KxJgu6kHg8lrz6i90mvjqHALCMAziJRW6F5OlWxEGwbIlDYpY4UhoGf7eRL3K77Jm/XsBxJESg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from LV3PR12MB9356.namprd12.prod.outlook.com (2603:10b6:408:20c::21) by SJ2PR12MB9008.namprd12.prod.outlook.com (2603:10b6:a03:543::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.12; Tue, 15 Sep 2026 03:03:53 +0000 Received: from LV3PR12MB9356.namprd12.prod.outlook.com ([fe80::1c36:31b4:c420:6286]) by LV3PR12MB9356.namprd12.prod.outlook.com ([fe80::1c36:31b4:c420:6286%5]) with mapi id 15.21.0406.007; Tue, 15 Sep 2026 03:03:53 +0000 From: Yury Norov To: Andrew Morton Cc: Yury Norov , "Jason A. Donenfeld" , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Matthew Wilcox , Peter Zijlstra , Ingo Molnar , Will Deacon , Boqun Feng , Waiman Long , Dennis Zhou , Tejun Heo , Christoph Lameter , "Paul E. McKenney" , Frederic Weisbecker , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Uladzislau Rezki , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang , =?UTF-8?q?Onur=20=C3=96zkan?= , Kees Cook , Joel Granados , Anna-Maria Behnsen , Thomas Gleixner , Juri Lelli , Vincent Guittot , Dietmar Eggemann , Ben Segall , Mel Gorman , Valentin Schneider , K Prateek Nayak , Mike Rapoport , "Liam R. Howlett" , Lorenzo Stoakes , Vlastimil Babka , Jann Horn , Pedro Falcato , "Michael S. Tsirkin" , Jason Wang , Xuan Zhuo , =?UTF-8?q?Eugenio=20P=C3=A9rez?= , Sebastian Andrzej Siewior , Clark Williams , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, wireguard@lists.zx2c4.com, netdev@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, rcu@vger.kernel.org, virtualization@lists.linux.dev, linux-rt-devel@lists.linux.dev, llvm@lists.linux.dev, Yury Norov Subject: [PATCH 01/17] locking/mutex: assert static storage for DEFINE_MUTEX() Date: Mon, 14 Sep 2026 23:03:19 -0400 Message-ID: <20260915030336.1192299-2-ynorov@nvidia.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260915030336.1192299-1-ynorov@nvidia.com> References: <20260915030336.1192299-1-ynorov@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MN0PR03CA0023.namprd03.prod.outlook.com (2603:10b6:208:52f::22) To LV3PR12MB9356.namprd12.prod.outlook.com (2603:10b6:408:20c::21) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LV3PR12MB9356:EE_|SJ2PR12MB9008:EE_ X-MS-Office365-Filtering-Correlation-Id: f87cb82a-99c8-4e44-592d-08df12d5f93a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|23010399003|376014|7416014|1800799024|10067099003|56012099006|11063799006|6133799003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: Wey0wtmA13yGVO8omyhL1HIzen4Tm288/2OMWUNHgGbskFT7/h05R3Ods9V+uEU2RCntBj/uft4fFcJCZplPb//0kpPToA536xJcbr6jU9HKuSV+N/l3jiTYMqihWIkO/RzPcMVZjjZcH6kMFmOU+isbUkle7vj+TskZ5SvU3SJZsV67fHuGAjZuLmvfiI55k/ZpvyhyGHeBVT/xnw4/uTNE+7Oods1lcicCa7k/flGUyV4aC/6MUNqdoy+JtrtuNK5InvFTxHX27Tv/uDScN0Xe2yaGVqBgwC15ZumlslBA0bAbcpSinEeyLj+VWn19vOj/yMZ7JhqIMRcJuJlYH/ZdpCMHovnHugB2X22HIIRfBDWteN76ANhye+GWw0zp1Z6XfZ3VRaqURt1uvLERLikrgBX8HLnT4pbkkIH3KmEG/2NlKpvrskSkKMbbuY/iH6HN4L00qxqaqcxFQFaBEKWnJXfhgr8/Q+y+3bd/oSUmAbRvZH9B3TlIpRwZxOEOpreaYVarKC4fo5DMqs2jm3Mr1KeEzO8ampvI24LQKKg+bgmGIrlWK/Alqqlj09YFTZZIM80Ko66ZRqGVqlc7mIpSgiXXe7P9qAdL/fBgezDzv3FPw4DgTHS/0ktdSL8qzKE91tZff+TeA3UWlV0/q97Cb8N4QaYy81/5ARDut1s= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV3PR12MB9356.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(23010399003)(376014)(7416014)(1800799024)(10067099003)(56012099006)(11063799006)(6133799003)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?D0jYsb6nWZWGDEM3+mYL2yU3hUCAXC52fTPDKXNLOdU/QR8qr6TAXrAZewv3?= =?us-ascii?Q?USU3izUOfyyRUa7yrbaDZ8bOdgjULL27kTJb/iMAkIsWOwLiml6xK38GEUxx?= =?us-ascii?Q?UOspdRnV3YCqiFqGYTTPWVzhtmpSGxJhoinrbGO7AKUJwztpcWv2XBHgLmhb?= =?us-ascii?Q?4+qOrpiYkgNcuNF3yCY1KU/YIJ+iY+w0Dn6jVX2Njx3bNSLX2Rz34BdS+rnE?= =?us-ascii?Q?CiQxlr3rTXcmQpX8boTVbb/uwXDGQBFgfwhuHgDH8Byq3iyyLF1+X2emTfj7?= =?us-ascii?Q?zgl18QTC353r22I8e0Ps7mVl4Tn8RlP2UOBfsjZ0mNvKOr9kmxcNPKrDQ4oA?= =?us-ascii?Q?NmnsQyiHOoSlLvLktnY3i3f61pkn45zA1U33DVOxZ8pitj9W8tL7JS8Cljrs?= =?us-ascii?Q?IDcDrQ8RIUw1Bm5jX3ybdz7IF/f09trNro08LhsPHV6szqbR6LCujG+/VkNb?= =?us-ascii?Q?Hiugcnfk7WXU95O1MZz41bUr0rq7CzC0U2HLWZ+stGCvzITbWYuaJvcbDDw7?= =?us-ascii?Q?YThIbemMBmEg8jw3++g9DXy9GLgSQFnNOXhWQ6ccbu6hcazLx2shH+jRQnT+?= =?us-ascii?Q?PijHJB2RawLfnGwm1mSYumTyVozWo4SWps5vwgQ2fOehgutx9pYzScDT3O+6?= =?us-ascii?Q?+ycdY4y1UcX9BJBZt6hqwsQyj1jUWDkpRXPh2FBpF+i0Wf0oZLQzDiRCiz6g?= =?us-ascii?Q?6NEI49Dd4fap1jtjWkHOR7XHashQPQVcmunu63k4fT/i7VA39UrZeuiSIa1q?= =?us-ascii?Q?gjJ3L3uptzlcY+crbUp/FATizUkE22Szf3VXHazCrD89WRQvHNJg67NbyBAj?= =?us-ascii?Q?p0oHVXCXtNY9TiNJ1f0x2OPcGsF1gIwx/UfWK4rBnv4Ov9nmLqokIlbzWHUn?= =?us-ascii?Q?GsxVxlNimhs80tvVunbrQFXZvPJX8CVcz8AMC26y8ffVVABLla2us9oObvZ8?= =?us-ascii?Q?rspeF9OomKk1y9MtB0A5ltzGza3X+vQknDIMJr3agPvz+/OMV1LJURWE6mqP?= =?us-ascii?Q?gbLkz9O3pM974UTMk5pc68ACU2rwytsRSdmoWyUSF00v1OSkarEdc4Uui78R?= =?us-ascii?Q?wmXjseBoULmOSJrdF/1cP5+Gyp3vEmhHROQXcL5byhkm993Gqw7A4fnh4uke?= =?us-ascii?Q?sf4ibApjuWbtV+tcAUoxBDFqHI0lGLlSmH19Z5R8sLN+tSUcv7S2ZEWp469/?= =?us-ascii?Q?ufk8qisOnsQBvcLUoD2+hUty576glwHQmodX+BZzKtOcMwv7J2EE7ZIoBEPx?= =?us-ascii?Q?Oa6QEkOfM+cfRJZvtK4+SwVRguSSmv8UbYUO+8FNYOjGmxFPZ7vFR+xjcp0U?= =?us-ascii?Q?7jm0LDAqJkSqScI8LUSFIIGeLdHSvXK3huS3RbGwOutbUTwYVHUMUINdcIaw?= =?us-ascii?Q?ZratkrnxOGr7wFuVNQUYePFGea1+hH1g3E1N+gjXmn978HWiKXM3u0OD6AFr?= =?us-ascii?Q?p7GibEtKtkJ5481nspLMsAj0j8rFCMLgVJZ0oz86TdKoR83/yhqLg/h+nb6j?= =?us-ascii?Q?diOGuwDkYUkirDurn8/HR2xEJyUmNbkg/T997hCQM/oqQgn/SH2rMvGiUhni?= =?us-ascii?Q?/UU/kM4+C9EpQ3ho6UQ+gpkxkYiaKa1E4sfXBg5mqOIRiBc3QjkGsklZASWf?= =?us-ascii?Q?98jj6iwqhfqVDz35egnZqSuRFDSB28Ebm14kOPpZhbUT3wCaHjiW3q1rN/Jp?= =?us-ascii?Q?35VywzPIBRw9dgVYRt/wcZ7GtBNkHLq7/fCtQcJUsn/7JAI/7lXcVPAE+Ej9?= =?us-ascii?Q?mPa9A1HEzA=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: f87cb82a-99c8-4e44-592d-08df12d5f93a X-MS-Exchange-CrossTenant-AuthSource: LV3PR12MB9356.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Sep 2026 03:03:53.0032 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: /6scg18p9HqTXPDPtIm6pD0L570ZuG4nzDtZpAzat6xSNjvDDD3uZ84WlS9ARj9DZ7AMl39h80kFZql2VSByRA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB9008 Content-Type: text/plain; charset="utf-8" DEFINE_MUTEX() uses a static lock initializer whose lockdep class key requires a persistent object address. Reject automatic local declarations with ASSERT_STATIC_STORAGE(), in both the regular and PREEMPT_RT variants. Align the VMA and memblock tools stubs with the kernel declaration. The two automatic mutexes in the WireGuard allowedips selftests already call mutex_init(). Replace their redundant static initializers with plain struct mutex declarations. Assisted-by: OpenAI Codex Signed-off-by: Yury Norov --- drivers/net/wireguard/selftest/allowedips.c | 4 ++-- include/linux/mutex.h | 7 +++++-- tools/testing/memblock/linux/mutex.h | 8 ++++++-- tools/testing/vma/include/dup.h | 5 ++++- 4 files changed, 17 insertions(+), 7 deletions(-) diff --git a/drivers/net/wireguard/selftest/allowedips.c b/drivers/net/wire= guard/selftest/allowedips.c index 3e857e6fb627..ecb2908228e7 100644 --- a/drivers/net/wireguard/selftest/allowedips.c +++ b/drivers/net/wireguard/selftest/allowedips.c @@ -257,7 +257,7 @@ static __init bool randomized_test(void) u8 ip[16], mutate_mask[16], mutated[16]; struct wg_peer **peers, *peer; struct horrible_allowedips h; - DEFINE_MUTEX(mutex); + struct mutex mutex; struct allowedips t; bool ret =3D false; =20 @@ -499,7 +499,7 @@ bool __init wg_allowedips_selftest(void) struct allowedips_node *iter_node; bool success =3D false; struct allowedips t; - DEFINE_MUTEX(mutex); + struct mutex mutex; struct in6_addr ip; size_t i =3D 0, count =3D 0; __be64 part; diff --git a/include/linux/mutex.h b/include/linux/mutex.h index 734048c02f4f..2f2d95f3097c 100644 --- a/include/linux/mutex.h +++ b/include/linux/mutex.h @@ -11,6 +11,7 @@ #ifndef __LINUX_MUTEX_H #define __LINUX_MUTEX_H =20 +#include #include #include #include @@ -84,7 +85,8 @@ do { \ __DEP_MAP_MUTEX_INITIALIZER(lockname) } =20 #define DEFINE_MUTEX(mutexname) \ - struct mutex mutexname =3D __MUTEX_INITIALIZER(mutexname) + struct mutex mutexname =3D __MUTEX_INITIALIZER(mutexname); \ + ASSERT_STATIC_STORAGE(mutexname) =20 #ifdef CONFIG_DEBUG_LOCK_ALLOC void mutex_init_lockdep(struct mutex *lock, const char *name, struct lock_= class_key *key); @@ -124,7 +126,8 @@ extern bool mutex_is_locked(struct mutex *lock); } =20 #define DEFINE_MUTEX(mutexname) \ - struct mutex mutexname =3D __MUTEX_INITIALIZER(mutexname) + struct mutex mutexname =3D __MUTEX_INITIALIZER(mutexname); \ + ASSERT_STATIC_STORAGE(mutexname) =20 #define mutex_is_locked(l) rt_mutex_base_is_locked(&(l)->rtmutex) =20 diff --git a/tools/testing/memblock/linux/mutex.h b/tools/testing/memblock/= linux/mutex.h index ae3f497165d6..d1a52d6dae80 100644 --- a/tools/testing/memblock/linux/mutex.h +++ b/tools/testing/memblock/linux/mutex.h @@ -2,7 +2,11 @@ #ifndef _MUTEX_H #define _MUTEX_H =20 -#define DEFINE_MUTEX(name) int name +#include + +#define DEFINE_MUTEX(name) \ + int name; \ + ASSERT_STATIC_STORAGE(name) =20 static inline void dummy_mutex_guard(int *name) { @@ -11,4 +15,4 @@ static inline void dummy_mutex_guard(int *name) #define guard(mutex) \ dummy_##mutex##_guard =20 -#endif /* _MUTEX_H */ \ No newline at end of file +#endif /* _MUTEX_H */ diff --git a/tools/testing/vma/include/dup.h b/tools/testing/vma/include/du= p.h index 4c58487b764e..f2cdb9185ef9 100644 --- a/tools/testing/vma/include/dup.h +++ b/tools/testing/vma/include/dup.h @@ -2,6 +2,8 @@ =20 #pragma once =20 +#include + /* Forward declarations to avoid header cycle. */ struct vm_area_struct; static inline void vma_start_write(struct vm_area_struct *vma); @@ -435,7 +437,8 @@ struct vma_iterator { } =20 #define DEFINE_MUTEX(mutexname) \ - struct mutex mutexname =3D {} + struct mutex mutexname =3D {}; \ + ASSERT_STATIC_STORAGE(mutexname) =20 #define DECLARE_BITMAP(name, bits) \ unsigned long name[BITS_TO_LONGS(bits)] --=20 2.53.0 From nobody Fri Sep 25 08:46:28 2026 Received: from PH8PR06CU001.outbound.protection.outlook.com (mail-westus3azon11012027.outbound.protection.outlook.com [40.107.209.27]) (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 7F50B3DB337; Tue, 15 Sep 2026 03:04:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.209.27 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789441447; cv=fail; b=kC1+Xup2mkcJH3cJF5mqHp5xz8OZyFZFEpoIVMc4zWpyG2Cw3Eoy0EZaD4J+yKKO7xnuK3Xs4nj79bR6BcgHG0nirvXkO/T1mF9GUiPQQ7k7XCSiw5KIF37Q/W+NYFKIweEKXUyd2CKZIT08nThHhQ/03lSAL9fmSdVp7ju3PcY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789441447; c=relaxed/simple; bh=UutLaYPxqvttvISNOMxDWkZuSoWto8KJaW8ZaMUZ8Ns=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=rWuQblF9Vst+R3k32kDFB4gPx58V4vw49GYv4FJpq3D8rpg4qIo1Ie7y0SFTdnhMO1JgJuccVolf9vax3yr0JNYUU4pZMk21J2bK25uHTjcfFHZtYIZok+hhfNtFh6ChCrj4pHb8oQQyWC3fGs1ia2Xz4RqY81Z5If6tNqA0970= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=TgiGIa+3; arc=fail smtp.client-ip=40.107.209.27 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="TgiGIa+3" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=jBTnQ1xbyDIc+6vAbpbihp73UuGFRurlhgAKoEkvNiPYEBoEju56gctsaBAzdMTOuCWYInanXg0uNQKB515p38mhXEkAfni/sZXvP32ICXxGML15BBoDUBqtb95Q4ViRy7+wV6Tz9IS8c15B0NwBDGHS+jMvvAfF0NsbCOqH1YvKtDGJ67QHRa3o2AbpbaYPqm9jp0zgRRZ/4xAB+kMPQOKdXgBNaww71KzCbmMYz7QHyIYwqxxFBRGIkoO5o/MOH4f+5pRQyZHgdqLhj6z3Sdmfgdn+T9TwmeubJ0Ww1N7HeWr8mTtHfPRqt7d0BJq220epqUWdNDPMAGz13QLPtw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ulyHw4oZ448FQqvFWSJJVv66MGmnHaoH74pheuM0m08=; b=d18g3dkGqZyfRzaddaV0ofgoUEVXwfpPOZCGAzmYz5NyxZrk5sXv2JtFQ4OHVIT1sAqzsIlkYU8qp0xpCWVSAxKxvrx6+xaBKq2F5PU8fTGSELnJYE6pOxkmY4gad32YscOyAzhKQplPjuY1ssziRTMholJPXDrBjBWnMkX6NeDW94rzafZLnyziW96KfvPd0tNi9hfhtoMzVfuvRezbW5YSgUn13hibu+/18T11u/hNI7Z3BoChaUiTTsTyhG5wiy4KpkBIuJUjRwlwOhqwDX/UuWgLAXtdxftqfuhnGffrY5EGatrGw221QE+hEYkzp8OyPw55+ataY/E124nZMw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ulyHw4oZ448FQqvFWSJJVv66MGmnHaoH74pheuM0m08=; b=TgiGIa+319Laf+IK9XIyHgKEJVCNbtK+trBRRwIky1kSh1f331ZG31FpM10cItp+M4o9YR7QfFBHh7Isi3u9GUbQEMZKD32l1/aS4MuXka4DK6A/Klin7w1iqJSKMy4RtGvNQOmlNGevK/hITxMX+6hE2aIUinAjY9lEZ8tdu1dKI11oS9jYURTpnMsn45uuZ4JLFb/AbSa9GhqzUOPmah12JvX5sYRiEXhVJ576wFpKB7NmuRmEhbWjWmU8e+ebHkOLnZnbf8Fy/0TEEl6t04amx5XviF+SBI/cIf9IvZm2WZ1TeE44Th6QDmtm4zBGoJc0QnqKsWkS1ETbApoGbg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from LV3PR12MB9356.namprd12.prod.outlook.com (2603:10b6:408:20c::21) by SJ2PR12MB9008.namprd12.prod.outlook.com (2603:10b6:a03:543::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.12; Tue, 15 Sep 2026 03:03:57 +0000 Received: from LV3PR12MB9356.namprd12.prod.outlook.com ([fe80::1c36:31b4:c420:6286]) by LV3PR12MB9356.namprd12.prod.outlook.com ([fe80::1c36:31b4:c420:6286%5]) with mapi id 15.21.0406.007; Tue, 15 Sep 2026 03:03:57 +0000 From: Yury Norov To: Andrew Morton Cc: Yury Norov , "Jason A. Donenfeld" , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Matthew Wilcox , Peter Zijlstra , Ingo Molnar , Will Deacon , Boqun Feng , Waiman Long , Dennis Zhou , Tejun Heo , Christoph Lameter , "Paul E. McKenney" , Frederic Weisbecker , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Uladzislau Rezki , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang , =?UTF-8?q?Onur=20=C3=96zkan?= , Kees Cook , Joel Granados , Anna-Maria Behnsen , Thomas Gleixner , Juri Lelli , Vincent Guittot , Dietmar Eggemann , Ben Segall , Mel Gorman , Valentin Schneider , K Prateek Nayak , Mike Rapoport , "Liam R. Howlett" , Lorenzo Stoakes , Vlastimil Babka , Jann Horn , Pedro Falcato , "Michael S. Tsirkin" , Jason Wang , Xuan Zhuo , =?UTF-8?q?Eugenio=20P=C3=A9rez?= , Sebastian Andrzej Siewior , Clark Williams , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, wireguard@lists.zx2c4.com, netdev@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, rcu@vger.kernel.org, virtualization@lists.linux.dev, linux-rt-devel@lists.linux.dev, llvm@lists.linux.dev, Yury Norov Subject: [PATCH 02/17] locking/rtmutex: assert static storage for DEFINE_RT_MUTEX() Date: Mon, 14 Sep 2026 23:03:20 -0400 Message-ID: <20260915030336.1192299-3-ynorov@nvidia.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260915030336.1192299-1-ynorov@nvidia.com> References: <20260915030336.1192299-1-ynorov@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BL1P222CA0020.NAMP222.PROD.OUTLOOK.COM (2603:10b6:208:2c7::25) To LV3PR12MB9356.namprd12.prod.outlook.com (2603:10b6:408:20c::21) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LV3PR12MB9356:EE_|SJ2PR12MB9008:EE_ X-MS-Office365-Filtering-Correlation-Id: 80949a91-fc2f-4378-e804-08df12d5fb78 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|23010399003|376014|7416014|1800799024|10067099003|56012099006|11063799006|6133799003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: 7Leu/6VmRQQdvEDiIVL82HCGEcu3KozIVfzZNIgvm79/ecjR2vs3b2M4vnDr6aeh114kOaqXelEtdXWY9kkO0D2dlT3a8EYFquc2LRIcjNBZgJQjS4q9fq/7E3BFpZeEfEyqh8MvYfDVPWykrh7+f6Z6gcjCZtCRqhiqqV85rdCCS5t//mTDUikboka6dWLI3K8rPEpmYlP6g/rwXi1WBNjHVDTh1BzdZiuMWPT75ST5jqByh07TRpoNsTgERq8ojEueLG5cmHKsGnpyVp8K8VjeUP7zijKmHF6h9Hn5kJEZEH31YbWd+ViJtdw17DuOI3Q9suUVC4loUAF4/yW+hg8k1wMUrB0DwRAgMgJN+MIcHayHPWDZBjtRzzhXhEe99qBjyjbClK+PYWArIVJqAcZG8MP4glpnyxs3+ya7aihm82QZFB9kBd1cVkym3HPphQSO4zupsIei6nuDBoOz2sz4DdyyolsR2PmS055p3PeE07NU1rMWu2UP+x608tcXSBQu8ouSQ/s90TYR1PcFGJu/itX4Ode9u/ykzPm3z2Qz2g1GM1VWR2X3RHfZYC7qey4hNzPTWUcj/BDGsywF2UPgVEZA8LGCcmEeOylsXie3g9jjEPpzDt2KQLl4qGAMHLV6nWWc1Ux+NJufLWm1sWzwRW6IcEj7fSYpJshqitI= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV3PR12MB9356.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(23010399003)(376014)(7416014)(1800799024)(10067099003)(56012099006)(11063799006)(6133799003)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?B2ZV3TocVue9OorsdcxudfoqBqiqFk4oqpLBus/9j5BQLzn/nlSM8r6ETqPs?= =?us-ascii?Q?ywuPSkqAcrXu01o5m+szxs2ktAZADc5e1LlJXDxgJdVBmFjtihXlDMb9SN7P?= =?us-ascii?Q?K47P6fnPYUNvyzILmMV2z+3hmBV9zjQ0HUdlGb+POB9dE4v95R21x7ALfZjG?= =?us-ascii?Q?KpYYTQviiHXWOS/2igjG4t5UHjGc/FH6BeQeuQ4y9fon1AtspCBoKGm36KDj?= =?us-ascii?Q?Na6VS7swhOpqqXIH1NHb5S07l3kgjyXcgMtN8m10CEGwj5Yvl2h73XGZnUil?= =?us-ascii?Q?cWN8w1Ya4FHnEWXs5Dlk173o885lvrn7vKkEHohu43gnHwgwyANtSnmnZe41?= =?us-ascii?Q?f39sdylrvxnMtTQS8GHk2k+KL2hIhCh7c8EGYTbHX4cs00KGHD8GoQ4QWG4L?= =?us-ascii?Q?ueHr4GE27dUyqY2cjW5Sx6/WQ1Yay+GO/qOhRFbbtFk7cU7sSPbgyJxLRZO6?= =?us-ascii?Q?W9AC6kjio/9jPlZWischMaD7f4h8pEQxKx8l72L1zkuydysNhFtRK6dcBzCH?= =?us-ascii?Q?+vSXwmjg5f1Dc94Hhw5Efe014vMlVxGLG6MlWfdmm6Yr97xE2ZZZL/VGidlX?= =?us-ascii?Q?NK2KMQL1ckpQsXXcoBMmbFiGG/zhbbmOWWrktCabSAJiwRriIhlCQ5vA/m+I?= =?us-ascii?Q?sLcgKi3MJT7wWKhulP0q0Se38icZh+uS6U5qfc2K2SNmsfdy7ZLoC5EkwMNB?= =?us-ascii?Q?GOXgaaCL0Di1zciiJkZmiB4PTknsq/1QMkD1G7C/LPlnZvunA9Cgvc4DdiOB?= =?us-ascii?Q?qdNk9dRQJqZmQ9Orlf2iIDcaPlMUgFZpBe58NVorDJjAwftfR28MMENkjvJL?= =?us-ascii?Q?UScFdBzW/wLgYBF9V+p2VXGDOzKmm67wodhcLmCRzrs1wuunbBIjQFwvaNl+?= =?us-ascii?Q?edK+m8D9rOuLcPbktAvYY0d9QOuX1GV2lv5O1exaeVz7IOiiU8uSKGrvSXxa?= =?us-ascii?Q?OGoEq4xCXw88/q268wPYKg8/uGpR01166VSKXj6YIuKFSLGYxMJ9RAgj8uzG?= =?us-ascii?Q?XqeEDF/4VcX05M4fa7jrj4Z05+RtRdgOQ2De8kMLAv+3WNXXgd5+nQWW5Iud?= =?us-ascii?Q?GQzvJEcePRypYY35ZeNkmbkP0EAlu1ZlMXWR8JlSTXtYvkOrJpb3DoRJX+RP?= =?us-ascii?Q?LGbSS+wkfTRT0sxRZ7u+RiTbts9HHZdIwsIaEeNY/RoWqaI3HPKfBBgF4QDz?= =?us-ascii?Q?HitAcUiy+qKlbtcTGR/8oMy5kfIXblGPg1ZP3ArU/Ep9LpIPW4/mREn3HnXI?= =?us-ascii?Q?TXmVn2X7mr1pwtI+W/LiLBROgUM331vuvc/MEVPXE4QpKZHf6aZvWw1YOnyP?= =?us-ascii?Q?zw+WaVbLSjvyYxSGaBoXi2uJM2RmLeq1aqlK6DL2OqkRdecfwLfjRBBYflv4?= =?us-ascii?Q?6mGo7sUafAT3UELgY9bNwr/UUYRl8NlD9bvgYiUtK7fgKY+hdrrjBXMbp1Ot?= =?us-ascii?Q?Pqak0D99d6Zry9zBLbwwqy2mlRqQJBDYmCK/lJeAJKF6Vz57yNd+lS0beYfA?= =?us-ascii?Q?wn84/aIItWkaQ27CONTXOH4mNfmYn/CmUJfzR0dc+PhroYHaJoXPoPagmMMV?= =?us-ascii?Q?eQSIMBx4MkCOKdBpTAISnxaZOVnKAv6Bo5kTNmPMe66EzdkZc6wbUGY9Ly8D?= =?us-ascii?Q?/RSI1lh1dvqUtaJR1tLmsZxgzy3rz0wTSipWi0qLIxbz3URwh6vXNEh956X5?= =?us-ascii?Q?wWywRDSkpTgOfGP62DU/iUiilkAAkPu4SAliXfZNgfjETcE6sO8VRfqBMoqL?= =?us-ascii?Q?WaST7bel6g=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 80949a91-fc2f-4378-e804-08df12d5fb78 X-MS-Exchange-CrossTenant-AuthSource: LV3PR12MB9356.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Sep 2026 03:03:57.1510 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: mDqINFCfJ2/kITqwbEtV1DWRrt1rVU0qBGU3moyOst41efDtk0VDYAA/DI2BiTaibbjT1fmvSmTDnGEI5ZIUhg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB9008 Content-Type: text/plain; charset="utf-8" DEFINE_RT_MUTEX() statically initializes both the mutex lockdep map and its internal wait lock. An automatic local object cannot supply the persistent class key expected by this initialization. Add ASSERT_STATIC_STORAGE() to reject automatic declarations. Such mutexes must use rt_mutex_init(); file-scope and static local definitions remain valid. Leave __RT_MUTEX_INITIALIZER() available for embedded objects. Assisted-by: OpenAI Codex Signed-off-by: Yury Norov --- include/linux/rtmutex.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/linux/rtmutex.h b/include/linux/rtmutex.h index 9e1f012f89db..495509d82c88 100644 --- a/include/linux/rtmutex.h +++ b/include/linux/rtmutex.h @@ -105,7 +105,8 @@ do { \ } =20 #define DEFINE_RT_MUTEX(mutexname) \ - struct rt_mutex mutexname =3D __RT_MUTEX_INITIALIZER(mutexname) + struct rt_mutex mutexname =3D __RT_MUTEX_INITIALIZER(mutexname); \ + ASSERT_STATIC_STORAGE(mutexname) =20 extern void __rt_mutex_init(struct rt_mutex *lock, const char *name, struc= t lock_class_key *key); =20 --=20 2.53.0 From nobody Fri Sep 25 08:46:28 2026 Received: from PH8PR06CU001.outbound.protection.outlook.com (mail-westus3azon11012031.outbound.protection.outlook.com [40.107.209.31]) (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 15A953FDBEA; Tue, 15 Sep 2026 03:04:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.209.31 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789441454; cv=fail; b=AVffPIciDfBMf/Byofdqc5aM77K7jHL00Dd/WFvV032Sqek0zqfi1IglgTJ+U/DJBNvyUe+DYP2HCw/aHzRR737AqHTJd5TbvCYdblQnZtNeKUeDgo0XVcT8uGeIHVktHZjVdDHl9PKkG94BqoRGS3NFAvebg2knmANzTADofBc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789441454; c=relaxed/simple; bh=AxoCtnLKLgDAGeHtsxEgh7z9BfE40CMozDbaR/sixC8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=EB2lkdDrw0gRmW5CPkhdNoi8+OIjY/iWVmVQho5p1s+FQs/IU4UtWa+7hADfMuKB4w+FJ3Ll4Ntx/Ry6GplJT0a8uGk33QVAGe9ZalwnmXYgyJxOPvg2oJFV24mVcjDGjEfd7DMu8d0WBuJFoQ4U9U1YXKVu42xJzty5QKSHacY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=e1R6BrHx; arc=fail smtp.client-ip=40.107.209.31 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="e1R6BrHx" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=gqmIpA7gn21hu/egX9ZaxXCp4fKmJ5wxBNM5TKZmeqjhhNIshTvuGiz8HJ+U5yCtQPYsHulYy7pp3pnz94VikvTT3lwfkeI+okq8yg3mWImpgd3PtH0icxd4mU30N7iOunjhaBO1KB5b4GNb3YDv27bHj31ZsgSQMWcwtxwF+L6hXvELngqBe4FJngC14OfAdbzDYNfnYp+70JRVcShRLA0H0BN5zMPWUNZnfNlQ6IVRKQfL1jXUIFufnhjfd4lbskltOBUwWzh8XryQScu4e54YuElob6KzuZyNZam/BspEVZt1g/FInmMgrDncOzYR+u6f6vM2Rc4UUA/GmdsUCA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=jNPbKRyhs71id1HJsi9Z4YSUAMCDkiufWj4RbyWelZA=; b=ksAlXXwf6zDFL2PqMGSuMtgP2fY27hE2muNFtH90apSLLJZxLcb0Kt036iU1E4Da8YuH9uXswIvpQPdd9U11kqK280GfqSEf1eKsdsixwtlpT8lZJajKO0qHhKJkEV8b28h/PKTdD9D2p+7tPd+9XDNwZOVHcSVhI/OYCqDIWl5jAg+Q4aHaSbG/ltdMgggBrqalezFJBpF2Pz9+62kZ2ZKM0+IELuUNJ1pRqCNGRhY5+RShWPWP44OEApE11XQNad3n7yLJ/nydzVdyF1Bfj2HDdukvo8QSuk0eqpsR5uRCAOAcpjW/xDKvmIpE31l0xLP/7ei1kZ9pR1fazKxcQw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=jNPbKRyhs71id1HJsi9Z4YSUAMCDkiufWj4RbyWelZA=; b=e1R6BrHxwVJvdrUJlD5eoSUJxyYRKNoO1MDN1AWpgbjM4EBOlU1JpAnqqJ5f5bFXqMB3UgBZt15syYjQpGez7nO/aAAfw2zSAfcCofY/4cB+fj9hFejX4Wyt1g5sjRTIalAApCr6WML+F0iY3g7vBqzL/Kv/pzJuAfadV8Wd1FShZOteNvq4iZzkhznRkOic4rk4k0GKHRdO7HyIHshHrTfKd8Gy5+QJUG08d1k8kPlYZ5orOG7PUglqmhhQquTow0XPZbv3W6adS2ThPtAoRGeBo94B3pTadqk9NS3jSw67GRzINGhxkBvKmOp7D4J7ajnmCGcOv/xhXYVlotINlA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from LV3PR12MB9356.namprd12.prod.outlook.com (2603:10b6:408:20c::21) by SJ2PR12MB9008.namprd12.prod.outlook.com (2603:10b6:a03:543::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.12; Tue, 15 Sep 2026 03:04:01 +0000 Received: from LV3PR12MB9356.namprd12.prod.outlook.com ([fe80::1c36:31b4:c420:6286]) by LV3PR12MB9356.namprd12.prod.outlook.com ([fe80::1c36:31b4:c420:6286%5]) with mapi id 15.21.0406.007; Tue, 15 Sep 2026 03:04:01 +0000 From: Yury Norov To: Andrew Morton Cc: Yury Norov , "Jason A. Donenfeld" , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Matthew Wilcox , Peter Zijlstra , Ingo Molnar , Will Deacon , Boqun Feng , Waiman Long , Dennis Zhou , Tejun Heo , Christoph Lameter , "Paul E. McKenney" , Frederic Weisbecker , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Uladzislau Rezki , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang , =?UTF-8?q?Onur=20=C3=96zkan?= , Kees Cook , Joel Granados , Anna-Maria Behnsen , Thomas Gleixner , Juri Lelli , Vincent Guittot , Dietmar Eggemann , Ben Segall , Mel Gorman , Valentin Schneider , K Prateek Nayak , Mike Rapoport , "Liam R. Howlett" , Lorenzo Stoakes , Vlastimil Babka , Jann Horn , Pedro Falcato , "Michael S. Tsirkin" , Jason Wang , Xuan Zhuo , =?UTF-8?q?Eugenio=20P=C3=A9rez?= , Sebastian Andrzej Siewior , Clark Williams , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, wireguard@lists.zx2c4.com, netdev@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, rcu@vger.kernel.org, virtualization@lists.linux.dev, linux-rt-devel@lists.linux.dev, llvm@lists.linux.dev, Yury Norov Subject: [PATCH 03/17] locking/rwsem: assert static storage for semaphore definitions Date: Mon, 14 Sep 2026 23:03:21 -0400 Message-ID: <20260915030336.1192299-4-ynorov@nvidia.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260915030336.1192299-1-ynorov@nvidia.com> References: <20260915030336.1192299-1-ynorov@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: LV3P220CA0026.NAMP220.PROD.OUTLOOK.COM (2603:10b6:408:234::27) To LV3PR12MB9356.namprd12.prod.outlook.com (2603:10b6:408:20c::21) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LV3PR12MB9356:EE_|SJ2PR12MB9008:EE_ X-MS-Office365-Filtering-Correlation-Id: 2e2c159e-50b8-41ba-d826-08df12d5fde7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|23010399003|376014|7416014|1800799024|10067099003|56012099006|11063799006|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: D8cm5BBi40lOb9KPyoeX2BUv0p7DeHN6tN6fivd2g6sEgnDbRTUrKrAKSkGPuBv+uk9IJTAxPF42SVx52pq+XwqJKilp+Apd51PW5ZLYlMEvgcVewCn4dugwAoFnKzSMqYStuAnKFA2n6zp5Rq9Li+OhrytyszXRKduQtubMlCrxuBX7YvCHJK0E/7gNYmoMLQgqV7zgzmBVizMRQwMDw4e0bAGPL/5itMGrnZVQNnnjs7H60gdApOso7+FBRvX+Sz3TVhgPEXbUqgNoA8SO2mSAX+hF/vo5nQGKBBvrx7d3uH72jLfsF62j/DukSdG+JwC2vqU9lcubxudHZ4D9xr3VD26TJurOAjKSWw/i3HkVSNpBO8mwTMmWx5kk31W6iQgP3S2eLVojqSN3Ck2OA6vJnWJtx/dUeNkzHc0itBU197LT7628n3E6mc7iTb0dEvWtniSTLO39bReFVRpA67PwnTgc1TjM8eq3u+0OMCpKhZenyGUr8JPK6bUN3bNGLh2O5Rw1Jh3YWrkcwOqTs8RVhY097Yf51MKuHZb/v2kjgnIob/DNWY4NUk5gGpLofx5xoEJ4k0WbBkgmMyk6hOO3UBMIp+Gb6MVYeKwb9T/fYTRBauLGN75W08SSg/lRzDv6Xhbbu642rG/TEoMq8DXQdVfZ9/Q+9+wWns7FOq8= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV3PR12MB9356.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(23010399003)(376014)(7416014)(1800799024)(10067099003)(56012099006)(11063799006)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?jBHyy77KwjNY7+nmThMXTKFeRZkEqpz35COCV/XXxVBoQCUeQnWM1N4p2LiH?= =?us-ascii?Q?VC3mpNKVL9Kh+5eVG8LiLkpSqqH7r69cDfisO9+AlcfdH9isblAmZgvsndG1?= =?us-ascii?Q?vBbuBuGvDeu4CcZ5EMNOsGtgIoa6kc6sfMopgT9fefSVPx0k5aOSRaC8swVp?= =?us-ascii?Q?pdhuyu9Z33ZmqB/5NQmMkKQcKK9eCRtzg3zriqbyoJuY0Cx3QD0JSExmtN5z?= =?us-ascii?Q?VNFnM98Zx7f/mDRUZAPderNzDIx6/EmGJ4WLmYvDn1tlB+fHKSdemJ/jaLys?= =?us-ascii?Q?87khFpZM7291qPLC61PVwT2HztmRL6S5deH0AFxaU28esNwxAwXl5ZU6fLqe?= =?us-ascii?Q?rNE3YJk5XLYga/tA3w9Vhjgr1h/gXGgN/mrjWYc3j17G6S5QWsssxlYVu1ng?= =?us-ascii?Q?o9sKR5OQ579jmFUpay3gAkB4HQDIbR0Ue6MxHkVe17xUiTb18FN3omquq1In?= =?us-ascii?Q?XPYiFZTQiO3D03F+34GLAMebCFlFLOVAt+ySaE10ZjqbyP88GcFWopj7El9D?= =?us-ascii?Q?Ga3J17V9qshHQ9+2us66bse7h1zjQnn/Ggg8Nqy21FkNyNddpYg5ydnuESmm?= =?us-ascii?Q?IfabziO6zJ6ASGz8T8tPuIDtOBqsJu6iZtWwguLA0ZRsnWosMIzTl06dWLGF?= =?us-ascii?Q?hfQiQSVviUS8avrU96tIVwbLJ82OcbowvVTkgCHD75Zy5C1oG62Teyzzf/wJ?= =?us-ascii?Q?GbtDtfrwe5wvh7oA69mkAiWUuqQBiFxOvrbWguUqSkkfWBjLabxB+IK0dAzs?= =?us-ascii?Q?TpfGU6VoFMxjVJPMGZMa3PVuKSJjehUuINraC7d8pf5V+of9jSKdmnR1xMT7?= =?us-ascii?Q?Cidx0n9pGq08HhvPwPHWLNjEbck1H20RRW/UiesBEmHEYcdZrpbHwU/us6Ua?= =?us-ascii?Q?mgWah//FhoUY+RtmfwMlYVTHKSFR9SfnI77IHnHTo/vpy7GjciGhEZRvCVTR?= =?us-ascii?Q?5qRCkPHjMMQLdolVdBg9W1asYlyhNqDd+asIpJ86DSVMuH80iJX00BgW6FOG?= =?us-ascii?Q?KbH8hmb0JGNlVtYrkn+Wm5aGSnTDp+OtGEazH41Zk7vw7c+nB2Pe3xrYKr1l?= =?us-ascii?Q?JGy4777a9+6z/ThmO55yFD4oiRtnLK6eQvnUzy9WoiwmrBH9BGY6cVelG66u?= =?us-ascii?Q?1gVuG0ngetWz0Wjhglghwu9HJNvb2FOvjniuyG7FO7/wN8I4K4DWMta47TWg?= =?us-ascii?Q?UCn8KjdWXF1ytwpDMIuG5a6wS+Ixjm/sbSJN6wAg/amNiM7yrhORFGj76sM4?= =?us-ascii?Q?wHyPVGnvMZT23HR3ZbfNNmYF2WrSEGomHswSWUy6lf3hOMK+LA8m3N7W4naN?= =?us-ascii?Q?YN2aq3s6iNr5E7HK3mWX1By43unUMv3tx+eNnBpbOSTQHNJ0tz5C1JqVcPap?= =?us-ascii?Q?hdy3vQZ/ioL/zJPdoq+ypKz1JDVEAz91LzxMPWFtW0gqh6Hso3VpjSSTJwjZ?= =?us-ascii?Q?WtA7U9LFUeYhe9+SPfWrc1fDWbEjRcmIVWgJaYwjlakv2JfaqzcCApNN40mL?= =?us-ascii?Q?B++QfFp+AwpOfeNcITYFJa2YdZMYGNWDSsJDaW95oq7JGRELrBE1cHJnj0Ga?= =?us-ascii?Q?iry2bxCkzbxn2ZiSTHY8I6CaOheumqPs4jKQQs3+V03QdzllfxQtE0W6/zcQ?= =?us-ascii?Q?MCXUWUxH2ZpshTK+GBMNw1zRQ1UzqykEDgTdgjvjqehpTzaOI7kagysyLbkV?= =?us-ascii?Q?r4aQ2w6JU+D5eNAzx/uvezXRhK+DIBMwpFGCICDirSchuTyX+lhPdtKj+rIi?= =?us-ascii?Q?8jMwf8cfWw=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2e2c159e-50b8-41ba-d826-08df12d5fde7 X-MS-Exchange-CrossTenant-AuthSource: LV3PR12MB9356.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Sep 2026 03:04:00.8813 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: jTD2hrwD2UuN40PgS1fN/oNq4wxEkyp4XpEfV2xNhvqvv8njY5hR/aYCuJ6qQ+P4s+mxHoS9iq6QsfO5HZnPJw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB9008 Content-Type: text/plain; charset="utf-8" The static rwsem initializers rely on persistent lockdep class keys, both for their own maps and for embedded locks or wait queues. Enforce static storage in DECLARE_RWSEM(), including PREEMPT_RT, and in __DEFINE_PERCPU_RWSEM(), covering both public per-CPU rwsem declarations. Automatic objects must use init_rwsem() or percpu_init_rwsem(). Assisted-by: OpenAI Codex Signed-off-by: Yury Norov --- include/linux/percpu-rwsem.h | 4 +++- include/linux/rwsem.h | 7 +++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/include/linux/percpu-rwsem.h b/include/linux/percpu-rwsem.h index 39d5bf8e6562..680c3efc14c8 100644 --- a/include/linux/percpu-rwsem.h +++ b/include/linux/percpu-rwsem.h @@ -2,6 +2,7 @@ #ifndef _LINUX_PERCPU_RWSEM_H #define _LINUX_PERCPU_RWSEM_H =20 +#include #include #include #include @@ -36,7 +37,8 @@ is_static struct percpu_rw_semaphore name =3D { \ .waiters =3D __WAIT_QUEUE_HEAD_INITIALIZER(name.waiters), \ .block =3D ATOMIC_INIT(0), \ __PERCPU_RWSEM_DEP_MAP_INIT(name) \ -} +}; \ + ASSERT_STATIC_STORAGE(name) =20 #define DEFINE_PERCPU_RWSEM(name) \ __DEFINE_PERCPU_RWSEM(name, /* not static */) diff --git a/include/linux/rwsem.h b/include/linux/rwsem.h index 6a1a7bae5f81..faf52c0c8dd3 100644 --- a/include/linux/rwsem.h +++ b/include/linux/rwsem.h @@ -8,6 +8,7 @@ #ifndef _LINUX_RWSEM_H #define _LINUX_RWSEM_H =20 +#include #include =20 #include @@ -111,7 +112,8 @@ static inline void rwsem_assert_held_write_nolockdep(co= nst struct rw_semaphore * __RWSEM_DEP_MAP_INIT(name) } =20 #define DECLARE_RWSEM(name) \ - struct rw_semaphore name =3D __RWSEM_INITIALIZER(name) + struct rw_semaphore name =3D __RWSEM_INITIALIZER(name); \ + ASSERT_STATIC_STORAGE(name) =20 extern void __init_rwsem(struct rw_semaphore *sem, const char *name, struct lock_class_key *key); @@ -164,7 +166,8 @@ context_lock_struct(rw_semaphore) { } =20 #define DECLARE_RWSEM(lockname) \ - struct rw_semaphore lockname =3D __RWSEM_INITIALIZER(lockname) + struct rw_semaphore lockname =3D __RWSEM_INITIALIZER(lockname); \ + ASSERT_STATIC_STORAGE(lockname) =20 extern void __init_rwsem(struct rw_semaphore *rwsem, const char *name, struct lock_class_key *key); --=20 2.53.0 From nobody Fri Sep 25 08:46:28 2026 Received: from PH8PR06CU001.outbound.protection.outlook.com (mail-westus3azon11012031.outbound.protection.outlook.com [40.107.209.31]) (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 AFF8A3FE66F; Tue, 15 Sep 2026 03:04:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.209.31 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789441458; cv=fail; b=gkO8QQOU04nHuxhQyLdN1sLJ+aAg/PWphhaf1B+Na8LfhoWnsFfvNdaMsp+7Jq2srHtV7Z1FmTM+RYkAIBFNxL4s9vbzYmuaLbl21d6QNsmmJ/IFSBG7iGihx281tkopArNjdr80gUk5JkzRY+0R1+ecJWakAIDBf6lK4ms/5Dw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789441458; c=relaxed/simple; bh=h7Eg81b3sjWAAl9m3hmMefQCUZ1FT7WjzRqA2vF+bpY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=H7/WieytCigqy13QvHBmQqixQaxo0OFNLMiB/tRN78z5V4NMcQoSsjeg59w802QIJHROlApRy2WUH/epFyy3/er0Se+Zbz3FwpyKb5EYHBMeuRAEFuhG2miR6jy/r9fx4nvW9K1Zydab32ErZMfMwBn/R1sP59J7PmOvXCzOysI= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=nxh1eImv; arc=fail smtp.client-ip=40.107.209.31 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="nxh1eImv" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=fchjpttpYQw7gHsVsRX1kyUJomwt+eRut2pL5OyYrmh6xvB0tzBHteHORXLpWnvclMazV/4vxZ1cccofeML04jQH7669PAo+GW+M+hOv0LDSWMNFPkUjzfDe4bBkXWKHj/GOjMKV0bZ3McqyrcBdd4r9u/DF7oo3hbMW4hMoCeoAKTvSXgBvCcJxLgS1aVYDUkSJcvIA3EXAWNjUrWurZrAFOh99vrjL6ttkYCDRqYYiteI2D133TflySiiQY6kPcug21wShgZC86N7Efaj5HbAuinj2glYOfYpbRoxFBlwSLy+fIt85uupAf/m7r7urSgy1r8UKYGkdP/p0q2Cg8Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=3LoA7qyQsBYaWdR45BieXiHlYTj4JVd8bya3UuSgaog=; b=RD2Oz2np7qKy26gigxdnFdL7qDX2KS2kLGg1cGqJq4137pQLXCAzGhMLQsqLzeXnid8+fxZm6C6G5c8c8N+ntOFbSUYJrtgmeQCi7xMj0LLYMaP0rs+HoQSqIhOCaihJDC6BlK1AS1No/j6LcAhnV6PSn9tSvkD4i08oyuRYuigEK7ybpfhfmSwQeBbrydojQv0IM8XIKd+qrwpunLIuFEhXEkl9gBPoIgS3h5lpv8MjsvW6yoOPlJ2DhWugL8bpxaK4CwFfc2u11CzZL3VGjv3RlJLVEB41RyrCDjx6x4fiVZFBPp6uOyJDng3hEVWaHefH6rWJ4TcZAmNVnJtqYg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3LoA7qyQsBYaWdR45BieXiHlYTj4JVd8bya3UuSgaog=; b=nxh1eImvHSDtnGUY9rCHr9be27/HwMl6GeZGBpikOantYMvWrbu8uqUFQkG/H01Nw+e1rDw+Y8lJzyJQSlUJbZ+s+IaQ58BWYOtBEQsTTG0LK4sawTd5kv5Gii0y34blRkrxXKdbNuidgiUjk7cIGj5xYGUj7CcpjayXQu8v6Z+5TdvZU/uQjyALqk0gc9d5kcS85Y8z0XyzRoKcPhJ4cbuVnpd3fyQIfcYosuH2LFE86DACMfMWWQtAhagp4wm4gNTYWdExjEiBt7EDnQw/dxiLckZTH1/zcyA9GoYO+WFrqAjhE6nesiiX/xYEBE+SGBUfI5hyAsX4x8GZL9PAfQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from LV3PR12MB9356.namprd12.prod.outlook.com (2603:10b6:408:20c::21) by SJ2PR12MB9008.namprd12.prod.outlook.com (2603:10b6:a03:543::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.12; Tue, 15 Sep 2026 03:04:05 +0000 Received: from LV3PR12MB9356.namprd12.prod.outlook.com ([fe80::1c36:31b4:c420:6286]) by LV3PR12MB9356.namprd12.prod.outlook.com ([fe80::1c36:31b4:c420:6286%5]) with mapi id 15.21.0406.007; Tue, 15 Sep 2026 03:04:05 +0000 From: Yury Norov To: Andrew Morton Cc: Yury Norov , "Jason A. Donenfeld" , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Matthew Wilcox , Peter Zijlstra , Ingo Molnar , Will Deacon , Boqun Feng , Waiman Long , Dennis Zhou , Tejun Heo , Christoph Lameter , "Paul E. McKenney" , Frederic Weisbecker , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Uladzislau Rezki , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang , =?UTF-8?q?Onur=20=C3=96zkan?= , Kees Cook , Joel Granados , Anna-Maria Behnsen , Thomas Gleixner , Juri Lelli , Vincent Guittot , Dietmar Eggemann , Ben Segall , Mel Gorman , Valentin Schneider , K Prateek Nayak , Mike Rapoport , "Liam R. Howlett" , Lorenzo Stoakes , Vlastimil Babka , Jann Horn , Pedro Falcato , "Michael S. Tsirkin" , Jason Wang , Xuan Zhuo , =?UTF-8?q?Eugenio=20P=C3=A9rez?= , Sebastian Andrzej Siewior , Clark Williams , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, wireguard@lists.zx2c4.com, netdev@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, rcu@vger.kernel.org, virtualization@lists.linux.dev, linux-rt-devel@lists.linux.dev, llvm@lists.linux.dev, Yury Norov Subject: [PATCH 04/17] locking/semaphore: assert static storage for DEFINE_SEMAPHORE() Date: Mon, 14 Sep 2026 23:03:22 -0400 Message-ID: <20260915030336.1192299-5-ynorov@nvidia.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260915030336.1192299-1-ynorov@nvidia.com> References: <20260915030336.1192299-1-ynorov@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: LV3P220CA0008.NAMP220.PROD.OUTLOOK.COM (2603:10b6:408:234::31) To LV3PR12MB9356.namprd12.prod.outlook.com (2603:10b6:408:20c::21) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LV3PR12MB9356:EE_|SJ2PR12MB9008:EE_ X-MS-Office365-Filtering-Correlation-Id: 19dc4a90-30f5-4bb1-852e-08df12d6004b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|23010399003|376014|7416014|1800799024|10067099003|56012099006|11063799006|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: dIOZvI9mZD8/RJqyRIG5gU8/vsHpEV6ng3gegSD1t2zZjeYkvOKC4raBRJTQMArjKIHJmASrxmcJcTXihdHr54jFqvs/j2PfW0HL5ZndTyj7JwsAvtFPvTJZ1mj4VYA2swhzCjB43OZ0YGt2QkWTMkpQk9MBC+Dm65ptD4OivcPnYVxTe+lI1CWV35++PAK3GNpSwXqcA3ZVG1Vz7GgoBlalTBTmMcwDE/1f6Ho7tDbH6oiAqkdsKuuWY79G9ffUhKOpLi0ucyxo9mt1CPPGPsHCaWWQcU/hHkicokqVX+jXljGS+MV1YFi/F6FAaIsU//0C8CQmd6ywGCzncpr8/gsDD3zN8ZdvyOgTno2TWRjqHUG04MdmYPxHygKEqMQYtQ9EPl2XRCGl+sbzhBl3cpQF+tEyNx/aA2X1asTwUBoXt0fRALRil8I50Q/x2Qj3aiCHV7/c5Qy2VySEf9llYMJG9I99b7NPIQr0jjnIl7+QeB4ciZhNiKcWr99WHz0xn6K+02n/aK1i3bghS4ER7s9VBmsdf+SMYwJXjviSVjzTM/eodyXGwmCqXS6r9ILM5YjP5/4yMJUcJOhCbDBm6dnzUYXEVkvfCGxnB6BeGXwvY0I9jvgp2ot84JrihAvXtPAPGyPeI6/xwtmv8E5j2k/82xKf8XtbPsEXvPmDvHQ= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV3PR12MB9356.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(23010399003)(376014)(7416014)(1800799024)(10067099003)(56012099006)(11063799006)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?poD4KC6O5dXlqe1LK4cePsrCfA08HcuJ8adunrnPBw6F/bTRAiWBohsZnt9X?= =?us-ascii?Q?IoLFuk11aTDhcgh7BxWXN8rUarte9oWj/7r1Ky0cCRTIn9TEyPhBnA51v9QA?= =?us-ascii?Q?r74yGiDh6Dn4s3DRxh6bD39a2GkI0Gl1XOOOzHSndPSB/DHfn8pPc2FKLfQT?= =?us-ascii?Q?cbTsurQBOx2rB1VMREuO1xYctNRqXFvURmUYQwwtB0BX8NBEDDyaNXiw1xC2?= =?us-ascii?Q?+FkRsOCQi+PszT7FbSkA1DGrqsu6n2hebnRzdv92gk709SRSJq6scNaQQUa0?= =?us-ascii?Q?fT1LwgxJsePyRI2V9mTBrKoIeEgeovYMKLU99dpR6LZt+mTSSnczPyUWaMuA?= =?us-ascii?Q?/tEiHPkOqVW425lAdS3R87HRrQetB2begoJUsnm9Dgd/AeqS3FpyF+SoHRYY?= =?us-ascii?Q?gpMTL6gIIBCLtn31av/qrRPoD0kQLpHvo1GtO9uYuFbMeHkpMzMdRDmnufsL?= =?us-ascii?Q?vLc+PL9zMVCAyzYNz8MWC7vAKg4+5Ab6Y1fhKeOln2yBY1pxFTLyBM2p17/+?= =?us-ascii?Q?Bo5BYaFAWkxW8J0Dz469fheHPfSuEI05CQN/EcbCR5csNCMyzgpSD5ADf8EP?= =?us-ascii?Q?/qUsWiUo9H0bf4pCWSl/Jh1Dk76sSerb9FC9ADvngR7S6l2n+66CoE4YrE2c?= =?us-ascii?Q?4OLra3wAQAKO5Cm1U0jhg440D6SN+QdhZ/G3tHnws860EXZNPTn1qQqhHCFm?= =?us-ascii?Q?hEa4ORcKCRtETplCAhKsY2I0TS74tNbmWq3AcDT9CkjIAFmmUgSuxCByySkw?= =?us-ascii?Q?D6vX3oMKCiaDbXFXbsq4AKV8tGSy3HkjRhh7beNbwvxMN5L0NDBzGF7BemTz?= =?us-ascii?Q?uXE5447YV8NHQtDMiVUGcD6xhnFplz8qDBXlvN/B+EOdzR9Job+OlpF/v/eI?= =?us-ascii?Q?0JwmmLLHjfVKIgde/ZM6bXjqfWeWbDvjaf7LDL05CVRac/S7HxtUpLACJ093?= =?us-ascii?Q?7scKDCcMjEDF0avQvkLsjjEBvvHFDD7A9SvJbVoB/rc6oFcwGPcmVjLcVXsn?= =?us-ascii?Q?qUnGTgjc8IdZXz/0ZxlqVL0vnFDed+qVtJjzNmbIGngz2aOuiyXU6A89OW85?= =?us-ascii?Q?1TIvGUD9AGaorn5/8XPmqr/FbbP+YDH0behdXXValFNb1s9RrmCee9nzTNXr?= =?us-ascii?Q?MX9KX2rdKDBNHfhAl3/kcatquuyWxEgJXFbMI+1TyLa0ItgcFSyOKtsuhaPP?= =?us-ascii?Q?pq33ySGxD2VVVBnGreEb76q7WvrxVahzaT6oGwE4Yatyl6nUgcVJZwGlfcZu?= =?us-ascii?Q?eTuaXEp0SEnfkVkPn8QJeS4CG7yro+tUcGpsEGVaS0bZu0YZC4SNd7aCQzwc?= =?us-ascii?Q?xhiXMzjggJqS6jEUh3yWvgi1j6Ir3ecBAZ+EnOLn9Yat7PMm6M3Lk5hPMdQ8?= =?us-ascii?Q?Pt34XNxNmWeG/4QnJwlM/x8e2FW8QrZEJJhcjVEN05KQGllC9aqTjyBUrLZW?= =?us-ascii?Q?m3ysWFGtQM4/xIT4mN5JNswhmqkERgEAoXtdcVvS1DclP4fn6LVuAG9JzD23?= =?us-ascii?Q?BJIxTIBfeuYCEPXtR6fsA4kCZz1ZzeJaALTswwZR6bmEYm7dfbK0Ln83Xl2N?= =?us-ascii?Q?rmoicjAYsEOmfVoGyJLnUK8MESiudSEWOZug1rz6ssjl4w2I275ccqPD1upe?= =?us-ascii?Q?iCpPjms9XF4/rDnoK83VKNn/fylrzgwljT0qD8099UgAbd+tpt2eS8noezwt?= =?us-ascii?Q?gbfdlhUXJZjmcqHFZJ5ZwE1Nps+b4bH96BUCQ9WqG4/fUg9MLqw/Sd7MtohN?= =?us-ascii?Q?v4AlVFATgg=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 19dc4a90-30f5-4bb1-852e-08df12d6004b X-MS-Exchange-CrossTenant-AuthSource: LV3PR12MB9356.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Sep 2026 03:04:05.1198 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: hE15KiqnpUa5sqGk+ocy88pWsX+mXOX8No2OlLwrrp8o/wDx/UEhKHS5vMBfVpxBpua7pGMduOQ1FqsrAo45uw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB9008 Content-Type: text/plain; charset="utf-8" DEFINE_SEMAPHORE() statically initializes its embedded raw spinlock. Using it for an automatic local semaphore leaves lockdep without a persistent class key. Reject this use with ASSERT_STATIC_STORAGE(). Automatic semaphores must use sema_init(), which supplies a static class key. Preserve the underlying initializer used by sema_init() and by embedded objects. Assisted-by: OpenAI Codex Signed-off-by: Yury Norov --- include/linux/semaphore.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/include/linux/semaphore.h b/include/linux/semaphore.h index a4c8651ef021..c0657a6aeb12 100644 --- a/include/linux/semaphore.h +++ b/include/linux/semaphore.h @@ -8,6 +8,7 @@ #ifndef __LINUX_SEMAPHORE_H #define __LINUX_SEMAPHORE_H =20 +#include #include #include =20 @@ -44,7 +45,8 @@ struct semaphore { * context. */ #define DEFINE_SEMAPHORE(_name, _n) \ - struct semaphore _name =3D __SEMAPHORE_INITIALIZER(_name, _n) + struct semaphore _name =3D __SEMAPHORE_INITIALIZER(_name, _n); \ + ASSERT_STATIC_STORAGE(_name) =20 static inline void sema_init(struct semaphore *sem, int val) { --=20 2.53.0 From nobody Fri Sep 25 08:46:28 2026 Received: from PH8PR06CU001.outbound.protection.outlook.com (mail-westus3azon11012031.outbound.protection.outlook.com [40.107.209.31]) (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 6FD983FF8BA; Tue, 15 Sep 2026 03:04:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.209.31 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789441460; cv=fail; b=EDf9hyXHG5UlWR3teUU8wcMwmBqpIu5qXeYooVm6fMsW9l/A53xh4h8maFwLkHcloh9NXymPqYcUefFTD28POONc8B9lLRBWoC02WAACiDMWsH2UUtp2dwsSA9h4XS2rriZ/vCcRgwbr0+ccQW3GW7T9pWBmxbBGDxNnsrsyk2Q= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789441460; c=relaxed/simple; bh=eZrVwc8XiJsQ5jx9/NXq/QOz9Z2cMQETgEX5xo51BuQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=HZaGuquajl4yK1496ZtLpCY7gbBC5l6ZnIBZLqxRaKz56bpsnFdyIyd2q0nH/U2LvRzze4LPs1b49d9LgdTk3zqMQMfsJu1rnIWWoRGvqJ3KwV+umf/QB2hySFUxPdZt/E+WqedhAV7f9PPOAHaE3viy+r/vTQUGUOgv1bRwVIQ= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=GwIForsv; arc=fail smtp.client-ip=40.107.209.31 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="GwIForsv" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=i+iycThGFGQ31PlAhgLrWphkamlutbXRChZ0QnIGr6AB82JtcNzrjQX0lhNn0xBxmrTe1sUzU2fRfCBnJ6UtjEsgN/OHJ3H7t7ErhbhZ8PmTGtq14z12yCL9iL0DThL5j3AU4YCJEVc8i07m97ut8PH+UBqUqtQRvpu2dKYOuYXeXxDjgeYBiLaluSILCiFwz92Bsl8bq6kbYmkm/ExYTO2pvqgzZ19Bhg0AiPoQqWlf+h+y5Gq3RgBF21n6+zX9gwn+KUNHM1/5kXx8NDycN1KWYI7JX5GLW+yUCNRFbwNBzoDdt4K6VBzA//A6gMrbkbfXWvsyKN6Er3Ub3uYGgw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=KCA4zzDzjR539e8qB1+O4l2WvBXUBcQjWYhI0kLBBXM=; b=EH+TIjvDacpNVhgE+0lWmz6shk1B08nvOJYT4FNTJ6zR5jts9o85obYGT6l8EJrt4wuJbRF8xrzQeOwmbgcbsHSINDD89hY6t6mpYmlHucE+qD0FKMyObNPYTD5qgEbvpWqIUB21CVnXeO9qOlQv5BtISXIJR7g75Xf+4i747Bc5JELfGTKI7AI8tw9ZuI21U4F8WR3I9yX01vVCyGGSeGCXjXg1iMWG7HD+3HYm47DOZkSN8kJ3zOQqYzLavA2VzvRTRyJTr38bApK1j5lNz9XlUhJoo63XCHlbP/fPRjaH5VQ5qYq65V/qcVuepSl7sTTn5i8rTMpkOHVcEMglGg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=KCA4zzDzjR539e8qB1+O4l2WvBXUBcQjWYhI0kLBBXM=; b=GwIForsvvAmzthDF2ztbtVWSMOyzF6/ROfaDEkaRJgsnlUACXWIwqXAQW3hXehhf5L82ooMtfFveY7PeUnkuWlKpNyGQDO49q1K7UO2CSKRgogAtNFzvyi5CYMNUY+ke3oxXuaFuNLy3h1SRI+otPpYxNAMeQJUr+dIysKQRmY7pLFEhHfU8IEDcUSuy2F/ladoRbUnZV6+SagVaTGF3Tme54ScYbP7kvfYb2BJYoe+Rl/oamrYU7medz+bdjyYZt+2aNbXNyOp9fIsZRfaaY1ekZQmCADbFgGS+iUzlVv/AOjK2p4IHTLtDOep36YGQhMoetDKMpxjJDp+qMW0+fg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from LV3PR12MB9356.namprd12.prod.outlook.com (2603:10b6:408:20c::21) by SJ2PR12MB9008.namprd12.prod.outlook.com (2603:10b6:a03:543::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.12; Tue, 15 Sep 2026 03:04:09 +0000 Received: from LV3PR12MB9356.namprd12.prod.outlook.com ([fe80::1c36:31b4:c420:6286]) by LV3PR12MB9356.namprd12.prod.outlook.com ([fe80::1c36:31b4:c420:6286%5]) with mapi id 15.21.0406.007; Tue, 15 Sep 2026 03:04:09 +0000 From: Yury Norov To: Andrew Morton Cc: Yury Norov , "Jason A. Donenfeld" , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Matthew Wilcox , Peter Zijlstra , Ingo Molnar , Will Deacon , Boqun Feng , Waiman Long , Dennis Zhou , Tejun Heo , Christoph Lameter , "Paul E. McKenney" , Frederic Weisbecker , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Uladzislau Rezki , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang , =?UTF-8?q?Onur=20=C3=96zkan?= , Kees Cook , Joel Granados , Anna-Maria Behnsen , Thomas Gleixner , Juri Lelli , Vincent Guittot , Dietmar Eggemann , Ben Segall , Mel Gorman , Valentin Schneider , K Prateek Nayak , Mike Rapoport , "Liam R. Howlett" , Lorenzo Stoakes , Vlastimil Babka , Jann Horn , Pedro Falcato , "Michael S. Tsirkin" , Jason Wang , Xuan Zhuo , =?UTF-8?q?Eugenio=20P=C3=A9rez?= , Sebastian Andrzej Siewior , Clark Williams , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, wireguard@lists.zx2c4.com, netdev@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, rcu@vger.kernel.org, virtualization@lists.linux.dev, linux-rt-devel@lists.linux.dev, llvm@lists.linux.dev, Yury Norov Subject: [PATCH 05/17] locking/seqlock: assert static storage for DEFINE_SEQLOCK() Date: Mon, 14 Sep 2026 23:03:23 -0400 Message-ID: <20260915030336.1192299-6-ynorov@nvidia.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260915030336.1192299-1-ynorov@nvidia.com> References: <20260915030336.1192299-1-ynorov@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BL1PR13CA0065.namprd13.prod.outlook.com (2603:10b6:208:2b8::10) To LV3PR12MB9356.namprd12.prod.outlook.com (2603:10b6:408:20c::21) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LV3PR12MB9356:EE_|SJ2PR12MB9008:EE_ X-MS-Office365-Filtering-Correlation-Id: 59987c62-6fe2-46bf-f359-08df12d602bc X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|23010399003|376014|7416014|1800799024|10067099003|56012099006|11063799006|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: YF9Y6lUKovTQIoQjRjvN1Ul7bNH3Z7xWjOeTZ0X7BTfHyeqMWFgNxGQ7NKNqL52a7b0HYVcjsHeVTn5GGxf2Tsb/QAIboKhRz9zCvhFVNmSKLj87Ek/kPB+IeJAGbRKz7QHwQHTDMHf9yMDnuxtDTk6NSS1t8qkmMHSe3CO83BqFdnwMk3wjv6+/YUUf0NQg6iy0AbnTCIVz8GC70gbDpv5ShM6S7MaM7/orKbKyM+x7Tr2zzlLPlxmy8bvFK0lcIXjXRelwSoh34hK3+yB+zcq98GTOvskba33HeDgcbb/BnLxg0+cT89aoohLwT+hf9dEKUgevo/mCTsH5e64zo9b2AqC9NWlJvd3PF/ch4tFLhuaWN2s1IPGPx81kdUUggvCbq+I17yNyWtOsAgd6RI74SoqnR95PWIWw0WNCWKwWK6IyrFf9+7ZdMt9UFqsaSVuQeC+dQSGHRhuj/e+u/N9AuQmSPqBK3QS2u/1YtZJfipyLhWIU2P/TFT0HO8oCn6YYZvRy9srKJenZFitmmg4fMkh0G4IMN2WxVxW+FSYT4KkyJEOtopeyMQfAeAurHid1XzKS+puQQtVUQGSlZqvp+Pv3uRulaHqC7np7FnpsLZeAalGNWETeJ3+0ed2ameNZ11vIUsRJjW7NVFyZAbKHwvsAP2/sPLCxzGYX2nM= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV3PR12MB9356.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(23010399003)(376014)(7416014)(1800799024)(10067099003)(56012099006)(11063799006)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?vgZApla8m4K0VyKOltDCiW4rqnb+RCTtbvgKtZHDiI/kS7jHAA0jOI+l9z/2?= =?us-ascii?Q?52CIrx1y3y7aCmgqvZ6MOUAf8CBPjQDxJTyeTbc+ook3fHcjjzWUjZxsrETP?= =?us-ascii?Q?zRhWIokNwU2W23LgxTLULjjOR7Hz0NwWIJ9KK6vYnkMPAqvCjKmFrC8sEh6E?= =?us-ascii?Q?lfDAjOAWzqLFLFNfVXuyBp3Yq2NDr8eckJN1jblRgT+GGmkj1eYmRMeqYRnT?= =?us-ascii?Q?pzDl2rko1xDyXpcDSlsrEfsQHjg7hcbOBTLbdfmmGm9NTUou19b9ckGGpIAH?= =?us-ascii?Q?B5eN/VfuOI1VnOWnGu8YFb9TMenuyXzA8F1BaDJOGVtanryhwgfQPhvueFdq?= =?us-ascii?Q?ohcL3lOgGw8zgkD5z22up/XQircUXCvj8c3Dvu8lHcyo5Pcbsu6t35bQ5nyO?= =?us-ascii?Q?7J2SNPGe6degkQNVrm+6GOFC9PQC+q2Z21fd17l+SXprYgjcc/iAYCOnQU8L?= =?us-ascii?Q?eIkXq+0uk5BbOldOR+avApPMEt6sVBah9QRsJxhbEoFU1m5P6e//2le6d+Go?= =?us-ascii?Q?Rhlxu0aSvbbJVXuu7Rll82FJhcM0AeOdejvBvE3X8pOuvGpCXwPFez2ehwxa?= =?us-ascii?Q?OjnjuOiwrsBzI79lqzJ0Lm7dDBFW2mPc5US2M5MqqMEioHWd/seSPZuFLi7e?= =?us-ascii?Q?aEVLsmya5JNfs3eofXkcLt8e3FpeIxXc6voMOvyoZIol8ukxsWTc3EYbMIAr?= =?us-ascii?Q?tRK9HkCDiAFYfAw9tjHCfP/WrVHELt1DBUh98gdrjIT6FiS4DUncoFDqJ+zi?= =?us-ascii?Q?iIds3RCs+1sH6T2DNaARYDYlNfe651cxwPma86C5F8NiBApZXMjZ57bKYlZ9?= =?us-ascii?Q?77bkl4Z14R3bkxYrwmqHLsbWClJuaP6GjyZ8Wi0mrL9a0sjRu2eO+CyyRgSO?= =?us-ascii?Q?gE7MvaVGoL8Io4Ku7U0lBGYUCi6eHTEb5vZL+ARe3CqQCXzXWI+5c3OmDO1Y?= =?us-ascii?Q?g+s8nrXfEHTIMOv0Qq2BxM/SeVtYztgq5CrBLvW3eZrE3Eox0jZZZ0xj075O?= =?us-ascii?Q?mvJ/ao7KV3zEO7jZQmJ+PVxenGok1G5txQZ2d3D4EkGVzK67ohnetfBURMOI?= =?us-ascii?Q?cdUIGLNUWzVkD3Tf9T7cvnKqRWg8z4ay0y3jiFK4R8xsIl3Kd+gTwknJHhv7?= =?us-ascii?Q?iuM/3MMY04lnrrfNeN0Dm2nMUfhDqZdyR5hNqONly3NWEYP+bf/MQU8WXSu9?= =?us-ascii?Q?ritMF3BB4gE/yHe0p4mY/VnIthv0T5Do3zlDPdAz3Nuuy/1+IGz3Ztq14Vn+?= =?us-ascii?Q?bJOZO0LdCGroKcVlKnKy1SG5nNgEyj9yznNi9tav0Tui8ia2m92YSR1CYaDb?= =?us-ascii?Q?kQwmVq+e57/4TUsHJodkiKo74DJEoNmIzhaZuFj7LnZiSQThtCi4uXQzD/DZ?= =?us-ascii?Q?zkO9y7EzUITTkYgFCVpdSYmR/lRzPDUTavkabhEoY128qwtv+D4mpBdkBwwj?= =?us-ascii?Q?oyMH7xIX7SMX1d10y9F+mlkCUuhY1F5neUkJTtEisCBCeIaTgFObqcUEo5Kn?= =?us-ascii?Q?MZgnn7gkHudEfC5qXFbD0XwrDrc2HVZ3WfDiCnvc47LnfQJUW9652TAl64c+?= =?us-ascii?Q?RY8wz/UdFz0Rjfn9nFMWi8plyRRWt3zLU+NU0FzYvTGvNyg6z7YHn4YPxlyl?= =?us-ascii?Q?6EchAXx89tiMxG470HKpctscAbPhCsuCzV2gInga8ijYjbxoNfY1d0hwEZkT?= =?us-ascii?Q?XwJY9ij9DuPblkV/5E9Nqn6leGEV1s1gQ5JlDQVoMtcYemw9JThoWEqHF2gj?= =?us-ascii?Q?4OelspuI+Q=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 59987c62-6fe2-46bf-f359-08df12d602bc X-MS-Exchange-CrossTenant-AuthSource: LV3PR12MB9356.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Sep 2026 03:04:08.9871 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: DMiNxxLAZvWgMVWVKoDdblLRW8aEV0p/dkTaj2U2VB+LCpFq+rt2f7iGbxMGf+Ky9mALijsaCsH7YQZcHpt52g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB9008 Content-Type: text/plain; charset="utf-8" DEFINE_SEQLOCK() statically initializes its sequence counter and spinlock. Their lockdep maps require persistent class keys, which an automatic local object cannot provide through this initializer. Add ASSERT_STATIC_STORAGE() to the declaration macro. Automatic seqlocks must use seqlock_init(); the underlying initializer remains available for embedded objects. Assisted-by: OpenAI Codex Signed-off-by: Yury Norov --- include/linux/seqlock.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/linux/seqlock.h b/include/linux/seqlock.h index f865491c4f2c..2aa793a45213 100644 --- a/include/linux/seqlock.h +++ b/include/linux/seqlock.h @@ -824,7 +824,8 @@ static __always_inline void write_seqcount_latch_end(se= qcount_latch_t *s) * @sl: Name of the seqlock_t instance */ #define DEFINE_SEQLOCK(sl) \ - seqlock_t sl =3D __SEQLOCK_UNLOCKED(sl) + seqlock_t sl =3D __SEQLOCK_UNLOCKED(sl); \ + ASSERT_STATIC_STORAGE(sl) =20 /** * read_seqbegin() - start a seqlock_t read side critical section --=20 2.53.0 From nobody Fri Sep 25 08:46:28 2026 Received: from SN4PR2101CU001.outbound.protection.outlook.com (mail-southcentralusazon11012068.outbound.protection.outlook.com [40.93.195.68]) (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 03B6A3FFAB0; Tue, 15 Sep 2026 03:13:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.195.68 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789442029; cv=fail; b=JOIx9bHVQLdZkXhFqmw7rcfeFAIRkRI5VINOUnDbGLhQbruvMi5vjQCsQB8kkz5i/4x6hx26qyGSRbGjRs7BBtJAE6JArrAF9v+peUs9pxZiDbltlga6afDet3x+tkJls3Rx66CNdlYGAUTnUirMBqwC0LvieRT1dWusXbUSPoI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789442029; c=relaxed/simple; bh=f+LcSZWNsXOJwpFT9q3OpSkBCrgqjF8oGS6KnPja2Tw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=NzodX7Bf9/SUSIJzwsnWnJPANc+lwi11sRCyUIFiHDCzclo3lPCM9s0CYJz2yGt3fNKsUWLIYolb2U/cnRyGNeQ2Q6zFiBgHVPRzHw/fsk+w11AQyNOLJbfK3Q5pq5PyLQM0rOCpy/ZHV9gjsGPwILGOqxeE0B7DhkUi3vdXOII= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=NYjcGaMj; arc=fail smtp.client-ip=40.93.195.68 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="NYjcGaMj" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=xBqX0MhONTAsWGCZi43m1LDhqSV3TFqEUErruxKKioVOW6/IPiR29/3quIW810J6xsEYyJcknpPE4EbeqQfegPl5l1OwQ58fdP6j1NLOXSndi/Bj7DJxa+CoaDNhW2YqFWGyPmj3vQ9OBqMveTY2dGBumHIgRWokIxKplLT2FC7EPZPdReVDXHo+rK7JesNRlTxepdsTeFYIzkB3HTfLBfu5IMDCu2gjpJrVQzny12YB4rVjGzLeSK44MxDbKrltCaiJd7x6GPfaEpA153D70J9nkkoCok7wtG1Ry/M7gPHl/8w/U1mvQj7zQRYxaiS1qFihxHOO/K2OMY68XYZ3lw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=dqRyWUarxerox1+/UpOmKP1szaDVGaDMR23jroEMFj8=; b=VSBnw5qmfQnTnIHrZFYl5Nbb/n2d/DpMZi+rshg6zy1jSoJnwQpweUzcD14O8oAN1PY3+U4VY+pHiN3RYI7qHKy2/EmxaSn0uRbpipxnRKKbYC0KqLHGOtx9Ay/wpmRxsKfCAdb4SHAwuCH9aem51R9fKuYRGo9wOgy+G99rDVc1/51gfItPRiJUsH02aH1rHloPwvCwJQRuraoPTCiHLGfVbsCTgL90v6dWZv8BmOm+wYEJdBQAcH+lrPrEqc6aI/M59/xF6mTNkp5W/ewKkk4qazkw9usf1HN8mrTa4dokwAFZ0w0MatS0ql40dQXB28qkvfvhcFn9O+YJ1sADTg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=dqRyWUarxerox1+/UpOmKP1szaDVGaDMR23jroEMFj8=; b=NYjcGaMj3if2jftwR5RBvlcyeThgu20WdTtiiP+qrc0QnzzrukqD5VELP0yOBOKSnBGuXRCff01nzwV3/ZUW0+oVZG7zk9pQ2eGkbBC+im+B+o2uUwrKTHkPbqHNP8hT7OPMA1PPR+uPvms9ep67AhkStFaKgfoRqRBssaAICD/W7AF/TC6hs8nu7vUshaXvrdU/TogUnuQINKCgIBj06orxrzj3axsNu4rBNO2XkZxZenmlUz0ms4ogDwaiOzN3e8ze0Mou7TAauc35frcwlrSMNunXBJjxfjAoT43LbvRhjvjF6wCJ363Lr1koQic2bFvWmYZJ2YxP59co9TaEIA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from LV3PR12MB9356.namprd12.prod.outlook.com (2603:10b6:408:20c::21) by SN7PR12MB7834.namprd12.prod.outlook.com (2603:10b6:806:34d::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.12; Tue, 15 Sep 2026 03:13:39 +0000 Received: from LV3PR12MB9356.namprd12.prod.outlook.com ([fe80::1c36:31b4:c420:6286]) by LV3PR12MB9356.namprd12.prod.outlook.com ([fe80::1c36:31b4:c420:6286%5]) with mapi id 15.21.0406.007; Tue, 15 Sep 2026 03:13:39 +0000 From: Yury Norov To: Andrew Morton Cc: Yury Norov , "Jason A. Donenfeld" , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Matthew Wilcox , Peter Zijlstra , Ingo Molnar , Will Deacon , Boqun Feng , Waiman Long , Dennis Zhou , Tejun Heo , Christoph Lameter , "Paul E. McKenney" , Frederic Weisbecker , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Uladzislau Rezki , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang , =?UTF-8?q?Onur=20=C3=96zkan?= , Kees Cook , Joel Granados , Anna-Maria Behnsen , Thomas Gleixner , Juri Lelli , Vincent Guittot , Dietmar Eggemann , Ben Segall , Mel Gorman , Valentin Schneider , K Prateek Nayak , Mike Rapoport , "Liam R. Howlett" , Lorenzo Stoakes , Vlastimil Babka , Jann Horn , Pedro Falcato , "Michael S. Tsirkin" , Jason Wang , Xuan Zhuo , =?UTF-8?q?Eugenio=20P=C3=A9rez?= , Sebastian Andrzej Siewior , Clark Williams , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, wireguard@lists.zx2c4.com, netdev@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, rcu@vger.kernel.org, virtualization@lists.linux.dev, linux-rt-devel@lists.linux.dev, llvm@lists.linux.dev, Yury Norov Subject: [PATCH 06/17] sched: assert static storage for wait queue and completion declarations Date: Mon, 14 Sep 2026 23:13:21 -0400 Message-ID: <20260915031334.1194975-1-ynorov@nvidia.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260915030336.1192299-1-ynorov@nvidia.com> References: <20260915030336.1192299-1-ynorov@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BN9PR03CA0245.namprd03.prod.outlook.com (2603:10b6:408:ff::10) To LV3PR12MB9356.namprd12.prod.outlook.com (2603:10b6:408:20c::21) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LV3PR12MB9356:EE_|SN7PR12MB7834:EE_ X-MS-Office365-Filtering-Correlation-Id: 6ebf14a0-690a-470b-2fe4-08df12d756d2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|23010399003|7416014|376014|10067099003|6133799003|22082099003|18002099003|56012099006|11063799006; X-Microsoft-Antispam-Message-Info: ujyqsv8Mqu+RzMSRTubhAvIjC+pSD+Y3sdRtDBO/n39giiuPlJMBXGmZdOEeT0I+leInLRB8J/fTyydAG54ZlO9PQ01owGs2Gt+xn9pI53OHJ1O9VC4BnrcMkQnV70aFYp84qp9gKRdVyIYP4h1bj9yv1iCY5nxvUsFy5e1prdlf00IEuzCTNqm9g5SZlynBM9YZ+9520ElXmjNVMC4KeJsPuxvbboDQ1Z59WPDp/wVStKzudDrXrmz92RrpxrhiBliGkUNnuWxXppHPMucEQdmOkJIA37JhkR9gEtVilGX9kXsCb47X4bneFV4ZVkQkR3QDHXMkeQc6pGNJm4m70VmaWtrQGa1V8qBNrpSMYtvVE4bd9gcgFt4RTiY3FxOT+rZ10l4Vrouo0NOh+mLBSmXN2MIQPhbyAWt4ScrB+V6rzlM8qRvU0UZJKE4Gsoed3bDrJDcuaUBOA6/nls0p+ajLNQMbsP34on3ewS+w93gCYarBNwd4y0p0bLE68RPpRZa4lzgfQ3vX3kgVzNOdmZV7U4wDCIsd0d1+zVDpASGjyWAzVj7TdEP0Lh0NS1j04L1y/pA6IalAB3kH/fMtOo9+01djFPtNp0jF2r+Vq2t9kQiVeKx9BmfBPgZGTmWpxm3OyZdYrgehz+kgCmBrhL3KJwYghxgNOcOB7U2pxTM= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV3PR12MB9356.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(23010399003)(7416014)(376014)(10067099003)(6133799003)(22082099003)(18002099003)(56012099006)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?GwQ0nzLyGOSpnO4x6m1AwRPoycDPenQAJwOp3HCgmO5Rx4gV4cUTIyLuTjcd?= =?us-ascii?Q?e9WR7oDZjUm+rFdlII830gr8AF4UkT0qsgDgLBOfNu14emhfqlxd0GAEwwuT?= =?us-ascii?Q?ScDvP+lrwLY4/p+kkGmVlWqV/nzIdBHkR1z6IP5UqF8bIl7GJQQVeHSj/oAS?= =?us-ascii?Q?J7I8o0vI+BLZSuu50JuEbD53ThufULWIZOMi1rcQLlfg8BcZJJs7N6+kyQmQ?= =?us-ascii?Q?F6uyrxJqA1kW4xDrPIr38rL4cHrtJE7nv46rZuszNdk5bdQL4JFKrO4bx+oD?= =?us-ascii?Q?AahxHPpwRvTDb5DSAWBOXIrvZmJwyTx6yv2nm+fyCOJN8kOpRWFoJg0xGWqO?= =?us-ascii?Q?Ptvx2NhtfdTbIuRnwNNrzi+BwG3Rv3Lfyy8+e+FDRFgW7jmaNENrR1D6Tt7z?= =?us-ascii?Q?Vq0VQ1TbjnN/Jp9jnsHWcZh4j8YYAubQppTfJV9zQKiGbg8/vUoaTqMP68h1?= =?us-ascii?Q?LkDnWEqu0vwpb3hH3Dh6NfCR1nVQqW00tkS7aCmHc5Q322SYRoCTtHd0b/nd?= =?us-ascii?Q?wunSVLuaycrodKAfirqbdjgYihzUxAtIpPR4kdi+5LCEtI9fUId6iTaYwDS1?= =?us-ascii?Q?1wGHm/na81xBfd++O1DCOOGfwjtk6+1cIT11pkYVH/e/q6X8pRran74Mqnr5?= =?us-ascii?Q?ZdO0xAv0jU+kxG+cdcqJZE2kwnbcbHKoJx2mheXFKemjfi59Be3CkeySOf5l?= =?us-ascii?Q?DS/mir8udq3wnPvC6HS3UoOgnW5U0CIld3wCIng6rMyDdjC81GUqKuFpWPVV?= =?us-ascii?Q?gucji7rT7s+1MaxdRVPfPKX2MXeDHABrQ0QrkC64HKlyiLgeF0cbDHUO51Ho?= =?us-ascii?Q?l08oQKEUrpzNdZGVR5vaA5G9iziDxRtDYQ6qWpBSVoANR9BPTUr1LGrBq/p3?= =?us-ascii?Q?U3Pi+BOiy8OjuYInqvEQuawTjl5dFKEQNeSKNLF/ZNtVoAM7SxKOVjbO0CIo?= =?us-ascii?Q?k7y1T2IKO3tAYcedz536hm3j6JdmbQCkn0txfmzhmehYURRuFC71BC4dQrK0?= =?us-ascii?Q?bgiO+sQhzoztGVHHSWr8/46zAVf2oxXjPncGGnK/eGCi2TCRMIKYDcRj+8aA?= =?us-ascii?Q?8D0xGAGI3NGb/KqNcBlqrE7aQMnt7J31ChB31+stDYacjDGaqVU9UK7PbOp3?= =?us-ascii?Q?laniq/gvDP5by/IOG27WvDojkAfJGCKOrkZkJBaevZb3KpZoWYqk8WJvZBRZ?= =?us-ascii?Q?WYCCA41A2yTX4IWouzsC8d73PwmyT6VLxNcAEvHtB6/Td6h0PS7xy9idrqs4?= =?us-ascii?Q?HpFVrNc/5hSFQuZ7hMCjgYWkv47YmABqg9f42nKuKmSwnSGmnxu3CqiqXgRp?= =?us-ascii?Q?FJfYpiwC3wGAEyw9ORk1zyYwTsxQEgiUNPwpt7uww8j5XSBVBTV+stlM/8eK?= =?us-ascii?Q?kxQLN1V9F0M/VcxOLr+ZxZbPAolOJ/m8cKN0JRTgbe38UxtlnPl/yd74pOr0?= =?us-ascii?Q?LdsmVAEMJsiaQKInhwc0MZuoU3TYzRTAhA04/053GvtsEWmHMd5yxeLZ2y7u?= =?us-ascii?Q?HHOz8/K/vXVTugKwbvtXr5IZZjRo9U7css+TL48ZXQM51JWr+9W11t8geOYS?= =?us-ascii?Q?hVf6MPEPqFPudEnPO3ZJ2blf8qRS7/ImQ095AbnaiCDC7U4YhuSV2iCNV+0Y?= =?us-ascii?Q?B1l3NKRnjFNIhNbSax6EznsrNVpx2PjG/sDm2TI6u0HN4Vs4yEwca6KQtej/?= =?us-ascii?Q?VeuZ/FgvO8WIXjbzKuVUmVYWaesHFsf2RL7CuHKj5Bw4q7bOxbjsS3XUDxGt?= =?us-ascii?Q?DKj8XDP93w=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6ebf14a0-690a-470b-2fe4-08df12d756d2 X-MS-Exchange-CrossTenant-AuthSource: LV3PR12MB9356.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Sep 2026 03:13:39.5945 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: F227rWTftCNds1bLAmXuJ9ypEQHbFJoVXfzgyM1if7ZeV0RA0vWTuPu4huoGwpJJ7VX1izhWmxwACme9kZ54Ig== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB7834 Content-Type: text/plain; charset="utf-8" The ordinary wait queue and completion declarations statically initialize their embedded locks. Automatic objects need runtime initialization so lockdep receives persistent class keys. Add ASSERT_STATIC_STORAGE() to DECLARE_WAIT_QUEUE_HEAD(), DECLARE_SWAIT_QUEUE_HEAD() and DECLARE_COMPLETION(). Keep the _ONSTACK variants usable without CONFIG_LOCKDEP by expanding to the underlying initializer instead of an asserted declaration. Convert the two automatic completions in the AMS PMU driver to DECLARE_COMPLETION_ONSTACK(). Assisted-by: OpenAI Codex Signed-off-by: Yury Norov --- drivers/macintosh/ams/ams-pmu.c | 4 ++-- include/linux/completion.h | 10 +++++++--- include/linux/swait.h | 6 ++++-- include/linux/wait.h | 7 +++++-- 4 files changed, 18 insertions(+), 9 deletions(-) diff --git a/drivers/macintosh/ams/ams-pmu.c b/drivers/macintosh/ams/ams-pm= u.c index 1c3ce39e9a59..046a7d5dc5b2 100644 --- a/drivers/macintosh/ams/ams-pmu.c +++ b/drivers/macintosh/ams/ams-pmu.c @@ -48,7 +48,7 @@ static void ams_pmu_req_complete(struct adb_request *req) static void ams_pmu_set_register(u8 reg, u8 value) { static struct adb_request req; - DECLARE_COMPLETION(req_complete); + DECLARE_COMPLETION_ONSTACK(req_complete); =20 req.arg =3D &req_complete; if (pmu_request(&req, ams_pmu_req_complete, 4, ams_pmu_cmd, 0x00, reg, va= lue)) @@ -61,7 +61,7 @@ static void ams_pmu_set_register(u8 reg, u8 value) static u8 ams_pmu_get_register(u8 reg) { static struct adb_request req; - DECLARE_COMPLETION(req_complete); + DECLARE_COMPLETION_ONSTACK(req_complete); =20 req.arg =3D &req_complete; if (pmu_request(&req, ams_pmu_req_complete, 3, ams_pmu_cmd, 0x01, reg)) diff --git a/include/linux/completion.h b/include/linux/completion.h index fb2915676574..b514b5555722 100644 --- a/include/linux/completion.h +++ b/include/linux/completion.h @@ -9,6 +9,7 @@ * See kernel/sched/completion.c for details. */ =20 +#include #include =20 /* @@ -50,7 +51,8 @@ static inline void complete_release(struct completion *x)= {} * variables. */ #define DECLARE_COMPLETION(work) \ - struct completion work =3D COMPLETION_INITIALIZER(work) + struct completion work =3D COMPLETION_INITIALIZER(work); \ + ASSERT_STATIC_STORAGE(work) =20 /* * Lockdep needs to run a non-constant initializer for on-stack @@ -70,8 +72,10 @@ static inline void complete_release(struct completion *x= ) {} # define DECLARE_COMPLETION_ONSTACK_MAP(work, map) \ struct completion work =3D COMPLETION_INITIALIZER_ONSTACK_MAP(work, map) #else -# define DECLARE_COMPLETION_ONSTACK(work) DECLARE_COMPLETION(work) -# define DECLARE_COMPLETION_ONSTACK_MAP(work, map) DECLARE_COMPLETION(work) +# define DECLARE_COMPLETION_ONSTACK(work) \ + struct completion work =3D COMPLETION_INITIALIZER(work) +# define DECLARE_COMPLETION_ONSTACK_MAP(work, map) \ + DECLARE_COMPLETION_ONSTACK(work) #endif =20 /** diff --git a/include/linux/swait.h b/include/linux/swait.h index d324419482a0..caa3028d1dd0 100644 --- a/include/linux/swait.h +++ b/include/linux/swait.h @@ -2,6 +2,7 @@ #ifndef _LINUX_SWAIT_H #define _LINUX_SWAIT_H =20 +#include #include #include #include @@ -64,7 +65,8 @@ struct swait_queue { } =20 #define DECLARE_SWAIT_QUEUE_HEAD(name) \ - struct swait_queue_head name =3D __SWAIT_QUEUE_HEAD_INITIALIZER(name) + struct swait_queue_head name =3D __SWAIT_QUEUE_HEAD_INITIALIZER(name); \ + ASSERT_STATIC_STORAGE(name) =20 extern void __init_swait_queue_head(struct swait_queue_head *q, const char= *name, struct lock_class_key *key); @@ -82,7 +84,7 @@ extern void __init_swait_queue_head(struct swait_queue_he= ad *q, const char *name struct swait_queue_head name =3D __SWAIT_QUEUE_HEAD_INIT_ONSTACK(name) #else # define DECLARE_SWAIT_QUEUE_HEAD_ONSTACK(name) \ - DECLARE_SWAIT_QUEUE_HEAD(name) + struct swait_queue_head name =3D __SWAIT_QUEUE_HEAD_INITIALIZER(name) #endif =20 /** diff --git a/include/linux/wait.h b/include/linux/wait.h index 7e215330199c..5c7d49187396 100644 --- a/include/linux/wait.h +++ b/include/linux/wait.h @@ -4,6 +4,7 @@ /* * Linux wait queue related types and methods */ +#include #include #include #include @@ -57,7 +58,8 @@ struct task_struct; .head =3D LIST_HEAD_INIT(name.head) } =20 #define DECLARE_WAIT_QUEUE_HEAD(name) \ - struct wait_queue_head name =3D __WAIT_QUEUE_HEAD_INITIALIZER(name) + struct wait_queue_head name =3D __WAIT_QUEUE_HEAD_INITIALIZER(name); \ + ASSERT_STATIC_STORAGE(name) =20 extern void __init_waitqueue_head(struct wait_queue_head *wq_head, const c= har *name, struct lock_class_key *); =20 @@ -74,7 +76,8 @@ extern void __init_waitqueue_head(struct wait_queue_head = *wq_head, const char *n # define DECLARE_WAIT_QUEUE_HEAD_ONSTACK(name) \ struct wait_queue_head name =3D __WAIT_QUEUE_HEAD_INIT_ONSTACK(name) #else -# define DECLARE_WAIT_QUEUE_HEAD_ONSTACK(name) DECLARE_WAIT_QUEUE_HEAD(nam= e) +# define DECLARE_WAIT_QUEUE_HEAD_ONSTACK(name) \ + struct wait_queue_head name =3D __WAIT_QUEUE_HEAD_INITIALIZER(name) #endif =20 static inline void init_waitqueue_entry(struct wait_queue_entry *wq_entry,= struct task_struct *p) --=20 2.53.0 From nobody Fri Sep 25 08:46:28 2026 Received: from BN1PR04CU002.outbound.protection.outlook.com (mail-eastus2azon11010020.outbound.protection.outlook.com [52.101.56.20]) (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 713DD403B17; Tue, 15 Sep 2026 03:13:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.56.20 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789442033; cv=fail; b=gBmWUbXW6GuCC6zJBAPBxC3FicJgsxSlgtHdgDSwu2KdqkvJ1qSFt7FVlt5FD5tR+dTfeO3TtHbl6lNAOTsbAjprjFgWlvupxjKgM3fmxkOsno2KHHCFIBmAA1tCKqzckQBpEDrN1EyIogJcC1PrE3ARglCGuKyETzXJan9qCjE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789442033; c=relaxed/simple; bh=iuX7islivCBidHoUHnYzWP4L1ySvS9k8rwpyQiri2PU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=AUBtu4rDe+MWkUh522ATt23wSkipSCGEEVlvGAQ6mUV9oLFAX7oTYIMGZhmtnqN4ai7rIClRqaXTg+kN9qcIWiU5TPOHWtEUgcMlGDoZ/1QJ8dkmC5OApZ2l0lPj/+cvjZ6QbXUa8d3tWQGPvOMg6nVQLdhr5hXDBBje7y//ZIE= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=XECGza3x; arc=fail smtp.client-ip=52.101.56.20 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="XECGza3x" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=m8OZzcJp8XVt8zzRRMmZiFv6i/QbLpeWQ9LtsdtcC1TyTOiRa6M4z3ElMMbJFRlmrt52AhrxJzN5zpaMDFllpV6lUQjE7lqA6XSKc3UwcJ2dxNzW0qZyBXbUX8NM4j8aFnx3pPo4PCSbQdckUsyjTkEOZbTOPGqmVOaj4JljS3D+gGNoI00bl4s6wxsK34g0PNOjeTAGxTOdZGnpirqmr8dHmwkmTza4suyXep+h91kUhukQsH5jSU+/w85MAd1Jk72NodGRQhA+EzzyCGC6NIOWwv6iQrN+yzJhPAXSw6abp1YiZ2Hy5GTrPEDR6WpwT2dEim6B49RvBbImlrar9A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=mOh45PQ1guvyokDHmGc5oZcIXFe6sbxgT/e5DfNjIls=; b=qcej4PiUA9m7Jd/Pt9znTvMPMfNtplTH4Em8sJKAsZegUMZo9jNexEvz3fWfSk92uLWfkG6FwHmXZSj9yo8F31zLAu65TlhiLdi1p3kyChgn6WH2gJnn4dNXl1NdX7l6GAZZ4jxMdZkicD1x/WPnQI1XqFgQR3I0JhZCSUjAHdTLXXqIOTSvxUDId8R84dCVoZroOQ47N8cI2KoMCz1imTewo40tlVnJPJIJtN5gqdEEo2RzSGX5cHCsA1JTbDD/Ufd0Q7JSm9qtYqr1Jge3wjxzf2Lr3pvXqqlOSrk5KLoFSdONDEZECYZYdD9Rqijx7MT+krcUjUICtzzAlwdtfA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=mOh45PQ1guvyokDHmGc5oZcIXFe6sbxgT/e5DfNjIls=; b=XECGza3xFTRds++v2cKaSz4gQa15MfI33qynl1cyJt032ifj2VvlbZBlql8Fv/u11GPx6KmLiY4CXsqDjYOr1y1qR9XozGxygW2G/ZydIAP23pjw2/gvqBFRNO54SZTMAJB//1215+GzfPkMlM4tuX+mtpoYF31DLlnt711dHgyDgSRJaSoB+diZ8qPuPVXuK/tU6V9gPj/u6jAyo5A6B6ubrNvNjJW/6xYiH2l+FM5xC5l+L1nr2p6OjlLzm+Fi/iScKf9S4cXU19XcMtA+no2UOPCMr6/hfcvoYu+wpLa6bh9Bgr8K8WQHmGYga4oKOWP0huPCIcHvwdKG0UnEhw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from LV3PR12MB9356.namprd12.prod.outlook.com (2603:10b6:408:20c::21) by SN7PR12MB7834.namprd12.prod.outlook.com (2603:10b6:806:34d::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.12; Tue, 15 Sep 2026 03:13:44 +0000 Received: from LV3PR12MB9356.namprd12.prod.outlook.com ([fe80::1c36:31b4:c420:6286]) by LV3PR12MB9356.namprd12.prod.outlook.com ([fe80::1c36:31b4:c420:6286%5]) with mapi id 15.21.0406.007; Tue, 15 Sep 2026 03:13:44 +0000 From: Yury Norov To: Andrew Morton Cc: Yury Norov , "Jason A. Donenfeld" , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Matthew Wilcox , Peter Zijlstra , Ingo Molnar , Will Deacon , Boqun Feng , Waiman Long , Dennis Zhou , Tejun Heo , Christoph Lameter , "Paul E. McKenney" , Frederic Weisbecker , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Uladzislau Rezki , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang , =?UTF-8?q?Onur=20=C3=96zkan?= , Kees Cook , Joel Granados , Anna-Maria Behnsen , Thomas Gleixner , Juri Lelli , Vincent Guittot , Dietmar Eggemann , Ben Segall , Mel Gorman , Valentin Schneider , K Prateek Nayak , Mike Rapoport , "Liam R. Howlett" , Lorenzo Stoakes , Vlastimil Babka , Jann Horn , Pedro Falcato , "Michael S. Tsirkin" , Jason Wang , Xuan Zhuo , =?UTF-8?q?Eugenio=20P=C3=A9rez?= , Sebastian Andrzej Siewior , Clark Williams , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, wireguard@lists.zx2c4.com, netdev@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, rcu@vger.kernel.org, virtualization@lists.linux.dev, linux-rt-devel@lists.linux.dev, llvm@lists.linux.dev, Yury Norov Subject: [PATCH 07/17] xarray: assert static storage for DEFINE_XARRAY_FLAGS() Date: Mon, 14 Sep 2026 23:13:22 -0400 Message-ID: <20260915031334.1194975-2-ynorov@nvidia.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260915030336.1192299-1-ynorov@nvidia.com> References: <20260915030336.1192299-1-ynorov@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: LV3P220CA0005.NAMP220.PROD.OUTLOOK.COM (2603:10b6:408:234::26) To LV3PR12MB9356.namprd12.prod.outlook.com (2603:10b6:408:20c::21) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LV3PR12MB9356:EE_|SN7PR12MB7834:EE_ X-MS-Office365-Filtering-Correlation-Id: e1f243ba-da4e-4a2b-dad8-08df12d75956 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|23010399003|7416014|376014|10067099003|6133799003|22082099003|18002099003|56012099006|11063799006; X-Microsoft-Antispam-Message-Info: 2Y8Yoz8+cArf9amARJOTPKR0hu7m+D+0vjBlQRHsF+X2LR4CimBZ8cbcxGg3Aiv0VMD9nTGn6i/JLrKfrJ2yqIK0c6Zh7EQ+vOtwqgDUfG+9iDs2AR70Hb/RoR92sE/RbiqiF3bnG2uowiA23FZbXD6AB49swidYgVihZ2tmUJdMHt1uNwi17FCvn7X+B7uAYN1dusxfTMBoUMBPyF1hDa4WgwwYVfWLMxDYxsbR+sH5eI/yT/15agpcQXdFy9QkwgE/Cy+e2V8xAqgEBfw1B7dFKvdFmUEs1deIWOdRlJKbNFRd1xF33oqVKaHG/EJhK5Za4Zpmq2O9xFO/STI6IttEFhgxOh02x4uuqwfi6rFnCQnyj/nB91dpypCbDYDRsEsobGNoZcS3trvB6eb4lNFmHWjWAdb+3oiCiJeOlici8XmvaaAa5aZv4trUj0SzoXTq+UbMHg+KHYAQdFCDKok+PoEWF5dZwFeLGYpBy6U52xNQi3FM+E5kRbs5g4Wx1l/U+scKlplSARzIyIVUlv43aYH0Q195g5vO5ZKL/846qAk9xMijqro9g0OrBXn8Vs08w9vfYpbqt7duhXiMWkQcla6hshW2YdwF2yz2Mw1EqHS8Wv4+ACSbTYhQFwF1Yi7CoupYiovczELZPOdRlwXo8TXeb86o5f2NCHpJAwE= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV3PR12MB9356.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(23010399003)(7416014)(376014)(10067099003)(6133799003)(22082099003)(18002099003)(56012099006)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?86t0Ols38gxBUZ/uyBErePbeXhxfgGOQPkqyM1jHaWQVfFLTdBE3l3n3J7S5?= =?us-ascii?Q?SKg9YSo7DjdW+sAiKkqGnlDXo94VXOzcjJ2LLr2lf/jRde54Iq3dqRyEyBKw?= =?us-ascii?Q?gY0AiioHwRjiyR2o7yvZxW0ifJwGv3XF4xPCxHdehptqygq8+1Z7zgj9NxHT?= =?us-ascii?Q?cVac2fu76MVb04FehocUFB8WPhjBizlZjrdRNMumoopYNP4Tznf4UCS4Ei/D?= =?us-ascii?Q?CcnO18jITTKttlB7K8Uu1bdSTmXs1Zq1jVqCnqZTlsgRRmqBXV88uPjcnor2?= =?us-ascii?Q?AjjP8NEbg24Y3oWmAayi0W1Al8K+99gnNIs+E0CR57IcXqLU5I5qzp4lzJFL?= =?us-ascii?Q?Jgnq2X6F5Pm4/sGQ33Wm/k19q7wLfHwWKrW0UVVqwgDMzkK5tFeYeMA5QJpv?= =?us-ascii?Q?f6PZDB/PaIb+SjUFTHvT4cqmQzJlqT02DfsF+3rAlaiaePszOcQ+bWWZ99BX?= =?us-ascii?Q?VlXk9j2ZZHCy8lLzKN4YEElAue5Q09b5uJ44cWuRkd+8J9iVFvmaRYqkVETL?= =?us-ascii?Q?FoBGWKXuC29066pFlQJzNEdgzv1NWSLlMCJ6ymQom/iq6Txq9mC9tx3r05TD?= =?us-ascii?Q?ThxUEWCnyPFXMZVk1lf9KxgwebJDljotrZaRbB5esI6rkk+m8ojtcDfzC13r?= =?us-ascii?Q?pHQooo3dG/zoTEB6OOI35KcHYtnQc7idGMuzTsbas16KJeCggkSAGWXAs2zw?= =?us-ascii?Q?p+WgxFGOIJi1zFVFIr83V/IJXG5hmZsP/WNXSZ2AaMEow6Kilv/A9o6jSRJx?= =?us-ascii?Q?KhoSM6rUSKo7dVbb/EDSc5boJbe9ENpX8vAsMqhsmNkj287auYmPw6M5jR5X?= =?us-ascii?Q?lLosQ6inCZSxNuAhx4crcttQhvjjffYSf6RoUbvVw6ox77ghG2y9hpe3Wjbf?= =?us-ascii?Q?EQ3zrOs+yFJvzCQKigB1JzZ6QFje7BK+ae8eAr8QSHuva08ge0PQH68kZUUi?= =?us-ascii?Q?QhZAbmRAbA52ZwvyGVwEQPqouxe90k+z7uZVVK2e+isPaa04vO5qvYeqkEQ1?= =?us-ascii?Q?NpCn1VD72BZA7d7ezdbMYIfeNOxKqM3adHJ5bROyR5wFQpr9Zv2Ch0e8iyOy?= =?us-ascii?Q?bc5qwDIPd6XwRX4Hvl8D0wv4huFckS+AS9V4vncg9TN7/osMZazs/PjT15Lw?= =?us-ascii?Q?R121G7MkkGrOQLuqJ3kzyElOsMEAQjyiODrDgIsITXTSeZGhirjNwlzY7ZDs?= =?us-ascii?Q?n7ixYniCkV9daJyACxrhA6jsGG/Cs6MhqpBXQd87yHnuFH4u2LK62ERkfr9d?= =?us-ascii?Q?AVmHkQUBrTM69AUj/xDubgLvAE1lHO11tpdq1qlvESMktKPUlBP2qyIqG+lB?= =?us-ascii?Q?Bv8IpnsZgxZYSR7AEEqPA+8V4prCSCWAxVllvkXrmYrkurtfkS73LUwsKeqW?= =?us-ascii?Q?R5iAVWRiaSBaKHFEQszR21tfCTObY7D4lK7HvgYAHSMD2/hvtWhcDZNAUD/G?= =?us-ascii?Q?bgNOxxv9+ABwND0G6zIZTrRgROxNFnCEAtwwYT3bXrAjsLlW5WdzzpOKFeIf?= =?us-ascii?Q?4Ii0D3vZIXInbQJcog2LIm1Jendn13L2oq4vb3Scm3wfvSEtxxRy35vAqmzF?= =?us-ascii?Q?FRRwua6okpwURhr6dIQDZd1KaAjtomwqxn5eKbkwdebtH6oLJqoAnzzktUfH?= =?us-ascii?Q?OKaBJDsd7t9gOmzjS7F0OkjsIrn7BGqKxl+du6tR0z0wyBsm/EKtEDyvvXKG?= =?us-ascii?Q?en3aKqah6HAMaiqxHSROteSKQKfRPhS1jPVtIWqSjWbJxakaNVvLN5cvg23e?= =?us-ascii?Q?0WhIxTMXOQ=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: e1f243ba-da4e-4a2b-dad8-08df12d75956 X-MS-Exchange-CrossTenant-AuthSource: LV3PR12MB9356.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Sep 2026 03:13:43.7464 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: kFCVL9XPe07WXVi+nq2gI7EAOXogvaWs1P1da8zRpNk9wApAx7MtdDIlqgweCslt8ojshxe/wgviJjWA4nsStA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB7834 Content-Type: text/plain; charset="utf-8" DEFINE_XARRAY_FLAGS() statically initializes xa_lock. For an automatic local XArray, lockdep cannot use the lock address as a persistent class key and disables itself when the lock is acquired. Add ASSERT_STATIC_STORAGE() to the common declaration macro, covering DEFINE_XARRAY(), DEFINE_XARRAY_ALLOC() and DEFINE_XARRAY_ALLOC1() as well. Convert the automatic XArray in the userspace iteration test to xa_init(). Assisted-by: OpenAI Codex Signed-off-by: Yury Norov --- include/linux/xarray.h | 3 ++- tools/testing/radix-tree/iteration_check_2.c | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/include/linux/xarray.h b/include/linux/xarray.h index be850174e802..9b9a5eea006d 100644 --- a/include/linux/xarray.h +++ b/include/linux/xarray.h @@ -321,7 +321,8 @@ struct xarray { * initialisation at compiletime instead of runtime. */ #define DEFINE_XARRAY_FLAGS(name, flags) \ - struct xarray name =3D XARRAY_INIT(name, flags) + struct xarray name =3D XARRAY_INIT(name, flags); \ + ASSERT_STATIC_STORAGE(name) =20 /** * DEFINE_XARRAY() - Define an XArray. diff --git a/tools/testing/radix-tree/iteration_check_2.c b/tools/testing/r= adix-tree/iteration_check_2.c index aac5c50a3674..f798603a6f28 100644 --- a/tools/testing/radix-tree/iteration_check_2.c +++ b/tools/testing/radix-tree/iteration_check_2.c @@ -54,9 +54,11 @@ static void *throbber(void *arg) void iteration_test2(unsigned test_duration) { pthread_t threads[2]; - DEFINE_XARRAY(array); + struct xarray array; int i; =20 + xa_init(&array); + printv(1, "Running iteration test 2 for %d seconds\n", test_duration); =20 test_complete =3D false; --=20 2.53.0 From nobody Fri Sep 25 08:46:28 2026 Received: from SA9PR02CU001.outbound.protection.outlook.com (mail-southcentralusazon11013024.outbound.protection.outlook.com [40.93.196.24]) (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 AA507400967; Tue, 15 Sep 2026 03:13:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.196.24 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789442038; cv=fail; b=tPTJR7xEKh62U4vct0c56qHR/dCr/PPSR1VG0jZV+tYELhWDMeZKChcKoDaeUE2d26a78HoBvk/MW/KrTYdfDVF4UnqO11o4Q39gEY6W6bQUhJb/lLIS+jNvqJCo/hnWwwSKVWigJYlClt483oC9osfXjAeLMLMwZ33PTO2aLl4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789442038; c=relaxed/simple; bh=PyD/4ySgx0665iYxR6I4ZtV4JVyOsMSyXM6twVQjMLc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=lJNuS0nVkH3S0q6Uh2H3kHypXJQYXSpBANWfM/wdR0Lelgzhb6G9SgFsz7WlIKiys7SZBXhel38MaLg+VixhrKqudJJkOBTz5jh82nU+SGXMqkhowTcqeqh58QEPIv7ufpGJ3tWXkdBj2dQS5FmM6K8kiexHVBkoZovhd9dnbnE= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=XoAyOmrO; arc=fail smtp.client-ip=40.93.196.24 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="XoAyOmrO" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=jEW3A1+fKhN4tcmqOSfwZ4KzsoCTZYgDifv10deRuQZfkPs0NKiF+Au+OsSDOT4QVsZkMZ9eKu+1vi+hnFHSHqdgqd1H6eAxXcYagu5Yc0F0SInYHmnj1CO1iCuYGuShDHiaNTEZ3AZhyYFu+ORPuYcdlBzXLto+cjHqIdb/HXjxPISC22SBuM2A3IgfO2SDP8kIxn099fCWJajie6lK/VLffEh/gpe1u9NPnf2Zkfly3Uso9R41bXinTdp+YaKjwmClMtkjYx8roTtE94jpeeuaWn+QKUHhtRDkcPyrSnCIJKgAR5/Jju7a/LJMS1a4gpY00aMFQI1wC/V/gsFARw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=tgJTrkbSXsk/Ysc/nC1MLyJzpZtjgLsqhRT74bOiJJQ=; b=Rxa+goYAVRSM7LebLFbRBjJuQsXuX0ynW3BbvCblJYGiwBmyDr59SBIubqXiG4IFSZ1fXjSb1Iqr/217hVpy2cY0w5op3k7iqg8SeBfYjtsRtOSrNX2Adpy7RWfjPgHL04xZ6V8TMIu7SGHdQcyyIpalrAlEwadgpZ0R9Kklv71QkkJoNftyG0uXPDxvqFrgo5JGFwx7Apc8x73GZsQWmhUF3ByGge/8GfUu9b2TWDsayOIAlriZimcg0fl2DPykLoVw1ptFz9RujRw+2dxFjbNdaIqMoZOiUl+gJaG+UO7gj78HF6Cj5ZrdTxK941nqcXpUifDqd9+dwMdZY88ZsQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=tgJTrkbSXsk/Ysc/nC1MLyJzpZtjgLsqhRT74bOiJJQ=; b=XoAyOmrO3mVrQ0rgMNm95Pq/X/dH16s7YxtU2hjaGDwzmgmAMvNQS2eciuv3UYiJMUPwiqGKJxTcldZO7uxlSmpd1DNSIExtyhtrEd02uIbw6uE3PgqI9bviT+z22KLpPrKpXXLHfymOkVTQnV8zOXq+07tJsGGsHknFu0M4UWcHY4JRwRD+/UnCBx3qNwuWEx2nnYfSyt7pxwDiXiQ/nGLbWyO8CaSz8PFgfA0d/wwKyo8CYKigVpYEKgCZKxk4faTThjzWpkpXznfFxQKiXUcCaLxNzy9ParHBmhJQbPzqBAZXscURA+vK2EaXb0JNNuhamBnJanzRhuULQS/bGg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from LV3PR12MB9356.namprd12.prod.outlook.com (2603:10b6:408:20c::21) by SN7PR12MB7834.namprd12.prod.outlook.com (2603:10b6:806:34d::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.12; Tue, 15 Sep 2026 03:13:48 +0000 Received: from LV3PR12MB9356.namprd12.prod.outlook.com ([fe80::1c36:31b4:c420:6286]) by LV3PR12MB9356.namprd12.prod.outlook.com ([fe80::1c36:31b4:c420:6286%5]) with mapi id 15.21.0406.007; Tue, 15 Sep 2026 03:13:48 +0000 From: Yury Norov To: Andrew Morton Cc: Yury Norov , "Jason A. Donenfeld" , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Matthew Wilcox , Peter Zijlstra , Ingo Molnar , Will Deacon , Boqun Feng , Waiman Long , Dennis Zhou , Tejun Heo , Christoph Lameter , "Paul E. McKenney" , Frederic Weisbecker , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Uladzislau Rezki , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang , =?UTF-8?q?Onur=20=C3=96zkan?= , Kees Cook , Joel Granados , Anna-Maria Behnsen , Thomas Gleixner , Juri Lelli , Vincent Guittot , Dietmar Eggemann , Ben Segall , Mel Gorman , Valentin Schneider , K Prateek Nayak , Mike Rapoport , "Liam R. Howlett" , Lorenzo Stoakes , Vlastimil Babka , Jann Horn , Pedro Falcato , "Michael S. Tsirkin" , Jason Wang , Xuan Zhuo , =?UTF-8?q?Eugenio=20P=C3=A9rez?= , Sebastian Andrzej Siewior , Clark Williams , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, wireguard@lists.zx2c4.com, netdev@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, rcu@vger.kernel.org, virtualization@lists.linux.dev, linux-rt-devel@lists.linux.dev, llvm@lists.linux.dev, Yury Norov Subject: [PATCH 08/17] idr: enforce the static-storage contract of DEFINE_IDR() Date: Mon, 14 Sep 2026 23:13:23 -0400 Message-ID: <20260915031334.1194975-3-ynorov@nvidia.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260915030336.1192299-1-ynorov@nvidia.com> References: <20260915030336.1192299-1-ynorov@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BLAPR03CA0175.namprd03.prod.outlook.com (2603:10b6:208:32f::14) To LV3PR12MB9356.namprd12.prod.outlook.com (2603:10b6:408:20c::21) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LV3PR12MB9356:EE_|SN7PR12MB7834:EE_ X-MS-Office365-Filtering-Correlation-Id: 3c8f39ad-cdcc-4f11-b510-08df12d75c12 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|23010399003|7416014|376014|10067099003|6133799003|22082099003|18002099003|56012099006|11063799006; X-Microsoft-Antispam-Message-Info: 7rOpFyrVmvAO8tlkEBOUtjgzSr48cw0TpHiAxq/C8dG8P5VDP4qDAMp/NCWgbX+8SF9dz677r8+M04HeSJFSxn4pKwPF+uVGbhMKvRJU0XqN1UhQpbBkRsuQXiPcxBhfbeY5Q5N5u0pJHuOgW5wXzkugSZRq6rYo4XTc0A4K/qPWn/93Rfx/X7aTX0oJcsoFJqt3GsxY2dQ3ZhqW9IKlm/r6gWjld5EgWkZ83Py/b0LHc3DRjOn7yrC9KC5FMjg/myYmOacon3MoF8X3rw/i/MiqrQf4xvqK29V95uZF+xg2CGeoTJMrRcrRyJhWVfekvRkFOqiB7K3FKNevwIhGlhi/HWEImYJJWhbOtjShlyeP6K8uPgQyGixvSUA7n4Xeq75qciANx4eioSpwbZyuf3yAh1oQN/R6XQ/IQeFoc+witxmz3b5ZdFo56PHwUf9r57HDUQAnAmgHjHdbxucQ4PYAru2s92jvbrAouNeG3g2CDU2dxUEhGCCKBdMi09hUs9uDEEB2tXq2iViPCQLT1gIvQ0C6LE24HkHiStTdg1oQS9Q5XrMXvc2Tok6flzbFRhttY/DjQI0ljMov3DEEJllFmxbWcVWiT8YQpvfXJYG0M5XE9zve7dS3fEDpBoVrbFMzNbMH/t186fEM5Ug4gYj0dxxEImtu5I+9hrbbo+o= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV3PR12MB9356.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(23010399003)(7416014)(376014)(10067099003)(6133799003)(22082099003)(18002099003)(56012099006)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?VGte8XEzn4NOoE150MDHIX052sAUVAyb+riQMS2GFH2T8EFEXlLEAmSpCiE3?= =?us-ascii?Q?6tYBJrF3VQt6VNU1hdq71x4DIHKSnFpiXkM27C/wFywgXiT8cNPvhZGQ2AS8?= =?us-ascii?Q?HzNbSw4sf0idlc2FADXj8yJp4wT0ONisWwJy/XDTyNEJSGZVT4XwSWcM/kjd?= =?us-ascii?Q?PgvEQlmg3dTU1hiuK2T237DHQSrof/ywO+EWg+oxGpbXbcki6OEXFgSg/TRm?= =?us-ascii?Q?vESIn4DN5zNsYTfJ7s+tyI2oTMg88qjAC00MY+KQwA1Prj0Udjm8gB1ydrxl?= =?us-ascii?Q?xBNrAIWngtEOAqxUJKtcmoGy4cHJoUOA/9U8S0SKnrSaLLinDKne5mW9Cdu4?= =?us-ascii?Q?SfFY/iAORvrMOMubZ44mfgM1aCMakl6J83pS/1ZHVE7FSPODMOosNlWWahXj?= =?us-ascii?Q?PSl+TMMETgVzYnxX8Ez4511UXm+TQdLoTcF4yr8Gp90k9+P9XVKC6nocZpxl?= =?us-ascii?Q?kfi4DoTd206fi50Cn7lM8BhEygs6BMdRaXhPgE3QF6L6kKeHN5+RY2w7g/X4?= =?us-ascii?Q?bvyZynlfxPdSnt6oywXCtNrnxdZqk4duuCGKrCHQLNPyjhA9yg5x3xjvC9qn?= =?us-ascii?Q?8BgvYvQ12HFcijTWvdEFjlnAK7ybZS84W0/0RmRtqzxQqPH/dDi+29BV82oI?= =?us-ascii?Q?YMhqiBSZWwPE+eUQ7NscxP1yI3bhmDlzIhRFoTCCARbgUCUdRyIIsMLvVcqJ?= =?us-ascii?Q?uI5dnEyKKhszTWuXvCM7LJqr9L6DK+iKPMVGN/iZbgDS1ofuiAsq7iobCEsn?= =?us-ascii?Q?1jx/JKIyuUWV5vCB+4duUktpeXYTjiLqpYK/iq7Kcq/WpNW+YpOv0Oxfln2X?= =?us-ascii?Q?bkozuomjRaoG6RHfiCyhaLJJIUZrbhiWY6FVttfBRuWa4f0YUuK3XFwdGQM7?= =?us-ascii?Q?1EWDGCWgGHg3+aHyNtZaZMrJkVZZO9YoD09dXxUq7P0Zom2tOc+ICURi6BWg?= =?us-ascii?Q?TQqqYCHzQD3e6sskjD3fPeNh/K430nzbdkEH8H9uGUZUdvHV6Cf5AxNNgFA/?= =?us-ascii?Q?JgLSB1d2ZS5T/BzAmqVmuIAoJUTIJJw0FCYA4CmG1IKejtD6W7DzclD18KEX?= =?us-ascii?Q?HtYUn/9VHwS7MD5rxXcKtSs6qwADZXVdp2RsUkJzuC26oVpHwn9wNGmqR/WG?= =?us-ascii?Q?ySHg8JXcbVCpn4tEb5AKwErec85ETUumE6cqoHkKRq9kG6PYMC7wGcVdWW/H?= =?us-ascii?Q?j4Wda+B8lLydW4VLp2dl/LXmTI13G2kXrENgJZBZC9uWDW3We+4y0AtjHrb2?= =?us-ascii?Q?BseDTfJBOtSvWpFZ2SzikHuTOBUvXqYCytVAGeldKBXK9f171ubBgZ5p4NPJ?= =?us-ascii?Q?LRMOS9/uogT10ADZDIJpcEtCFSjnfI1eliJOwITPnJJ7wb4MOTOO+1JdiKb6?= =?us-ascii?Q?6beNgF+OebF6RNrNQtS865+F5Pdi3WAqD2v48y2zpiNkFWr9eTGb0kiKGxc1?= =?us-ascii?Q?NcWz8onKQxHzJgnL2dyzA34lkMWGBCkHknwFMsN3IHXy6vvK78pUtiHnSxIb?= =?us-ascii?Q?WHsPo3BuN5wGTnjop9G7NJf8OhZ48DaXT5xfRFrODVdsBm2tNjaeQA11Gn7g?= =?us-ascii?Q?uoKXDueE2LsUWJMudqLbZa1yO2D984k6p4UuQeMXO/eDSKNeMNk1EDNNmx6c?= =?us-ascii?Q?yU71Y6HCXx4u+sEw6nwWg7/wBsYM3KpNA/hUW2YllkwKtL7nAy7q0/WXqN9K?= =?us-ascii?Q?UtjiVNM7d8g9Hjq9KmYogxcMvtmLrfkSv/T7SGBl6sY6EL4a+xGrFkOEBMlM?= =?us-ascii?Q?sSRJbeXSZQ=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3c8f39ad-cdcc-4f11-b510-08df12d75c12 X-MS-Exchange-CrossTenant-AuthSource: LV3PR12MB9356.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Sep 2026 03:13:48.3868 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: qI+SXR0SIYTnNt66L5Sa7slN1ng38WBgzEVPjtjIO8rSNARWToGTuBGNY8RGfeB3zWXW/0jGxfOdoWs8MZODgA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB7834 Content-Type: text/plain; charset="utf-8" DEFINE_IDR() is documented as defining a statically allocated IDR. Enforce that contract with ASSERT_STATIC_STORAGE(), matching DEFINE_IDA(). Normal IDR operations use external synchronization and do not acquire the embedded XArray lock. This change enforces the declaration API contract; it does not fix a lockdep failure in ordinary IDR operations. Convert the seven automatic IDRs in the userspace tests to plain declarations and runtime initialization. Two already use idr_init_base(). Keep direct IDR_INIT() and IDR_INIT_BASE() initializers unchanged. Assisted-by: OpenAI Codex Signed-off-by: Yury Norov --- include/linux/idr.h | 4 +++- tools/testing/radix-tree/idr-test.c | 29 ++++++++++++++++++++--------- 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/include/linux/idr.h b/include/linux/idr.h index e2a4b6298511..d0393b7fe985 100644 --- a/include/linux/idr.h +++ b/include/linux/idr.h @@ -55,7 +55,9 @@ struct idr { * An IDR defined using this macro is ready for use with no additional * initialisation required. It contains no IDs. */ -#define DEFINE_IDR(name) struct idr name =3D IDR_INIT(name) +#define DEFINE_IDR(name) \ + struct idr name =3D IDR_INIT(name); \ + ASSERT_STATIC_STORAGE(name) =20 /** * idr_get_cursor - Return the current position of the cyclic allocator diff --git a/tools/testing/radix-tree/idr-test.c b/tools/testing/radix-tree= /idr-test.c index 6fcba5b5870b..4668c6a4f6ea 100644 --- a/tools/testing/radix-tree/idr-test.c +++ b/tools/testing/radix-tree/idr-test.c @@ -33,7 +33,9 @@ void item_idr_remove(struct idr *idr, int id) void idr_alloc_test(void) { unsigned long i; - DEFINE_IDR(idr); + struct idr idr; + + idr_init(&idr); =20 assert(idr_alloc_cyclic(&idr, DUMMY_PTR, 0, 0x4000, GFP_KERNEL) =3D=3D 0); assert(idr_alloc_cyclic(&idr, DUMMY_PTR, 0x3ffd, 0x4000, GFP_KERNEL) =3D= =3D 0x3ffd); @@ -79,7 +81,9 @@ void idr_alloc2_test(void) =20 void idr_replace_test(void) { - DEFINE_IDR(idr); + struct idr idr; + + idr_init(&idr); =20 idr_alloc(&idr, (void *)-1, 10, 11, GFP_KERNEL); idr_replace(&idr, &idr, 10); @@ -96,7 +100,9 @@ void idr_replace_test(void) void idr_null_test(void) { int i; - DEFINE_IDR(idr); + struct idr idr; + + idr_init(&idr); =20 assert(idr_is_empty(&idr)); =20 @@ -150,7 +156,9 @@ void idr_null_test(void) void idr_nowait_test(void) { unsigned int i; - DEFINE_IDR(idr); + struct idr idr; + + idr_init(&idr); =20 idr_preload(GFP_KERNEL); =20 @@ -169,11 +177,11 @@ void idr_get_next_test(int base) { unsigned long i; int nextid; - DEFINE_IDR(idr); - idr_init_base(&idr, base); - + struct idr idr; int indices[] =3D {4, 7, 9, 15, 65, 128, 1000, 99999, 0}; =20 + idr_init_base(&idr, base); + for(i =3D 0; indices[i]; i++) { struct item *item =3D item_create(indices[i], 0); assert(idr_alloc(&idr, item, indices[i], indices[i+1], @@ -229,7 +237,8 @@ void idr_u32_test1(struct idr *idr, u32 handle) =20 void idr_u32_test(int base) { - DEFINE_IDR(idr); + struct idr idr; + idr_init_base(&idr, base); idr_u32_test1(&idr, 10); idr_u32_test1(&idr, 0x7fffffff); @@ -360,7 +369,9 @@ void idr_find_test(void) void idr_checks(void) { unsigned long i; - DEFINE_IDR(idr); + struct idr idr; + + idr_init(&idr); =20 for (i =3D 0; i < 10000; i++) { struct item *item =3D item_create(i, 0); --=20 2.53.0 From nobody Fri Sep 25 08:46:28 2026 Received: from SA9PR02CU001.outbound.protection.outlook.com (mail-southcentralusazon11013024.outbound.protection.outlook.com [40.93.196.24]) (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 682314028E8; Tue, 15 Sep 2026 03:13:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.196.24 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789442043; cv=fail; b=u9FE5iM1Sy4sFEVNQgVFHlKVpfRC6HqAGzFVP9RcauLUCgKFB9RleWX+xRMAE32uxfq6ZOTiQuFpJvVUuwnS/BmtOrp/bQAP1q1ZfIgDNUBYMZWl7p6hvfSsla63ICb68ON3BE367yOllYXzSsuJYTddO4o/haZ2MVDK52fIcPk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789442043; c=relaxed/simple; bh=WopZrlBaltybQpZDhNvz3KkreHYSTZBrhnmOS1a9gmw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=qlERxlSj61gScC5w6fszwTonOP7gTK/SHIMb3coVB9k+hVs80hoXOfPbXXX1+BgH3CamVFJM0wogMhQjto0aUaBy8dnrBP/W804qdVZ2TuUQpq5j8ZM5zGM5+i9mcz28OKQXmK0mKnbqLcGfh0P++8N0GA5ZeC++kYO9CVJUh7c= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=paw3fEKC; arc=fail smtp.client-ip=40.93.196.24 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="paw3fEKC" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=La+aDAkfL0mNVzOdP9PVTB8S63ufYu2mf7b7Kdn33DgsTeb02riYuzYd6PJNNMm/HobE3SMjw3oPUVyLumTh44nbTzc3R1//aOyac+I6B2uphfwtn7qfMZa4pa0nwP9fnXH0AblzzUrXcQAKyMrm0zoE/4iQYlszcDKV8zetncpygy3yQ2NPzami88UfaQsVG9Cim4m+GdLxhrJCRFZVUmF2raaMBV7266whHbQQOloN4qtqVEdDbIkRwOOZBfsKuh8W3JvNdbXqcwbputkxh0X78NGVRNtnVhRMKR4vyo8zmIRPXGCutDM4VpzJ6N8VoB3vmauC5EKGZlXRbZ4gKw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=bL1XeoRsjprSrghUuJnmyCfeiaPCYOiz9KIhr0c/bxY=; b=O3/Z5n4R9I1NDdyKWB7/V3ce7VuR+uvl5g68neb8mCeWmDJh2oSZJDEOajorj01uOtcKHMhW6R/YUXHRDG69UnWzLPnBdHGF9SPnE8AFXlCHCfDEHIgIuZ5eyxV/pP5zwq21lZkhzwD3PR9NGZ+WVCcC/Bao/LSFCr7UCgErupWIYYbrz/vtjiPloqxOeCzzwCyuUi/uiH+BXMdRQ76m8li6w/hCSFtD7DhMsO8PKCmkTbsBfQ2g83AenDyXmiz1K+efVyr522DdoJOzyodSa27WPBwTFQyFVkfoHfbUbvti90xjrXc41t0V1GVbeN2W2ypqxQPhmM94uSYDt6EQkQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=bL1XeoRsjprSrghUuJnmyCfeiaPCYOiz9KIhr0c/bxY=; b=paw3fEKCdhV8dCrmA1q72vY9/6HhSFB0/G1uM4+CsGzvY5zx21F29h4UtOU3OXTVViViVbSlduo56CAuuPS6KBkg/+CwBWSgP8RzftUmEbfZJoOrz1kN5e5p5vn63zmok1aLKNjaCNRHBOVusa9xQNPODLfrZZKB+trHquEjBQNxuFzGxOduqjMhoCRJwHyIHTlZO5+R5kbJ3G4D2XajaJImIwDml5o+GfXJDBgSCWe0x8ThImSI4iByxJaF67pj8BEXxjB1CCYGnQWLLh1/0IoK1XM/KgaLGWCW4VAXYlBNZ/yXuPAB8KWmpJiXsLwqqi1+scbr5df8dyl6pJX7JQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from LV3PR12MB9356.namprd12.prod.outlook.com (2603:10b6:408:20c::21) by SN7PR12MB7834.namprd12.prod.outlook.com (2603:10b6:806:34d::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.12; Tue, 15 Sep 2026 03:13:53 +0000 Received: from LV3PR12MB9356.namprd12.prod.outlook.com ([fe80::1c36:31b4:c420:6286]) by LV3PR12MB9356.namprd12.prod.outlook.com ([fe80::1c36:31b4:c420:6286%5]) with mapi id 15.21.0406.007; Tue, 15 Sep 2026 03:13:52 +0000 From: Yury Norov To: Andrew Morton Cc: Yury Norov , "Jason A. Donenfeld" , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Matthew Wilcox , Peter Zijlstra , Ingo Molnar , Will Deacon , Boqun Feng , Waiman Long , Dennis Zhou , Tejun Heo , Christoph Lameter , "Paul E. McKenney" , Frederic Weisbecker , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Uladzislau Rezki , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang , =?UTF-8?q?Onur=20=C3=96zkan?= , Kees Cook , Joel Granados , Anna-Maria Behnsen , Thomas Gleixner , Juri Lelli , Vincent Guittot , Dietmar Eggemann , Ben Segall , Mel Gorman , Valentin Schneider , K Prateek Nayak , Mike Rapoport , "Liam R. Howlett" , Lorenzo Stoakes , Vlastimil Babka , Jann Horn , Pedro Falcato , "Michael S. Tsirkin" , Jason Wang , Xuan Zhuo , =?UTF-8?q?Eugenio=20P=C3=A9rez?= , Sebastian Andrzej Siewior , Clark Williams , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, wireguard@lists.zx2c4.com, netdev@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, rcu@vger.kernel.org, virtualization@lists.linux.dev, linux-rt-devel@lists.linux.dev, llvm@lists.linux.dev, Yury Norov Subject: [PATCH 09/17] radix-tree: require static storage for RADIX_TREE() Date: Mon, 14 Sep 2026 23:13:24 -0400 Message-ID: <20260915031334.1194975-4-ynorov@nvidia.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260915030336.1192299-1-ynorov@nvidia.com> References: <20260915030336.1192299-1-ynorov@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MN2PR16CA0040.namprd16.prod.outlook.com (2603:10b6:208:234::9) To LV3PR12MB9356.namprd12.prod.outlook.com (2603:10b6:408:20c::21) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LV3PR12MB9356:EE_|SN7PR12MB7834:EE_ X-MS-Office365-Filtering-Correlation-Id: de3c6747-7ec1-4239-77ce-08df12d75eb1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|23010399003|7416014|376014|10067099003|6133799003|22082099003|18002099003|56012099006|11063799006; X-Microsoft-Antispam-Message-Info: h2cZQPW30lx121tesGqD2YpKH4muWOYNLF96F6ZnyAS8jOnYo5V1dwcvgWYU1m1O9o13QJRh6EfUJXY+y7htWBkpn174K+cT9o+M5IOH50cD6EgBrng6xwma0u/oAql8uSyvo5PJgQwtQFkZ3rKojhKN5+xC/MXL2lC3ZhWQfI4wEc2OBHn6Owg5AAO3HXuZd7IMF/vv+CFKCtXv9wnB0sKc8wU01O9W3vQCPLMPJ9/LE4oH4kdDnLY8QbajzAKLq21oVvQTTuY0xhtC9xv9EP4nYALaL+psYtnw62o23aUzEpO+kc05jyf9pqcVST+fZ53w3hSO5tR0BIqtGeOXYgn3XU3IA4XfBiu0S+zgdKBgHp99y4MlaZKgEBhQf2H7j5ALjDtS8U1s59oOad90iG3+zW5yxi3rWC1x3SvcsIEnMEwkMIkERRgtwnGkHmeCADevAzJwyIvjM/ByvJTEAJhvhJDWYllCq6H19ASMiGhgQuPtfLdDFr+u9OWbIDgtdsThYlmHAzHr8JcFqngQ+21Trdj6rDjotkgh7AP2wJbkjZj4PUYzmM8c91qpzr1kImNlxH5ZPA2OEpelnRmFjmkcpbPG3xS8znF8Yj2owmMrOW6GeOvSLMKlpJ1ydQWPcspc6GX8WvKm1G4BD3TO270NNvSqHEoGbGe+xeLQyKU= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV3PR12MB9356.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(23010399003)(7416014)(376014)(10067099003)(6133799003)(22082099003)(18002099003)(56012099006)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?uVZoCX1GrOHs1U3JKZ02FlPkbDhNwaeObmm+pfucyyKudaTQhrVyRlbTCYP8?= =?us-ascii?Q?AMTrEw/5GijjG0bwbwN/YbqamX9RGI8wC1pV++0e4B0yZBVoiM/4YSGvy8qD?= =?us-ascii?Q?VaMrIDaaOcF/Lv9UeaQxVQ+/9Kp292WFg3tFzMG7Bq62a4wyuwMcYF70NSI8?= =?us-ascii?Q?q0UCiqaGiyCGe8HruZhRWMJhZyGansdHdiMSdXMx6IeUl+JpHSXC3sjaSpQ/?= =?us-ascii?Q?C++U9nY4fgdfoIrpvZt0qG/aTOz8a9s+FHRg3hSHbTc8hg/OnVEHxC/QZRT7?= =?us-ascii?Q?8QevgD0T8YUz4AVyzDbBT9I3+TqJDw31jD1WTWQ1G7NTklUxpO8LQIwf0WDm?= =?us-ascii?Q?Xkfu5vX0v3jospzJ72Eap33Z3r46qbNs47at2+dP4PxIpq6tkBLxXAKSwtqR?= =?us-ascii?Q?PEQTqPv8fx2wpAW2AQSSg7fn4w3ArjJgZs1Exjg9P7y0LJcq4LhlaoMVRnaS?= =?us-ascii?Q?+fBGsNC2cZ9p84tq3sCpYPNasHSV9aUPFUZZmxBJnDbN2kmSUI6BP82to0EF?= =?us-ascii?Q?INCvi7LZF738QX3DlUiY5Kj3jGO68ROa08YjurgOQY+/4BegQBJk27PcXH04?= =?us-ascii?Q?KKjWcOkGvVnIwcsB4i/6lrfJjfUynEDTPgUDu14XeIaPru37SwdH6U4o6cz3?= =?us-ascii?Q?j/houeYbj26PW9n272YJ8ChMsIH+jp7kY1j8DEv//sAqgZ85+cQo49PSjRFp?= =?us-ascii?Q?0qI0sTtaKeCxDauvSvjdFe5Ksl8OXOvax+ggAHcOA38GD3pANrA+lFkbHj4K?= =?us-ascii?Q?Gf+Gc9UGJA7KnxWgC20OJruwI4FdXG52JIOUwQ3/mRLuDzRDpG4Vrn+VRe7B?= =?us-ascii?Q?nUX1QcRS6SDBTOD3ThoJugtCWjHyVmFfoBXcTaoU1WpwGReIKPGX++Do+fi3?= =?us-ascii?Q?TCBqe6vzVSfBVUpM2owd8qW1z6tVuuYQ50x/ExZwv/dUAW9p2cX+qWxd5e2a?= =?us-ascii?Q?1gVYWvEU6KvsuwtYfmgxNGI3wbJzA2XM/ovuEOqWyNmfYnRTrwWkPmmhaE2q?= =?us-ascii?Q?6S1Ryta2KNSCkVSijuVn5T4NN/wKCDJc76sqq3YnqpsU4jhTyhjO4vFXzXIZ?= =?us-ascii?Q?k5qcwh7WyLWxoYl0iV+ypmfFA5PBOMzGBNTMFP6L5ICsNH5E4YTkM0ODhK6E?= =?us-ascii?Q?SBjW1dUgkG+ivc1iAam8S6mHTYe4G7YMPrzG0FXDmJRbORmI8T1+5XYLk8bi?= =?us-ascii?Q?qUCxoVbI1rrhLk1rRCdnzQUdsfI18QY/ren9I6qmyunNYYzNyJvmc8emHUjv?= =?us-ascii?Q?v6ORP8RkNp3drZDI8NMol7w6sDO6vmYBGXirlxR48+4P5zpkewETPD1T0CWL?= =?us-ascii?Q?nyJqsfRIB950t5IZCsaC7EdpbqV2Dw8FZAVkJz3PB5lO+GlQjS5CjBPbrwLn?= =?us-ascii?Q?W1KBJ29OKuQ8sUYPoak/p4uRTbgvzRwQzDCwKxCp+myE6dIKAYDRhhYe1XH6?= =?us-ascii?Q?ziIJ8T56I8Ue1u7UGenX3GkJ9itnjDTwb6JqNnFwAq9JwY8Jw6wjeEhx/sG4?= =?us-ascii?Q?scd0uMUEJygdbTchXCrNq1yQv7sPkS7ZZ59EJfdDx/I2hEOAoiuBH8+xjsUC?= =?us-ascii?Q?7hZh973TfB+h4PPqPPS0+cf50pTInkyrfOqb2ae7/8+NJmYaOSFQOUWrwk6/?= =?us-ascii?Q?oluYx/9+a/1Trln2snlJtYk8DH3uwgt8Pd61Y487rubG1fX775WW/nUC6xjx?= =?us-ascii?Q?oaf4UcsxFtZebmFKXIVLRqQ+EaoBxbwbul4UJyoT8Y+DcqvKw1yLock1kmOV?= =?us-ascii?Q?SzTFjirWEA=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: de3c6747-7ec1-4239-77ce-08df12d75eb1 X-MS-Exchange-CrossTenant-AuthSource: LV3PR12MB9356.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Sep 2026 03:13:52.7634 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: xYVi9AkwSB9ZyMM4wlV9gJmsLPACF0n1XSTRG0Kxd0Pvac2Coh1VLy16ctnTtcPEzLDvIpdDdngF2eZbyWM8Kw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB7834 Content-Type: text/plain; charset="utf-8" RADIX_TREE() uses the static XArray initializer. Enforce static storage for this declaration wrapper, consistently with DEFINE_XARRAY_FLAGS() and DEFINE_IDR(). Leave RADIX_TREE_INIT() unchanged for embedded objects. Normal radix-tree operations use external synchronization rather than the embedded XArray lock, so this is declaration-contract enforcement rather than a fix for a lockdep failure in normal radix-tree operations. Convert the thirteen automatic roots in the userspace tests and benchmark to plain declarations followed by INIT_RADIX_TREE(), preserving their allocation flags. Assisted-by: OpenAI Codex Signed-off-by: Yury Norov --- include/linux/radix-tree.h | 4 +++- tools/testing/radix-tree/benchmark.c | 4 +++- tools/testing/radix-tree/main.c | 16 +++++++++++---- tools/testing/radix-tree/regression3.c | 4 +++- tools/testing/radix-tree/tag_check.c | 28 +++++++++++++++++++------- 5 files changed, 42 insertions(+), 14 deletions(-) diff --git a/include/linux/radix-tree.h b/include/linux/radix-tree.h index 057edc4cbb6e..dc3795f4cb1f 100644 --- a/include/linux/radix-tree.h +++ b/include/linux/radix-tree.h @@ -8,6 +8,7 @@ #ifndef _LINUX_RADIX_TREE_H #define _LINUX_RADIX_TREE_H =20 +#include #include #include #include @@ -79,7 +80,8 @@ static inline bool radix_tree_is_internal_node(void *ptr) #define RADIX_TREE_INIT(name, mask) XARRAY_INIT(name, mask) =20 #define RADIX_TREE(name, mask) \ - struct radix_tree_root name =3D RADIX_TREE_INIT(name, mask) + struct radix_tree_root name =3D RADIX_TREE_INIT(name, mask); \ + ASSERT_STATIC_STORAGE(name) =20 #define INIT_RADIX_TREE(root, mask) xa_init_flags(root, mask) =20 diff --git a/tools/testing/radix-tree/benchmark.c b/tools/testing/radix-tre= e/benchmark.c index 523c79f22ed3..57ab92e6cd77 100644 --- a/tools/testing/radix-tree/benchmark.c +++ b/tools/testing/radix-tree/benchmark.c @@ -114,9 +114,11 @@ static void benchmark_delete(struct radix_tree_root *r= oot, =20 static void benchmark_size(unsigned long size, unsigned long step) { - RADIX_TREE(tree, GFP_KERNEL); + struct radix_tree_root tree; long long normal, tagged; =20 + INIT_RADIX_TREE(&tree, GFP_KERNEL); + benchmark_insert(&tree, size, step); benchmark_tagging(&tree, size, step); =20 diff --git a/tools/testing/radix-tree/main.c b/tools/testing/radix-tree/mai= n.c index f2cbc8e5b97c..6f0f8eaa044d 100644 --- a/tools/testing/radix-tree/main.c +++ b/tools/testing/radix-tree/main.c @@ -15,7 +15,9 @@ void __gang_check(unsigned long middle, long down, long up, int chunk, int= hop) { long idx; - RADIX_TREE(tree, GFP_KERNEL); + struct radix_tree_root tree; + + INIT_RADIX_TREE(&tree, GFP_KERNEL); =20 middle =3D 1 << 30; =20 @@ -78,7 +80,9 @@ void big_gang_check(bool long_run) =20 void add_and_check(void) { - RADIX_TREE(tree, GFP_KERNEL); + struct radix_tree_root tree; + + INIT_RADIX_TREE(&tree, GFP_KERNEL); =20 item_insert(&tree, 44); item_check_present(&tree, 44); @@ -89,7 +93,9 @@ void add_and_check(void) void dynamic_height_check(void) { int i; - RADIX_TREE(tree, GFP_KERNEL); + struct radix_tree_root tree; + + INIT_RADIX_TREE(&tree, GFP_KERNEL); tree_verify_min_height(&tree, 0); =20 item_insert(&tree, 42); @@ -155,11 +161,13 @@ void check_copied_tags(struct radix_tree_root *tree, = unsigned long start, unsign =20 void copy_tag_check(void) { - RADIX_TREE(tree, GFP_KERNEL); + struct radix_tree_root tree; unsigned long idx[ITEMS]; unsigned long start, end, count =3D 0, tagged, cur, tmp; int i; =20 + INIT_RADIX_TREE(&tree, GFP_KERNEL); + // printf("generating radix tree indices...\n"); start =3D rand(); end =3D rand(); diff --git a/tools/testing/radix-tree/regression3.c b/tools/testing/radix-t= ree/regression3.c index 9f9a3b280f56..dc235bff0063 100644 --- a/tools/testing/radix-tree/regression3.c +++ b/tools/testing/radix-tree/regression3.c @@ -28,13 +28,15 @@ =20 void regression3_test(void) { - RADIX_TREE(root, GFP_KERNEL); + struct radix_tree_root root; void *ptr0 =3D (void *)4ul; void *ptr =3D (void *)8ul; struct radix_tree_iter iter; void **slot; bool first; =20 + INIT_RADIX_TREE(&root, GFP_KERNEL); + printv(1, "running regression test 3 (should take milliseconds)\n"); =20 radix_tree_insert(&root, 0, ptr0); diff --git a/tools/testing/radix-tree/tag_check.c b/tools/testing/radix-tre= e/tag_check.c index f898957b1a19..51c0f0d6152c 100644 --- a/tools/testing/radix-tree/tag_check.c +++ b/tools/testing/radix-tree/tag_check.c @@ -42,7 +42,9 @@ __simple_checks(struct radix_tree_root *tree, unsigned lo= ng index, int tag) void simple_checks(void) { unsigned long index; - RADIX_TREE(tree, GFP_KERNEL); + struct radix_tree_root tree; + + INIT_RADIX_TREE(&tree, GFP_KERNEL); =20 for (index =3D 0; index < 10000; index++) { __simple_checks(&tree, index, 0); @@ -61,7 +63,9 @@ void simple_checks(void) */ static void extend_checks(void) { - RADIX_TREE(tree, GFP_KERNEL); + struct radix_tree_root tree; + + INIT_RADIX_TREE(&tree, GFP_KERNEL); =20 item_insert(&tree, 43); assert(item_tag_get(&tree, 43, 0) =3D=3D 0); @@ -90,7 +94,9 @@ static void contract_checks(void) { struct item *item; int tmp; - RADIX_TREE(tree, GFP_KERNEL); + struct radix_tree_root tree; + + INIT_RADIX_TREE(&tree, GFP_KERNEL); =20 tmp =3D 1< To: Andrew Morton Cc: Yury Norov , "Jason A. Donenfeld" , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Matthew Wilcox , Peter Zijlstra , Ingo Molnar , Will Deacon , Boqun Feng , Waiman Long , Dennis Zhou , Tejun Heo , Christoph Lameter , "Paul E. McKenney" , Frederic Weisbecker , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Uladzislau Rezki , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang , =?UTF-8?q?Onur=20=C3=96zkan?= , Kees Cook , Joel Granados , Anna-Maria Behnsen , Thomas Gleixner , Juri Lelli , Vincent Guittot , Dietmar Eggemann , Ben Segall , Mel Gorman , Valentin Schneider , K Prateek Nayak , Mike Rapoport , "Liam R. Howlett" , Lorenzo Stoakes , Vlastimil Babka , Jann Horn , Pedro Falcato , "Michael S. Tsirkin" , Jason Wang , Xuan Zhuo , =?UTF-8?q?Eugenio=20P=C3=A9rez?= , Sebastian Andrzej Siewior , Clark Williams , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, wireguard@lists.zx2c4.com, netdev@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, rcu@vger.kernel.org, virtualization@lists.linux.dev, linux-rt-devel@lists.linux.dev, llvm@lists.linux.dev, Yury Norov Subject: [PATCH 10/17] klist: assert static storage for DEFINE_KLIST() Date: Mon, 14 Sep 2026 23:13:25 -0400 Message-ID: <20260915031334.1194975-5-ynorov@nvidia.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260915030336.1192299-1-ynorov@nvidia.com> References: <20260915030336.1192299-1-ynorov@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BN0PR03CA0012.namprd03.prod.outlook.com (2603:10b6:408:e6::17) To LV3PR12MB9356.namprd12.prod.outlook.com (2603:10b6:408:20c::21) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LV3PR12MB9356:EE_|SN7PR12MB7834:EE_ X-MS-Office365-Filtering-Correlation-Id: c0316fd1-1c80-4d41-f50f-08df12d76112 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|23010399003|7416014|376014|10067099003|22082099003|18002099003|56012099006|11063799006; X-Microsoft-Antispam-Message-Info: eyrAosqQgzIvIAx002+kKEoK1AesvppnYTuLjt8GWu3kAXfRJbIAYQOVmLUiNd2LbdE2dcJpjXNOTpRBn7P3b9bxTLdDhuPZbs2eauk3gzL2i06ok69gUmnKtfcmdeXISq+fDZNSROENZ931kn7d7eiJc/5BhKwkHXXdJ6xLFDkCrz/n1byhETTiTlBimkjlQwVdTeLUg/AWENSBf61n7Kh9gl1YwNg8gElL9LnPUY6+qCM8ToWBiLS25hiEOBrWs7Itow+E5SbqmPB3/XKBm9uvptCa+fDUTm56m/h93c7kLQw4w97qdVkWmTuLXGIDfEKfXK6pRgw1rQPlooUq6rDhuXD4D2RWWaoWuF4uEx/65cD1iaQk2f21VUaAPs0T95KNW731ePptrk66TonlQ4CADKwdCdObx8eG8xz4id1jLAiaXQgGD3d9AGQ7PVHG9WFh4wbL89CfsR8uIQn3z1HfZKiPSntzThU5cBLGWbrMD4fOQ2PbtyiT5Y9FjDjfNZXryg/tfQfr0e8sMUdZ6CVztoGk3eLLsAwWeCs2qEV5LC2/P/yR+tMYObefnj+e6Q11OTqIXyrDehAVuYFPBw22fF2RJfXH7DOWJ4vDx7qFEYhpAphEjVVOBiwtCkien5PAhOVxU+XBQDpS0Y5H0YeD2024GCs9+G84y/77cQ8= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV3PR12MB9356.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(23010399003)(7416014)(376014)(10067099003)(22082099003)(18002099003)(56012099006)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?lYnOa1BUkoDF+fMY5X9B85RymRmIorNlyqg7CJn8mLccC5vL+cQnzr+0t9Vv?= =?us-ascii?Q?qH0qwoem6L6iad2oODF02RsXiLex/9OIK55NAvRjiL6l1rhtCixJc8TkDwWl?= =?us-ascii?Q?VYLhZnNxX8uJ+sBlvU//TiMD2VKx8MSAwsjZ8puVEyijDJORhmKPO5fakHS4?= =?us-ascii?Q?PxokWSBd1kmVLDjsgBfmeVBrYlRt1avUYdAWYJfBeWeQ2sDAGjEZGrmECbox?= =?us-ascii?Q?RlUnb39uzGeBgp7uFToZwOYn/kKZJlfS/bLRdWbzSbRU0Qsohx3FB7pGXKZ8?= =?us-ascii?Q?295t1pwc4+uXDuu22RoGKxsPm04YBslG06+9GMmB5dlcsdsz17SKSRW6HncO?= =?us-ascii?Q?5V5vTEgEoVUEA5RF6xyMUdhDkuhrJ3mTfJBG91cnDXuIuNYvF6wbwJo/525o?= =?us-ascii?Q?7KHGvHAcFKzUrQGHSDMyIWPOY5GGOZbjP8J1tpAGwdkujaEEey7knEewvFcV?= =?us-ascii?Q?Qgq67NQnwB+PLsQA7YWLYKWue4KZK+DEbVRqMUnPjR4Niwz5IDN7zt/dDAjP?= =?us-ascii?Q?Y2QRH1qwlwx0JMAhicLYIs0eKQDz912i0i80JkPcDpxpDnCcC+Osnb95SSPd?= =?us-ascii?Q?txG2ddjXtvJSCRhgTB5Qw6Arv8wZ57mYtFa75INp2AZRHucxazz1savjzp2y?= =?us-ascii?Q?CBjMlHLWVZ5HJVlcjXJkbBYCBqSjr5sdSQiKGjq7N5I7IGWAddjdSTAuKPxr?= =?us-ascii?Q?JDNBK/sf4QJvFTWz/kt5TLEWpz4d1jnNsP2QkBgMSXjsulgrSCNnLPCbLg+K?= =?us-ascii?Q?Npt7Xas/EiqgtdVfF189r+zwRxn2pjtl5FCFurdqQyzxd+AEzM9inaOFJ1L4?= =?us-ascii?Q?gcenPmJkScvEOw91jIC664FHQ3J++6XEGoBOM0+OepmOcOh0l6yuPatvwli8?= =?us-ascii?Q?3Xa3m/WDeakzmI13ojiZUmAztiEb/SDt2qaSck9/fzkLLLMAQuHzc7XnU3aj?= =?us-ascii?Q?CRo8v1GxSAxW7Lk8syBqNJm4KbCcseCXzCWqhRUQWP3SzmIC/u7RGXZ1i1/n?= =?us-ascii?Q?E7so+XMm9cLjzm1czg+Io6u4I6nEcPv3ehiW4rJXla0/50NuuJyxjfYMtlyr?= =?us-ascii?Q?cgnrJzaF9u66tnHkZgqrQWpFAeCizUlHn/W12P/c8k2oJpxYX47WscuWt+fL?= =?us-ascii?Q?vuUMbrqxvHijU7UAcznsMAr7xSEQQK9NuQv9Gv7sRixJqURnOMHOaoKsZoTK?= =?us-ascii?Q?mfh9PsfyZv/sD+EngBjiCePpxk5qm/htKmkYknf0RakiBP7+ZTGrF9s4OlpH?= =?us-ascii?Q?MIYaL2Ydl9tMFoTlWRnkioZzXiWXV9v70FM4rJ1iGbuWHjrQSZBxFpdIWf2R?= =?us-ascii?Q?AdZmVxgbLQvXleNBNUZjrwNyuFbvWVU6nnFw3InHi0DQkVMK6B1PXx4urPDn?= =?us-ascii?Q?uJn7zfBSaMX0Ro1NwsFXLLI/Wpk+s4iKHzLtkDS5lpgkJE/scMcCCKNpUf/9?= =?us-ascii?Q?NL8jxhJq2FJkaxBiiQuTc2EqWC+vqkR00qDD+nXxcMxkgS5JVL/Ag4xaqTqg?= =?us-ascii?Q?NeIOdlE2Pwuer0Bam2LPPxdU2xLxYfzUNP65hCYo2xaC7mZ7EZjWbrzJlcVv?= =?us-ascii?Q?G+f/Bfp1W01SlJys9U66ypsf2U3OBtGub7XQbK23wkqVoeEiChTVk/zrqxWp?= =?us-ascii?Q?mDcOlAngT/WSLLEcHRoWffOS/p/vBa46nKOfHLSWOMy9XJUDwKDdvq4GyegT?= =?us-ascii?Q?9Vi3C76RhGWCf4AT16AxGGDM0UkIoUwtVFU6qhONMCNvec2qfjQkoc4wlupf?= =?us-ascii?Q?VOMScQ3v+Q=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: c0316fd1-1c80-4d41-f50f-08df12d76112 X-MS-Exchange-CrossTenant-AuthSource: LV3PR12MB9356.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Sep 2026 03:13:56.8504 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: oNnoc6ULkEGQ5RmcnFTWTkj0Lo3CaL9fvV9SNXH9EUTfZ+JOI0O+yGQyMEkmJVSE/fTk23VfSsWgB0ad15r7VA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB7834 Content-Type: text/plain; charset="utf-8" DEFINE_KLIST() statically initializes k_lock, relying on the object address as a persistent lockdep class key. An automatic local klist must instead use klist_init(). Add ASSERT_STATIC_STORAGE() to enforce this requirement at compile time. Keep KLIST_INIT() available for embedded objects. Assisted-by: OpenAI Codex Signed-off-by: Yury Norov --- include/linux/klist.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/include/linux/klist.h b/include/linux/klist.h index b0f238f20dbb..5848363242b6 100644 --- a/include/linux/klist.h +++ b/include/linux/klist.h @@ -10,6 +10,7 @@ #ifndef _LINUX_KLIST_H #define _LINUX_KLIST_H =20 +#include #include #include #include @@ -29,7 +30,8 @@ struct klist { .put =3D _put, } =20 #define DEFINE_KLIST(_name, _get, _put) \ - struct klist _name =3D KLIST_INIT(_name, _get, _put) + struct klist _name =3D KLIST_INIT(_name, _get, _put); \ + ASSERT_STATIC_STORAGE(_name) =20 extern void klist_init(struct klist *k, void (*get)(struct klist_node *), void (*put)(struct klist_node *)); --=20 2.53.0 From nobody Fri Sep 25 08:46:28 2026 Received: from SN4PR0501CU005.outbound.protection.outlook.com (mail-southcentralusazon11011017.outbound.protection.outlook.com [40.93.194.17]) (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 95731405C38; Tue, 15 Sep 2026 03:14:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.194.17 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789442047; cv=fail; b=V/zwbWCOQs+0xu/S6/p9ct8uiu00aYTEJzeJRl86bcX5Zurlwaw015CGOglPj1LW0YMXpaRm3qjiIZRyHrK2jsfavjba1fLo2s8IM2yAP/pwYegNXT80OZXrS+vFb6s8qJt6cYWeeNpVNvawqBQKW8hW14Wm+hoNd1NglBjr6oU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789442047; c=relaxed/simple; bh=7cbYXjtkt3cdz0Jra77u35WsGr2PTRAj85ehYm4ZQSA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=rCzVYYMR7BOOTaEUKaWi4wA3ReuMAflJALrH6+oh/fio5C7oiU584d2kyy0UuCa7h0lx4thvXyEF5oyJ4cgntR6kLGZtTdGBITjpH7Zds/sk4QIB7q45Kb3c9V3oZe0097txPmo1Lrj+eYlxv8Xq1ecuAOaEvnPHfEUfFuAivwk= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=oy/NhTKO; arc=fail smtp.client-ip=40.93.194.17 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="oy/NhTKO" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=WSIB6D7iKUoABmkiN7JnDaNdfmvaOUzEwrUXJbYaa/DYFUu9L95c4gxewY2CXLLx2fUPFuDtWHhuBzKcMmyVDvIUdOPOOUoBtBwlqr1c7R5yu86arIpLYLTRcYhDHnCmQmjFX4547PekCdv3ANBtP1aMTEXnVHcNbwK3cSVuPCQhKoBlPgpska9u4tbRp83va9dHPwlik2UM9Jc/BKok282ih8UAAi3r3rEIk7iV/+teXRqwgnzIBvWGNk3ZvgfmGjyeC0w9qniK0UQE59DWXOznteCbX5tML745mfDgZC+YnhwatD7GLwtfBJlJx/Vkn9l5WsI+VMADrfoYcTlalA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=B8kFkXd1m+26n4TpAQnKbmfnec1sDIsa/XGlRgK7oAY=; b=Q4zSgGFKQ782/Ah/E1Unerq6a3w3kAVIG3TFu5+wLVQpxtrCBT1OhxFVjLUZHkXedergEZzTWLroWJMcr3IPvb71GFKQplO1r56BF3ZbAwwHxUTG0EHHND/5OvuIZ2VphMKbdpIKtRngDBBQvUf/Tj2k6ByjSotHXoJo5899AfM4OrbRAaEDbzeCBfwzawAbLIF3rA4i24nN2yIzPX8q91TsgAyJ5+x3BfrVb0auI4+ZQfGMQqZmYl/iwAmBJD5OnHhx8jbnem09/OaQ4Aj5vmou7HwnfGvNcyKcG/2hiKIYFK4sW7iqCcJxNvVUC31UbgROY0qdIuMr97O4JSKFtA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=B8kFkXd1m+26n4TpAQnKbmfnec1sDIsa/XGlRgK7oAY=; b=oy/NhTKODuvHMMvnp/9WRdmhDKbatbLOLJujlgTwulJlvYLC4fWEK9e+6GgGXNDykqc5Almcgmk6trJs3LhgQVvPBt+U65QlVeuJIObUhVgVFhKtFjTIulchFWEr5fDJX5XVcul7F7KxtoXpZCYSe2M0BLZ2v8G7ATsdw8hEMDFXr1OHgFQQuUb1Iof/Q8HqoVq7XZDAAwUqp1QPhXoyP0m1r3ZnqW41L3pahtQ2249gOWdCQZkwQ7lA8wzJfgE8V9JyAgGLAmB36NHdyNpL/CrzeZ89dLd4wTYRF78CE0EzuAjvEgL4e11qvWmtd+pOKjgAuaE87CHpoEs8tqcHpw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from LV3PR12MB9356.namprd12.prod.outlook.com (2603:10b6:408:20c::21) by SN7PR12MB7834.namprd12.prod.outlook.com (2603:10b6:806:34d::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.12; Tue, 15 Sep 2026 03:14:01 +0000 Received: from LV3PR12MB9356.namprd12.prod.outlook.com ([fe80::1c36:31b4:c420:6286]) by LV3PR12MB9356.namprd12.prod.outlook.com ([fe80::1c36:31b4:c420:6286%5]) with mapi id 15.21.0406.007; Tue, 15 Sep 2026 03:14:01 +0000 From: Yury Norov To: Andrew Morton Cc: Yury Norov , "Jason A. Donenfeld" , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Matthew Wilcox , Peter Zijlstra , Ingo Molnar , Will Deacon , Boqun Feng , Waiman Long , Dennis Zhou , Tejun Heo , Christoph Lameter , "Paul E. McKenney" , Frederic Weisbecker , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Uladzislau Rezki , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang , =?UTF-8?q?Onur=20=C3=96zkan?= , Kees Cook , Joel Granados , Anna-Maria Behnsen , Thomas Gleixner , Juri Lelli , Vincent Guittot , Dietmar Eggemann , Ben Segall , Mel Gorman , Valentin Schneider , K Prateek Nayak , Mike Rapoport , "Liam R. Howlett" , Lorenzo Stoakes , Vlastimil Babka , Jann Horn , Pedro Falcato , "Michael S. Tsirkin" , Jason Wang , Xuan Zhuo , =?UTF-8?q?Eugenio=20P=C3=A9rez?= , Sebastian Andrzej Siewior , Clark Williams , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, wireguard@lists.zx2c4.com, netdev@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, rcu@vger.kernel.org, virtualization@lists.linux.dev, linux-rt-devel@lists.linux.dev, llvm@lists.linux.dev, Yury Norov Subject: [PATCH 11/17] workqueue: assert static storage for work declarations Date: Mon, 14 Sep 2026 23:13:26 -0400 Message-ID: <20260915031334.1194975-6-ynorov@nvidia.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260915030336.1192299-1-ynorov@nvidia.com> References: <20260915030336.1192299-1-ynorov@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BL0PR05CA0023.namprd05.prod.outlook.com (2603:10b6:208:91::33) To LV3PR12MB9356.namprd12.prod.outlook.com (2603:10b6:408:20c::21) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LV3PR12MB9356:EE_|SN7PR12MB7834:EE_ X-MS-Office365-Filtering-Correlation-Id: 59a61efb-6ad1-404c-3ca5-08df12d76396 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|23010399003|7416014|376014|10067099003|6133799003|22082099003|18002099003|56012099006|11063799006; X-Microsoft-Antispam-Message-Info: kjJUI8eMVzCG/opWWped5ikzZ0CdSz5DrS32J5ONyrKNZReiHTnDhqe2d+mrzro4Lhf5g/iH4/SHp9bydl426hycueVEwFW6d2Jk5xENzHFb9hhvSJJlMtLpjaCfGsqJV46ay7Bf4q5LH5jlqkdV8BSvq5A6iUP3DW4KJcoqaAWaj6j8LPSMlO1zMuZoXiftCWk/qWefwxkmDnUmew742/m3ITGAR++Qy6Zz/otCOyoaogaile+7+gRUllD3e7loEP0kvT356EnJB17UvwMs0+q6Q57h32V6x6QpWoEvrybezsxRFXj+rWivmvts6tE0iVKC8cELuZOG1cJWVmY8Qx29LTDGfUKnqS2R7tbT4ze3u9B8f7T77yjJvjEGMR9Lgvh4c6f/t2kjhDHID8Ij/t0qmj1GaFSK4A2HEk92nG5pDW8ifCdLyz1Kr6lCwu8mz67sXbOGVjZQt5yHSZYcbB+OyJPZJ1h9I5eSC0n1s9phlQFLkq4OVDfi5an364KkXL08WzzGM/6fXuJDYVSCEcEAxOa/fD23Zz2aM5sbUXNMKgYGvMQM1v9oqyuMRdgYYxSoTj28nXdmCaEoVifFbXq8SImFueIyCcMgDbgzDuqfDLTXEcXdTb+CSMwuw/YMMA7FQvnEVDhl8cyOddIEcwy/qfON1vRv33Yo8G10/Hc= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV3PR12MB9356.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(23010399003)(7416014)(376014)(10067099003)(6133799003)(22082099003)(18002099003)(56012099006)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?xPMmaPXtZ5ruDtWhltl3nyl9uEnWy5weRKBQtMXq9QF70yUDMl8calIJXAd3?= =?us-ascii?Q?xoFuTnd2yePSOB6Zsa9Sse1Tbr1WB3Gx9aeqkUHeDmQT+ly93twVI+HlSgMc?= =?us-ascii?Q?IBFFO/JiKGaBZeJMM/teLMUhIfW/ua9kMmVJNc8U2d46n+hYVl/3RMjO64Ix?= =?us-ascii?Q?RtRXhyqr5NoAqLj8ZevHF67oBnB4s604V2b9t6kHd+3pCg8gFXQv8kP/FAGS?= =?us-ascii?Q?Qcviqks6d+qKHWQl8a0A2EygspLTt8Rz5/Gro8IDBo+knoYuYQl22uu7xV4K?= =?us-ascii?Q?EkZzIbgYLPTEaPpVd8nlgUT9m2I9o9M4nOaDHdnBjQ8/qbzspoWDuUPiFbks?= =?us-ascii?Q?GS3uUQfreqy+RElDLOBXTc4MerDL0werxEK5boHUdSygwyk43S3udtr7IMBD?= =?us-ascii?Q?3xIf413JfLtcfW3IivONG6vxtDd+LQGKMtSyeuNFnbQh9oiYazTwlQuThv9w?= =?us-ascii?Q?3WQv/O23OfzGqwG2BeQTaAlumoAGk0H1TqLwghN5pfUnHFFE6IPKu5fbRoAc?= =?us-ascii?Q?2FOpVfuXc3lkFGHXgr33+b1+BcgNQiT1ILjJTQpwp65AsVer9zmzxygdqIR/?= =?us-ascii?Q?HxdMUBJ4WxUIOfYClVUjlSjXKllcbIeKuPr93PkgqAdNohqBqVS2fEFCziJQ?= =?us-ascii?Q?SyD6oCpbL19TKnvMatoYDiw1twM3NB8xuNnvVwNYMEkdxWZBcMAUl8NBYjhq?= =?us-ascii?Q?dH8H04gumcasviCi9LJWeIvw6aIqTXgrKZeEJo2jMp/f9pZ+97q7d3W+pK+j?= =?us-ascii?Q?ARVys9xl33CGGn7wR34kU2XmGDrClAS4Ytm99ePpU1Maf4SWDCc34+AVeXPn?= =?us-ascii?Q?4ND4VH0hhLC9dh2CtuGuGfMYkBNnXNkT8bcNdZpv0DknvTk/wBO3hetzSD5r?= =?us-ascii?Q?laTHIPmOcFS/xX/naZsXuOtUMzwlmt3jLZfQ6hpLbEaM8d0oMgapAsQA3O1O?= =?us-ascii?Q?EaFJzsgCGiQemVAtKsoVB8tmK2TjVA7TU0nT8fHNHfR5lfGoYqa7kU9VM931?= =?us-ascii?Q?wfRmnbliixSeVbTaDVPQBIc5Nehp7eHcxJ7zFXMQnf8XqpRc+3pX55eGm4eo?= =?us-ascii?Q?TUCfWtBX6hk6wYnltDUgAZ04w3PbdMWqh3PBao7BXuIB4GO16rtJ9EpUMTXl?= =?us-ascii?Q?YjG8CJtaz8aOmnQ+iWFCRP/1OF4y2oV4QnXOn5wwh62Bta2IFspufrhl6xNj?= =?us-ascii?Q?5I1gv0ozFM3B2MElnxCkgEPwBmaejc06YEe0Mh19JYjzqyBExSxGtVIBwMft?= =?us-ascii?Q?5GKVAE0qN1tVBbjjKnIB2XP/5iTeEACO2HdgRrpwL/s3q5I7X+35X/hoJ0RR?= =?us-ascii?Q?X23eftLQkIrMZycFVSA3EwBSTFFJyxIyhIgec/avrIVBsTm2LXfXn/KhgEKr?= =?us-ascii?Q?Z72LpVePl0csJ2jIWYVQ8C/P2Uoey/g9gvEzYDlv2dVo/DTBDMET5IHcBEFl?= =?us-ascii?Q?XmXZ8cVjCvwxCh3jm+7kMs5I4PYiNKSxtPGGJ9TXwUbDj6Xp4LssqnajjF6X?= =?us-ascii?Q?o+0dSoa2XkX3oMdws8oFqy2DWhOqOeqA0C9E47Psif4hZ2lAtbBT6yWAMkz/?= =?us-ascii?Q?Puqkab7ICBXuaeg+P5SJbup3UjhOoMlCHfH0ZaBgz1xs0AiULxxZ1OZKrYUZ?= =?us-ascii?Q?txQenUCBJVAe3CyETg2nkch9Q1iIUNO+M2Af8B79scHRTQcUCcz1CwbiNYLy?= =?us-ascii?Q?V/YFECq1qON6N0lBj7tHRZBengFL1pf1KqSvtoM25765egoKfxpyjwfLcNN3?= =?us-ascii?Q?QLkIeLPaRg=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 59a61efb-6ad1-404c-3ca5-08df12d76396 X-MS-Exchange-CrossTenant-AuthSource: LV3PR12MB9356.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Sep 2026 03:14:00.9179 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: j6NJduMIvlT/VoFZpGDIENw/vDuldtT+gvErjb5GD08V+mW+j7ROgQpzlOtxsXT2R2j9k9SYHRStGZSJhpcRSQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB7834 Content-Type: text/plain; charset="utf-8" Static work initializers use the work address as a lockdep class key and mark the work item static for debugobjects. Automatic objects require on-stack initialization instead. Apply ASSERT_STATIC_STORAGE() to DECLARE_WORK(), DECLARE_DELAYED_WORK() and DECLARE_DEFERRABLE_WORK(). Automatic objects must use the matching INIT_*_ONSTACK() API and destroy the on-stack debugobjects before leaving scope. Keep the underlying initializers available for embedded objects. Assisted-by: OpenAI Codex Signed-off-by: Yury Norov --- include/linux/workqueue.h | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/include/linux/workqueue.h b/include/linux/workqueue.h index c8a36423cb34..433c9801d9c5 100644 --- a/include/linux/workqueue.h +++ b/include/linux/workqueue.h @@ -6,6 +6,7 @@ #ifndef _LINUX_WORKQUEUE_H #define _LINUX_WORKQUEUE_H =20 +#include #include #include #include @@ -250,13 +251,16 @@ struct execute_work { } =20 #define DECLARE_WORK(n, f) \ - struct work_struct n =3D __WORK_INITIALIZER(n, f) + struct work_struct n =3D __WORK_INITIALIZER(n, f); \ + ASSERT_STATIC_STORAGE(n) =20 #define DECLARE_DELAYED_WORK(n, f) \ - struct delayed_work n =3D __DELAYED_WORK_INITIALIZER(n, f, 0) + struct delayed_work n =3D __DELAYED_WORK_INITIALIZER(n, f, 0); \ + ASSERT_STATIC_STORAGE(n) =20 #define DECLARE_DEFERRABLE_WORK(n, f) \ - struct delayed_work n =3D __DELAYED_WORK_INITIALIZER(n, f, TIMER_DEFERRAB= LE) + struct delayed_work n =3D __DELAYED_WORK_INITIALIZER(n, f, TIMER_DEFERRAB= LE); \ + ASSERT_STATIC_STORAGE(n) =20 #ifdef CONFIG_DEBUG_OBJECTS_WORK extern void __init_work(struct work_struct *work, int onstack); --=20 2.53.0 From nobody Fri Sep 25 08:46:28 2026 Received: from CY3PR05CU001.outbound.protection.outlook.com (mail-westcentralusazon11013037.outbound.protection.outlook.com [40.93.201.37]) (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 DDFFB404BC5; Tue, 15 Sep 2026 03:14:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.201.37 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789442051; cv=fail; b=b1wBLmDVPee9aupS9g3IQr70PLzqw1vLAa9jYLwrz0RpZpNknHtDtmmAEMSSugtQo/Fr72BjddTVbzEVnPzUUFDTJnvEibuv/JXO+fmd2PFw3Ymg+8qhkrd/+uvjDrHYxEg5dBlpZKCjhhyZkvtDnLK0L+Lx0bqBC8WwWJ5lkfc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789442051; c=relaxed/simple; bh=iMNpe9nu1qcG0CmhO4kPuycdji0kzcFQXlDeXpsXG1k=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=HTpBFY3q6UNYq82JvghJDOA/h4yKnM+Tzz3p3bCnl45oHXX6nPwJxpMGFqQ3AIbEWQ/RQKla0ecvTOuPwRhR4nDivBmVjniAb3+eXJ3CD1DKb4ilOGSSUBiYSBgObFJHN5z66wj90sejDLNtJfJEv0FFo4JYXo/ADJrtz2TsJcU= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=Iokhuv8X; arc=fail smtp.client-ip=40.93.201.37 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="Iokhuv8X" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=U/1ERiTamalyRNRtBRawVFzWVIig0yQPuukX4Ry41IR6ElWx0+xu/yHu+QQtCEqYESJiDuLID+HUKoeIyxbkOW8QhSAoH7mJ67qnJLb2OYUYKmC6jC22lr1eH+TVDDdWFzt1Bpv+3OJ1d62SFXWIb74ZoQfkNYY6InClu1goNMTsaWLRVzp0byZ0DsBatL2pGUEfnSIvj0YVplNl2uy8yyk0LyddDAhUcVna1SRMxKXFl0G9tIVm1ffJv5txfcb6L6Qv8LHzphUsDNykuaA/fqCncRa7o55uyJSxA94wq/vBn9w8HNZXIbR2pvaINRbyKcUNoHqCp0LGY2Rk/kVZNw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Z0QoCgXQzA24OmfkDLp8aNFtpGYLCxlnSXowFOOJK3E=; b=igYovuW8I7Q12RpU+jt/luTaOceJQxD4q4k42h5S7inVecff/tBg/DlHTFFTC7nwtd61AuTgV+Jh1UbELjntCbs4oxYyLN48+0WfaBH5gBwwVo3B9qlghlOMzRsAFOmEKpFe2lnEGxILLfGoVv7wix/REybxT3eO5PhlKF25X96Ts54FHPSyr8LHFmB6+mr83WFJ9iBpR0ILgwFw2+4tBy7sYWdBeO19LKludgW0oEf0lH5pYJb3n0GALj9EyUmaiuoo029yp+3ifHoOBE6CKW35wIIj5JJZCw98gWFQe4shs8h/dFWJtE2rD6FrY1ijLO33rQcJfD1BaOmV8EGSjw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Z0QoCgXQzA24OmfkDLp8aNFtpGYLCxlnSXowFOOJK3E=; b=Iokhuv8Xr6v4WTCnN1Zwqo7FmwUuDu/OZud7ki5saDv4MS3ZOxNvJNilFmx/3RRb0GADS1lyFEWZZoFQkFU/nMvSVEQvRripsIlosORVKiZjj2MCx1/2bpjN/5TVaeSjyZ8xfkGHz9BD29U28vbDU/XugaB5LEz5iLePQ4oA67xMcplzHYqYRZJoC2dEVPPY77z8syLRW6tCp49YJ/WV2/noFZoOH948mKCg2uOFfgOkfpfBvAOgP5Yx4ViZbPrIM/In/I8nqOqYqBNUf0S3bpGmdQcjCd7cZKAirchoD7j6D1uSiai0GWOb7B1uHcapjJxeNYMzn29zfF4oNYa0Bw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from LV3PR12MB9356.namprd12.prod.outlook.com (2603:10b6:408:20c::21) by SN7PR12MB7834.namprd12.prod.outlook.com (2603:10b6:806:34d::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.12; Tue, 15 Sep 2026 03:14:05 +0000 Received: from LV3PR12MB9356.namprd12.prod.outlook.com ([fe80::1c36:31b4:c420:6286]) by LV3PR12MB9356.namprd12.prod.outlook.com ([fe80::1c36:31b4:c420:6286%5]) with mapi id 15.21.0406.007; Tue, 15 Sep 2026 03:14:05 +0000 From: Yury Norov To: Andrew Morton Cc: Yury Norov , "Jason A. Donenfeld" , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Matthew Wilcox , Peter Zijlstra , Ingo Molnar , Will Deacon , Boqun Feng , Waiman Long , Dennis Zhou , Tejun Heo , Christoph Lameter , "Paul E. McKenney" , Frederic Weisbecker , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Uladzislau Rezki , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang , =?UTF-8?q?Onur=20=C3=96zkan?= , Kees Cook , Joel Granados , Anna-Maria Behnsen , Thomas Gleixner , Juri Lelli , Vincent Guittot , Dietmar Eggemann , Ben Segall , Mel Gorman , Valentin Schneider , K Prateek Nayak , Mike Rapoport , "Liam R. Howlett" , Lorenzo Stoakes , Vlastimil Babka , Jann Horn , Pedro Falcato , "Michael S. Tsirkin" , Jason Wang , Xuan Zhuo , =?UTF-8?q?Eugenio=20P=C3=A9rez?= , Sebastian Andrzej Siewior , Clark Williams , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, wireguard@lists.zx2c4.com, netdev@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, rcu@vger.kernel.org, virtualization@lists.linux.dev, linux-rt-devel@lists.linux.dev, llvm@lists.linux.dev, Yury Norov Subject: [PATCH 12/17] timers: assert static storage for DEFINE_TIMER() Date: Mon, 14 Sep 2026 23:13:27 -0400 Message-ID: <20260915031334.1194975-7-ynorov@nvidia.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260915030336.1192299-1-ynorov@nvidia.com> References: <20260915030336.1192299-1-ynorov@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BN0PR04CA0083.namprd04.prod.outlook.com (2603:10b6:408:ea::28) To LV3PR12MB9356.namprd12.prod.outlook.com (2603:10b6:408:20c::21) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LV3PR12MB9356:EE_|SN7PR12MB7834:EE_ X-MS-Office365-Filtering-Correlation-Id: d019f979-0599-4483-494b-08df12d76616 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|23010399003|7416014|376014|10067099003|22082099003|18002099003|56012099006|11063799006; X-Microsoft-Antispam-Message-Info: PduY5E7IbZ2GGSPCDFg3OoTmj9xsnV+ZUdMnI4bxyK/HV/vJQvlzf+x553ux9RWeylbcG9dOagd8/E8IYDUHZ4QkEKgPHx2/V5CaFYXx1VXgcO/pG2syhfjHc0Ov8XZl+jeZEPy6gvpYcZxVHvWdLIu8k7I7Lllcofkg3p3IvhVdjgj+CIAlz6MidhMSrp30Bsi+vMo9HS6RjkXUCzc4exg+k/kOU1bXZsWkT8hQCIDqSxfZq+VVe7OUS0zueT03f9UYYf+M2YMg/S0NAoMJy19RNGeGWYwElsXkHiG5+icTjRZqGfbdcpa21ZASUMFrBTMMI3HcBtgopLSVHM1bI63DAm532MajssaqjEYD4V8SNNaGUaZaFUP4AdYEyax+sFPr2qveaRPxSaAUG9TLB4XS1PsAEMHZTCSZzXMtjJWy56FEnUCLmCglcfZygGRU3zrpZWjiM+VnQ+rWrxb8u+/f39od4Ec0c45v3EPupRPRjyaLc9a7U/QMDmq/UWdFc2OHDOKBNY68kgmDPxOwJ0MzGydqJrJEZENqtY10Hyc0CFCN+ZK/Vuit6/5BgGPClMbZ5XA+OYxg24fR78iY9pqSPrdA64KSfFiznYxS9bi2GTb5FNvYPBin7957jFEGgGQqBtjW3FcVfjLhohPB61MAFji4MnVxzD5i6POFHfs= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV3PR12MB9356.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(23010399003)(7416014)(376014)(10067099003)(22082099003)(18002099003)(56012099006)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?4BbLavi3sxgpW0o0AGOGOzJhkocr9SbTtILGVXFP5glZkG7aq1hseTR/1Fuf?= =?us-ascii?Q?74vjJ5XJezmNJ0k0yzhIiA55iCc7VcRzdpygLhcfj+obtIQumc7ArEoROcmh?= =?us-ascii?Q?FptacBVPrbAWOSsmMohD9AUxqjtvgfvI2Nxqn5csY4ueLKgIg1B2c6dWnThN?= =?us-ascii?Q?6mIF8Wsf34C4rDOw0DHwpR/Sv3iKvGDBjL/Hlet6hfXSBH/7MkUgEvUJoRU+?= =?us-ascii?Q?s2s4Hp0RkBkqvxCqnOtDh8nbFHOcdktXOnw7gbJtmghMzMMMzRi68k0A1L9i?= =?us-ascii?Q?LYgz9ZUaPcVBsDKkQPvna/YIDQbSCa3z294KlrVPMaYHhOZnzHxgCBZfocs4?= =?us-ascii?Q?J17LeM79zItudrrMlQkgk9BqBAtCSuP/9XmYbTFM6+bvIJ/uiFaVJLd6CohK?= =?us-ascii?Q?U9NV7AqRAHwudcF/nyL6LFH8/wXDZcuBGtmj2u4/dJ9ig00X40hvRtKZ7LZm?= =?us-ascii?Q?GG7rYibgLqfGPtCf78BJ5eeed1XJyVJd5Uoy7ZUJ7aLHLvZBdhq5R6sSl45P?= =?us-ascii?Q?xUCCPIlWG8uIZlr/l+bkdC+lwyzxHRJVP+aCWm2R2ZivZBMaY5+k0ntMYWzP?= =?us-ascii?Q?B2r3G+7SHFejIUGmYitEzs6kxOcf0eRSH1XKH8fUM1Jcafe/BZCthjFNf3Jh?= =?us-ascii?Q?C0pTVAs6YLJqVJjgYnHqHRea0MIg16p5Zt74L4nFesrD837u8MPE+P1g0X9L?= =?us-ascii?Q?MlO6kQ3g1ynU+JgNM8qVXOxtgmzbkLir+dI0SAAekeZE/TD+M0/nnA8LdPAD?= =?us-ascii?Q?rF4lv2Yht7KWQUM4oWHQ650HzUPR/S95mkXCBCShbPLuwyyc1lTLrnB/0Cr5?= =?us-ascii?Q?RzY4z0OQuWaq99m0Tq2rxcnvGS+rsDDXRsAn0aeM+KZCboJcYYh6fA3loTyI?= =?us-ascii?Q?YJwOJDyAf45fWsaQWh8vnA1cp2Lr84gohhvlONW6rGRn3Lw5UpyYUf/V6PBw?= =?us-ascii?Q?Fe45aa7J9agVTOSaJm7fZv1UZ3PS00nOZby0ztSSy7Jl8+yPBuvPfGOgs+Wx?= =?us-ascii?Q?XP3BXBgR1BrxIkC85t2AW6pH2j4BH2tPuomZkGa7RDxoLOiFgHSQFGRVTYsb?= =?us-ascii?Q?xw3L/Z8w08CBMyJfNtvjnFixN3gYXljPU00lpnvd759muQLtptcW60Vz03ns?= =?us-ascii?Q?/86CZIdG9r7wGFKOa8Dwn1y8F238BbRe/xAq9iCjFKvIIdK9nnjrWcYiXcGl?= =?us-ascii?Q?VRu0kFrXKIgcPQ6tgMIi7TqcoHDaJetzEDm03VeYK+2plpRAuAUFDDJYOtaH?= =?us-ascii?Q?5NI9/LsOj27okmcusru9qsuxMHmENQQlNQfU4o+oG7xh+xUkzgsuPVdFzS1r?= =?us-ascii?Q?p+MavAjyconF8GcquY2FH48Xu7pYxOFLN1Cce+cj1d8Wg12a5FPKKzPaQgI9?= =?us-ascii?Q?NeKeN4Z1f/zLWLl207jxO9dEKCyiUkcNRkGac+Jn34dzhVgoXkay9d7zs7Q3?= =?us-ascii?Q?VQRCc8pEpKcTcaxvbutKO1Ptk+QoV/Xl/lcytXT+9jJQhS7o4LuNwM450akt?= =?us-ascii?Q?XzeM2/9CHcoLBu3HadWmvEWTCrOOzg5tI0OznGrhFLaHP719X8Mq8Cx5AaX4?= =?us-ascii?Q?uYpgidZnOok/9hwItbNKn8b+sJeeWJ7ejrzUW4+ViI8F4f3DGoViVpLTFWr6?= =?us-ascii?Q?Hoj3cVPeNmNldd8fPJgmKKa/VISvAnPiJttYQBkWQyO0nBEABAfdsr6E4dDP?= =?us-ascii?Q?R83wq7ah7wMUnxRLU01T6acZkgdg4VUNpyj0oaWv4uSBGPuRc3fLbO/LuWP6?= =?us-ascii?Q?x8Ss7Qo+lA=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: d019f979-0599-4483-494b-08df12d76616 X-MS-Exchange-CrossTenant-AuthSource: LV3PR12MB9356.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Sep 2026 03:14:05.1211 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: CwBwzfGrRsuffy76VyyABxDuTkMYkZOTZLoXDD7zMTXbO6RlM8Epp42YJvEtijl9TApXBRUupKDTxc9ka+YXMA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB7834 Content-Type: text/plain; charset="utf-8" DEFINE_TIMER() marks a timer as statically initialized for debugobjects. An automatic local timer instead needs timer_setup_on_stack() and the corresponding on-stack destruction before leaving scope. Add ASSERT_STATIC_STORAGE() to catch automatic declarations at compile time. The timer lockdep key is already static; this check enforces the debugobjects storage contract. Leave __TIMER_INITIALIZER() unchanged. Assisted-by: OpenAI Codex Signed-off-by: Yury Norov --- include/linux/timer.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/include/linux/timer.h b/include/linux/timer.h index 62e1cea71125..420509329883 100644 --- a/include/linux/timer.h +++ b/include/linux/timer.h @@ -2,6 +2,7 @@ #ifndef _LINUX_TIMER_H #define _LINUX_TIMER_H =20 +#include #include #include #include @@ -62,7 +63,8 @@ =20 #define DEFINE_TIMER(_name, _function) \ struct timer_list _name =3D \ - __TIMER_INITIALIZER(_function, 0) + __TIMER_INITIALIZER(_function, 0); \ + ASSERT_STATIC_STORAGE(_name) =20 /* * LOCKDEP and DEBUG timer interfaces. --=20 2.53.0 From nobody Fri Sep 25 08:46:28 2026 Received: from PH7PR06CU001.outbound.protection.outlook.com (mail-westus3azon11010042.outbound.protection.outlook.com [52.101.201.42]) (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 0A401409265; Tue, 15 Sep 2026 03:14:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.201.42 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789442055; cv=fail; b=O/1faYCvnpCN/HalM17GM4ObAD/KN6aW2r8BIZKLpwhchtc0nRA1rf2TgLmVZ2k7WfDEzaytZRIZTo0KoBmCw0crqasmg/PSW4HZ23/MUaKKbiRECNZUzYqsfg2cZB/n5iBYGUfJRmI8EJ5aAL3EBYSvXQ0/t1zsRfE3i3AIYtM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789442055; c=relaxed/simple; bh=tmPyNuDGAC6K/ocXo7Pty4+uWMZrkBxYk383TrA8nbY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=pJ3rWl2RyT28kaOVbFLo6HL2EtQ/dltQBIRQWtyJYFqyfGVLKUYQuzxWv1Kq4oc1DDjlJe5uJ3wzhrKYTGHp+qqd1Bu5qh/5fRk4IcfMFqFXUxWRu5FMFjRlC1f3QuLngIHhLaSqNeRCG2rq2FdBvBlThUxW6T/eRMKP976Q+MQ= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=M5xNzmrm; arc=fail smtp.client-ip=52.101.201.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="M5xNzmrm" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=QfQnZh2w0TSCRguPDIA15cnsx9FIlkmO+YjxRa9PNbvXFUe/swXfd1pV+g/hgjrfvyC8fIeokMvnJQ+kBUOYPL9939Mj2NqkTILxXqVBhutjj10vRhuPa2WfDNnj9JS1ndY2G2pIhrvilLTziI6ljALNPTDXQkD10g0JPxndniN7l36f/tvCVN23uWZvn2O/j05EsqO3slD14otI7KpzLqqr0AWwIUGrDv7Pb6enPR/UbxnTxw7tFtxmC4GH5+iJMM/LZdfIEnO3Du4uNCd0nPd1vv3z1EI5N7lCyBPsuOMUebb3MSKiUgMxMRbz/SJxZBJIfokJmehtFYvVOae+Ag== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=WPtKB+7W8H5sbo1OJJU8Q/XHvp2ScvI344FmSp2GBeE=; b=KaFvaNsWwy/LI8uK8e9tIHhFrH5bezOMwV0X3e+css0Da/i15WG1RaELRYFI1gGXCuN9zsgdqTaB5vJcQZLLAJJRBom0mh0P2CX2F68CP7/Q4hviIXTdhkdV1CbE+I14yjtTTufpTCdHJYdUwn5vToOJWE/eIDCeznSK4u7DKztJfpVkkFv9hmH14yJqrD0qEL6AUe9Wd54Nqm6VZyAz3DQbchFPFdSpPvBT8belntrWSkF31KGGDFSuBJdoHTpaocKdZ3P1CNdevxs2hct5LPAHrRLU5GUgugvL4VqRzt5SQK1+ZRg4lhVrvGiQ/vvBErHyWgHmoO3OEOwBL2Agsg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=WPtKB+7W8H5sbo1OJJU8Q/XHvp2ScvI344FmSp2GBeE=; b=M5xNzmrmgloewumcK1FE3nD6Ig0JMXQU74hTmwKaQgjM92IClsnvqIRH6e/6NXM3nkw9IrXDbcV6M5gMb6zsJiTIXcW3xFeduq7VyzaYRztOhgn/k3lG/9OC+8MnVsKO6gRfijunJlW+RRLdrGWvSh9t1KknWE6NQN7KAVBDd8/XBZ2ZrKygEr8vAxalOHxBPYiMJJV2bmH3WNQvBLPcB06IL2ri6feYYvJ9dwo/YybIrCiiv3fHx1dttsc4yjBc+CG+V/+PsGVnbp5MK7IbTpBn409dY4bTtC/2isE7c2Y2lAfVDB+GjhvnzUTBn9b3QG07DV1lwLirLX3wa6+bfw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from LV3PR12MB9356.namprd12.prod.outlook.com (2603:10b6:408:20c::21) by SN7PR12MB7834.namprd12.prod.outlook.com (2603:10b6:806:34d::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.12; Tue, 15 Sep 2026 03:14:09 +0000 Received: from LV3PR12MB9356.namprd12.prod.outlook.com ([fe80::1c36:31b4:c420:6286]) by LV3PR12MB9356.namprd12.prod.outlook.com ([fe80::1c36:31b4:c420:6286%5]) with mapi id 15.21.0406.007; Tue, 15 Sep 2026 03:14:09 +0000 From: Yury Norov To: Andrew Morton Cc: Yury Norov , "Jason A. Donenfeld" , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Matthew Wilcox , Peter Zijlstra , Ingo Molnar , Will Deacon , Boqun Feng , Waiman Long , Dennis Zhou , Tejun Heo , Christoph Lameter , "Paul E. McKenney" , Frederic Weisbecker , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Uladzislau Rezki , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang , =?UTF-8?q?Onur=20=C3=96zkan?= , Kees Cook , Joel Granados , Anna-Maria Behnsen , Thomas Gleixner , Juri Lelli , Vincent Guittot , Dietmar Eggemann , Ben Segall , Mel Gorman , Valentin Schneider , K Prateek Nayak , Mike Rapoport , "Liam R. Howlett" , Lorenzo Stoakes , Vlastimil Babka , Jann Horn , Pedro Falcato , "Michael S. Tsirkin" , Jason Wang , Xuan Zhuo , =?UTF-8?q?Eugenio=20P=C3=A9rez?= , Sebastian Andrzej Siewior , Clark Williams , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, wireguard@lists.zx2c4.com, netdev@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, rcu@vger.kernel.org, virtualization@lists.linux.dev, linux-rt-devel@lists.linux.dev, llvm@lists.linux.dev, Yury Norov Subject: [PATCH 13/17] kthread: assert static storage for delayed work declarations Date: Mon, 14 Sep 2026 23:13:28 -0400 Message-ID: <20260915031334.1194975-8-ynorov@nvidia.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260915030336.1192299-1-ynorov@nvidia.com> References: <20260915030336.1192299-1-ynorov@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BN0PR04CA0074.namprd04.prod.outlook.com (2603:10b6:408:ea::19) To LV3PR12MB9356.namprd12.prod.outlook.com (2603:10b6:408:20c::21) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LV3PR12MB9356:EE_|SN7PR12MB7834:EE_ X-MS-Office365-Filtering-Correlation-Id: 6508625d-a28e-451b-5dda-08df12d76891 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|23010399003|7416014|376014|10067099003|22082099003|18002099003|56012099006|11063799006; X-Microsoft-Antispam-Message-Info: xNZCZ05CokS+06mssy+aROA0AxcZ2+USI1Vh751SSSRqmtoxbQyrA9xeblHZb467e4W7Aa9VGZlPbmc7pYDhkmduzriFIIpt10A2og7kPJ/lVdaFYKYtQh4YKySQy0/k5gQ6FWYUQmiy23G3rJdqM8RiuBeSNw0AU+7WzF3syn4GLyWDr38oNRHSm536q8x3OAlMLSREmIUhu1PRcJI7IAG5AZRknPJ3hoYUWJxt20CB/6AJzd/HJRFJda0yo5L5/SOY8ZYrdA2oTrgAZsgSlavjY2dGwe9WDCoRfYESjECDXN/g01188CuQnD8Nz4diGJU3qMHY/JrOdeRcxpTA6WjKVK7OLqu9HfoRFxA3XjoGiWqNR4PdGL62hyHbopb7wjW4gA8O7t9+Aijc2BBpd9yIeN5tBf4c9P64R6rPCEcvfa5U2Jx/C7gV0ul6aybAWP8GIkfzXiyhLRe/r6pS5AmDrc0c9kW7zGsKBjyoJfOsFrlyQCFDp2WQMYejhA4MuNTJucS1OTRef9evPUuyq+mTgqVvSOwIAmAShO0vLzjuQs/rk8nYibnrIFrGHGGAM8df2TGCTBPxl4CAY2He8q/EBDzFMTzEZoAfJoPnishBGjtZb3/gQdo4myeWNKggqDcNffMah74FlNJyWQk/wYrfJjTyLSz4ifq05PzbAmw= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV3PR12MB9356.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(23010399003)(7416014)(376014)(10067099003)(22082099003)(18002099003)(56012099006)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?1sqw7mA0H9+x/FUni6VumJbZUMCTk9yPjUzH4PO0BH6oicEfAkgFjfF8I7C6?= =?us-ascii?Q?AKxphRUh9YXSSzopj3bSPsEHKewAgUZzzxrSk+6iTGhLZU+AaCIeVvh7SUpp?= =?us-ascii?Q?vAwTi11QfiIfhbiJnWLPuMDwQzdUVN0XjgVd1POH/0Spu7jCDnsJM0fWA0JP?= =?us-ascii?Q?hJBA4DRIgA7g3+4IIgcYK2RRdBjWFSIOWSFsRTfM1FAY/WjVJ9WwZ+rbgKOr?= =?us-ascii?Q?jg3VSUAGcfysdH/GF6BxJgQHjyiqkjXI1A3z2cU+QVj0fsGS3XOup2207m37?= =?us-ascii?Q?is2DQ22Q4ne0FB+nviLq6ogBKCiJlxijSLi7T8UAfZyn2LxoP8MV9KG0CRuv?= =?us-ascii?Q?M+qoNWWuEW7/Pw89oBL97vy4Fh+f6gA38qwwo6SdOvZjmmcHLZdPhzBYjCyS?= =?us-ascii?Q?m8G/3kNrki07PFACKM4qGdZ11jW0Vsd3ENPYRzO+ncNqsrT7goQsKkdv0zNu?= =?us-ascii?Q?YNpiVjrjAErsZnEe8pFV3OYQZtbrqje9NCkS2YB6aETEPdth09h5bxOZz53g?= =?us-ascii?Q?S0ZDpsiAV/4SP+ch/G80byCuyTv4EozKciAbvqg0fm8elf1r/nRwnzh5vvlQ?= =?us-ascii?Q?wv6bi4yR1oB9SF6zi3ZLayc6ACxzq+L7z2vduIx6Vi6z+eu3/15vkP2onMPs?= =?us-ascii?Q?a9pUmQmHklt+2WNndE6CSVyLQKTCDRKVJhAeWRcGRtlczaRFmskYRR4GXD0m?= =?us-ascii?Q?R/ov1VSh133/wH7Qbn4+f+Qa1lTEU2+Er+E1e2JCbMaDsewHi1G03CFmqmds?= =?us-ascii?Q?h2Bdoule8bcrX2XoADx/8QLiKou2yf9SHyRo1DU9yvuFjdXRRQfogf0LiuLD?= =?us-ascii?Q?oL9L0SEGIj/t9dO37ZW9EVGsZ8qmjSN5InpmRPcSBE/RVsnD7J7AckVI14fL?= =?us-ascii?Q?DnSJFMYv+WtX/z2pKJqehU8waEZifuZk07SJvsniodiccTbbummlg0r8MqcB?= =?us-ascii?Q?x//StbLARzuXaMfDC1ZOmvmt1hPWS77Yf1FIZ2WHjmObHMD5FKfJVGnTAoVk?= =?us-ascii?Q?51aIfynC87+7iZNc1K/l/J0y0WJwxO6gjRYSDus9fQzybvzhcPuklH5YY53W?= =?us-ascii?Q?fdOQPfdMoHUJF7Of86milQ0SicxThC9BfTi9UXInEa5PmlVG+ZlTyb8sWcnw?= =?us-ascii?Q?E+YwaRuchL2pCRMmiAJjEGfQDArez93wshxQNe5D3j0JuGqfF0NrGvw7SZpd?= =?us-ascii?Q?0e4ow7IzUhj+pNZcF+CbD7eGZVDwimyIRgr1+syRM9HaSxhfHGL7kOxbvqUY?= =?us-ascii?Q?UUIHWYE6q1TaqgBITRKYNmbiG6gZ9LM92zeiljVs1uU23CZMR4WW464Nj/In?= =?us-ascii?Q?H7c/ToXKVY3pTX8nMgbpALRwSnV2tKUph+9rwfkN7wFzatcYhLrhT9tiFRqo?= =?us-ascii?Q?B8CUs+LwmsDtiax4ZRug4K3h/JUnwGEZXRflgFjmqeam6mGOPZtL3Ull4LCS?= =?us-ascii?Q?mOxrweBwOqaof6FkVdf23/0ckoMZ8oC/T8nj+h1jg0tEdRTDb1XGkdbZxrgJ?= =?us-ascii?Q?nNKiitrX7nwJq0FrV+CNA5u1qcak7/fHpZ5mMlTWRduxzJCH4tV04oM4bpa8?= =?us-ascii?Q?ha0Z/XCHMs/F3NsdK8XX92UPkTUm0t/m8XOvRQC4R/rwhWGFkrV4ukXnhb6m?= =?us-ascii?Q?Xd/FtEXwwEVqCcQwgCWLZpsYtjfwMI5ULvv/+XwOs7mBnXF0DLxyIFdf5TNt?= =?us-ascii?Q?5VNfAH/U2XZoCqel2d4DmCXxDLPXBcF2srcIO3CnRhNa2HI+Syq4gyEuX+r/?= =?us-ascii?Q?vH/rTUZvfg=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6508625d-a28e-451b-5dda-08df12d76891 X-MS-Exchange-CrossTenant-AuthSource: LV3PR12MB9356.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Sep 2026 03:14:09.2514 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: mCy+xh3J+SBrrgjrNfdGr5WrczFFXG5LADoiYcPngw6CSlcsE8/1l58PH26NSQVr2cAyiy2Y4+qTTOJ4jPkTSg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB7834 Content-Type: text/plain; charset="utf-8" DEFINE_KTHREAD_DELAYED_WORK() embeds a statically initialized timer. Using the declaration for an automatic object violates the timer's debugobjects storage contract. Add ASSERT_STATIC_STORAGE() to reject such declarations. Plain DEFINE_KTHREAD_WORK() has no embedded timer or static lockdep map and remains usable for automatic objects with an appropriately bounded lifetime. Assisted-by: OpenAI Codex Signed-off-by: Yury Norov --- include/linux/kthread.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/include/linux/kthread.h b/include/linux/kthread.h index a01a474719a7..faa9dfb2f6cf 100644 --- a/include/linux/kthread.h +++ b/include/linux/kthread.h @@ -2,6 +2,7 @@ #ifndef _LINUX_KTHREAD_H #define _LINUX_KTHREAD_H /* Simple interface for creating and stopping kernel threads without mess.= */ +#include #include #include =20 @@ -179,7 +180,8 @@ struct kthread_delayed_work { =20 #define DEFINE_KTHREAD_DELAYED_WORK(dwork, fn) \ struct kthread_delayed_work dwork =3D \ - KTHREAD_DELAYED_WORK_INIT(dwork, fn) + KTHREAD_DELAYED_WORK_INIT(dwork, fn); \ + ASSERT_STATIC_STORAGE(dwork) =20 extern void __kthread_init_worker(struct kthread_worker *worker, const char *name, struct lock_class_key *key); --=20 2.53.0 From nobody Fri Sep 25 08:46:28 2026 Received: from CH4PR04CU002.outbound.protection.outlook.com (mail-northcentralusazon11013003.outbound.protection.outlook.com [40.107.201.3]) (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 E21F2400966; Tue, 15 Sep 2026 03:14:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.201.3 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789442065; cv=fail; b=FXxVpGUbecYQHGVD+OAPhEXyKqlnGPCrOSEIlqyIpQ21KrfbRDnMgfT4I8nC15hhP2nxyKtyvs+spMtOP8XtbRHuR88eeTMLl6NdF4cm2Pd5d8NVVdvs3YVPbZiRmC1qidY6LGvssrO2ZdBQqLtN0Uz7ryOAccB17tbHlIwRQyk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789442065; c=relaxed/simple; bh=V1TmhLG8Lc5S/7ArJsps435Zjn4X8l7ZOuWq/qnojAQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=L553LF1PHhysn2fj1lmeDcyxGKmrOscyELquEPEF+kfGt9NG9UVGynd/H4/hg8rw7fGI14ZmpvrfvC8tZuWLkOaVZY0HGbYWJeF9MgLDFoKfYQJYLxj0RkbXkQSxa/HCyOn1Wz+Ptubvte7NQROeriU6D1N03O5yDLB9GTeUoIo= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=QGZdh4Y9; arc=fail smtp.client-ip=40.107.201.3 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="QGZdh4Y9" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=iw1YT7yvs5p+y9xcxMGtJAZLNr+/84np/hKcKSOIthHSV6x3LthgCRLAFDbV8ZR/+5nYlGWXneHdp9t593ymLxcSXqgQtpa+bZQwnjciHlQM9IU+lp1DTK9Ph3Ru9DxbmQj2vp61ulI9bsnFFWtxYtcEHWWceeaGsC3przMwnbON1Dp0CRwxQUSapmjgDzc7XqtrLGOiwZ7Z+m604JkLDKKNAIQ6BjelTScMkWxtO9DxViwVzsa12H5Qh26Mbb7xNGtsrANgOk1geRxBTc3Mt2Z3cRwQQNemQiSs+YahMAfGBD6MxUvqhXaIZx6DyVpZ+7IRMWWbOgt5zrwjdrGJNA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ZogL4xAOezmjA8F+JeTsfzBaeKTtrPOHSdjfQTRFq2c=; b=VRKoLc7oRhwa6bR8DvZnDk1fBCEPDxbM9CoiUSfY+ucnWpnxqu1r1hQ1ye21mB8L5CHQ5Pc8JULXXpdLBWtUt9htmjewP/Ld3Y6j2u8h4TjDpLSaDpxGNe3TNGkjG8kMMQ6kBRoIlFBDWIj8hM+H5jKkMJDpyo7zfSqQKu4DQzDTmtasniSyS20DChBQTp02XVdPfIMrjvOL9VLSZTL0Sn3UCrhbHF0nNqNCECe+MH/py0nNkBlRXlo1rcHzZa+YVBjEdVliQP97SCivSyFAO4nQX9jfxLc4XHrJHcOhLG7NAmP1za7NiYiTDihgbZxt4HbZftEfL056H4hVNMvUag== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ZogL4xAOezmjA8F+JeTsfzBaeKTtrPOHSdjfQTRFq2c=; b=QGZdh4Y9ygjTFc65z9RmrS7BMMmz/wxyZQhIKDwbFeZQKsuTPn8M7IozGHehI20byk9Gp4jCyIO3+Mw8+pW8iPNk2MQRIuAdeN9bRfu1GZBU7ZgKI9n9OoK3DwCgHDdnwl85KF1eOM5iG8I2p3KiLFrtzYqKeWHVwnNUY2fCJVHkdJDj2ednoDTO7LHOsCyTPfKlSmGTOWOPAUalW9Xpi7OxqhothG4+rWTZ76hVQmUKj5aQkz/oYqYtyUA6fpYlUHAOAIucCLznI93k9eYqRH35afSrhBbKd/UqhArK4+jjV31A+ZP59JJ3fA8PcvHjKz2pg9+fMM2AIa6eucjzKA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from LV3PR12MB9356.namprd12.prod.outlook.com (2603:10b6:408:20c::21) by SN7PR12MB7834.namprd12.prod.outlook.com (2603:10b6:806:34d::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.12; Tue, 15 Sep 2026 03:14:15 +0000 Received: from LV3PR12MB9356.namprd12.prod.outlook.com ([fe80::1c36:31b4:c420:6286]) by LV3PR12MB9356.namprd12.prod.outlook.com ([fe80::1c36:31b4:c420:6286%5]) with mapi id 15.21.0406.007; Tue, 15 Sep 2026 03:14:14 +0000 From: Yury Norov To: Andrew Morton Cc: Yury Norov , "Jason A. Donenfeld" , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Matthew Wilcox , Peter Zijlstra , Ingo Molnar , Will Deacon , Boqun Feng , Waiman Long , Dennis Zhou , Tejun Heo , Christoph Lameter , "Paul E. McKenney" , Frederic Weisbecker , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Uladzislau Rezki , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang , =?UTF-8?q?Onur=20=C3=96zkan?= , Kees Cook , Joel Granados , Anna-Maria Behnsen , Thomas Gleixner , Juri Lelli , Vincent Guittot , Dietmar Eggemann , Ben Segall , Mel Gorman , Valentin Schneider , K Prateek Nayak , Mike Rapoport , "Liam R. Howlett" , Lorenzo Stoakes , Vlastimil Babka , Jann Horn , Pedro Falcato , "Michael S. Tsirkin" , Jason Wang , Xuan Zhuo , =?UTF-8?q?Eugenio=20P=C3=A9rez?= , Sebastian Andrzej Siewior , Clark Williams , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, wireguard@lists.zx2c4.com, netdev@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, rcu@vger.kernel.org, virtualization@lists.linux.dev, linux-rt-devel@lists.linux.dev, llvm@lists.linux.dev, Yury Norov Subject: [PATCH 14/17] ratelimit: assert static storage for DEFINE_RATELIMIT_STATE() Date: Mon, 14 Sep 2026 23:13:29 -0400 Message-ID: <20260915031334.1194975-9-ynorov@nvidia.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260915030336.1192299-1-ynorov@nvidia.com> References: <20260915030336.1192299-1-ynorov@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BLAPR03CA0118.namprd03.prod.outlook.com (2603:10b6:208:32a::33) To LV3PR12MB9356.namprd12.prod.outlook.com (2603:10b6:408:20c::21) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LV3PR12MB9356:EE_|SN7PR12MB7834:EE_ X-MS-Office365-Filtering-Correlation-Id: 3840da1e-568d-459c-af98-08df12d76be9 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|23010399003|7416014|376014|10067099003|6133799003|22082099003|18002099003|56012099006|11063799006; X-Microsoft-Antispam-Message-Info: 3LU6skUUSbWGRQsc84UpYnVV2+weAkBM346N8cTjLdwtcqFFfZOGsY7aBbIdgLoNGOOhYtf7++LLSCfoomHde2znb2467RvpH3EnuZ50nxhjT1WK4rGowCiMpAjf9zN5Avxd2XI5ouSHh7a7/f2lebYEbDMD863sAX9v5Rs/5l2TYJXjOLRUYmn0aekbrunG0PUalB0cUWojpGHKtXQCaw8kUoXgipBfKkICCrbG1XPlCNui/TKEyUuYxlj/qA0CTud8T+Ec7Dq5pR8VeNIc1yfCM3te+iyTe9r6diAynnTYp/kMGlqfao+orx7zkT+mH+sn4+29qfpQPABKcMY3YdwZA3g4LXJX3Y/kCwqgEStxQWtDTrzzxSQPNzYCmM5tqwzr1O5LRWB3Pxthr/gyAcVES091yxpl1atYYm0QDw47H+ATp62ScN28TPkxAHGC9b593/qrCyw1wtn94ehsIfT78YkeALAZuatT4lB7f9Mj063tjXEonVCZ29Q/kYSbOGpw2YaUe9vYI/6mJMQMEu0OYOD9v3Z+JChoe+jqNbFIF+ZpfhKsbtJe1bt64QLOlruBOnPvngXqOfb0OaanaDu6W8a3UAQRdo8T4ANvgtLaSlGUMo1fx88pkrzWi6QXUG+PBAqiyTZ4TIu13h5nGHK8CdIbLnX2MuobUOIibWM= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV3PR12MB9356.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(23010399003)(7416014)(376014)(10067099003)(6133799003)(22082099003)(18002099003)(56012099006)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?n9Vo/EO+BVqP/kVeScw2uD14/nEdP+jB81uY9uOV4ejhP+H39TutcTR7dfoX?= =?us-ascii?Q?SBd/WWpAGKwnwFZoQESGw4TeyT4xXCUGUgKPvNgSDfyW5X4dwKYB9BuhP9KU?= =?us-ascii?Q?1FtO1PfoFkmlRtDCGTZLLziBGtXcnMccgCCqJrRjNY+OKQnFddEiTwra+Wdw?= =?us-ascii?Q?X+1nvndUmlcOM6COMvFHvjumHniAfs22GgNw8xUPvDrB/WdjYX8tohJydkYs?= =?us-ascii?Q?68gFz2ayrqoohBKZLfq8da9Y4BIX7/u0hAM5qDGbCV/9QHIyo8pygu9x7+gk?= =?us-ascii?Q?E2QmBScmVuZpzWtCnbgi6ANgYefBHZ71BH19aYCvbIQ0b8P170YL+7phMO2A?= =?us-ascii?Q?uplCRpxvw43kKnlKwREZvGW06y+4TNO2DGhYOrDbcSbF8BrsBQcel5pMZmjd?= =?us-ascii?Q?kKSdHQsbAjaP47FYLl6ndSc6hRyN0LVNo8tsrMCBSpp49X4Z/685tya7iwJ9?= =?us-ascii?Q?dNsYLcDoad5n3sOjJJj7iyF4gzQnu1U+ZdTJEeDZZWGUFuXl0lykVP4r0z+1?= =?us-ascii?Q?bNCGvtBET3YQPS4dc4HUcRM7oDT94JBxURpemt7CMLgjitgtYi6eP+mso/zR?= =?us-ascii?Q?k71AB38caYTrzCcv5KEeyLKvN0Kb034x9TaF281jqP4o+vx2JxSemBmg0h3u?= =?us-ascii?Q?cgeUCnNhsAxYwn1CBxvjkzQ+KKjpaU77f4pC8ii9TThQtg8Kl9matcl7hANh?= =?us-ascii?Q?ykV2q7s9wJqQ5xghK5sbHVOgkvtA8fEAyxj7GLKR4S2IqoUHg/NhFrKtqYeV?= =?us-ascii?Q?ponfMP6ZMOh3/IcIbyLFkd5S0D319+L6rSTdTKDWLWuFK6Pz5tEFOAAzZchO?= =?us-ascii?Q?ucSUTU/Je51YGJ6ejndwRJqDcnZ5KjQ0C18qQR+BJuJtqpJphpV4Zvl7YdsT?= =?us-ascii?Q?01BBviRm4C7pFrU2wiNYDRuImifx8OCZC/61kGW+HRmAA4wKT/72szeAR1TX?= =?us-ascii?Q?+DwYgrCYWaCyb2PhHzWkz4F0dQOAvs/54bFcuiNBqHr1p15jrfPW5QvZBGxx?= =?us-ascii?Q?stzenRYiimaqf9ZDQsjZ0hTT+PE16xyUsiAjVkpQ81u15zZsvLMGDJiqNmbU?= =?us-ascii?Q?NATc52f07puvEn1w30HUlKLjOgSHQrtCzH/Aiu2ul3/3Er/xzXZ26d6on81q?= =?us-ascii?Q?zAfwvOvsnl1zpZ/oMPnIPVC/iFsru2s+L2O9N511TwjlufvyLh+gC/P2J7gB?= =?us-ascii?Q?I9lsnHYa+M+TzuI997UrG+oHCLlyTtU++RWyhpCCbzBzZ3sfLZO60Oy0diA0?= =?us-ascii?Q?QilI48oj9y+Ci6lBEz/Dcud9EwcnTBp4LmdSK5F6sW5KM0xgMDSlVV21n6Gi?= =?us-ascii?Q?PwexOEJhH3KhIEW6QNGTxK4cmBdp8QbhQ6xtr1IfLLwYeuhU+w8Db63mwIAb?= =?us-ascii?Q?UgEQseBsUbgmGaJSvPbrUlAflAYKGO5hbfbBlOWvOxFuUMJncwjNf44eFc8t?= =?us-ascii?Q?OBEbrIG7A9SeyB1Eo06YxzOKZDKF3040GpOYA1T9gTxQUltFIXg4Shf5PvX2?= =?us-ascii?Q?Apgq65naOakwwc8mW60fCTeUxhOZWiAJY08mj/Ww+Ya7yRkArcY21/D1uUb4?= =?us-ascii?Q?MVZYZGD2Z95BCrzm1UvmyykCSGLTTOMvTkxgqLXmY2jvMKSSfm6tIsYGr1Fs?= =?us-ascii?Q?h0+e2bO69zFtu+1qkN/EtX+wE31IfTsp3aG/KReR/KNsbZUW34jXByq4s9hs?= =?us-ascii?Q?pNAaxjzBf1efl2S85pS7kQXVoJne6hVpbIgAGZX/r6H7qJWX+hX6Dze+nm0t?= =?us-ascii?Q?o6XGnYuW+w=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3840da1e-568d-459c-af98-08df12d76be9 X-MS-Exchange-CrossTenant-AuthSource: LV3PR12MB9356.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Sep 2026 03:14:14.8590 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ZMMdFNClFSKQv7mWvfz66pOq5T72507KDO51nlJlsXaA3GQPEfb6zAXHNPtF1oNJYNdfWqjNmoNrtNqnQjT6bg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB7834 Content-Type: text/plain; charset="utf-8" DEFINE_RATELIMIT_STATE() uses a static raw spinlock initializer, which requires a persistent object address for lockdep. Automatic objects must use ratelimit_state_init(). Add ASSERT_STATIC_STORAGE() to the declaration and align the virtio tools stub. The virtio tools use a private compiler.h, so provide the same assertion helper and its unused attribute there as well. Assisted-by: OpenAI Codex Signed-off-by: Yury Norov --- include/linux/ratelimit_types.h | 4 +++- tools/virtio/linux/compiler.h | 9 +++++++++ tools/virtio/linux/ratelimit.h | 6 +++++- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/include/linux/ratelimit_types.h b/include/linux/ratelimit_type= s.h index b19c4354540a..977fdfff5926 100644 --- a/include/linux/ratelimit_types.h +++ b/include/linux/ratelimit_types.h @@ -2,6 +2,7 @@ #ifndef _LINUX_RATELIMIT_TYPES_H #define _LINUX_RATELIMIT_TYPES_H =20 +#include #include #include #include @@ -40,7 +41,8 @@ struct ratelimit_state { #define DEFINE_RATELIMIT_STATE(name, interval_init, burst_init) \ \ struct ratelimit_state name =3D \ - RATELIMIT_STATE_INIT(name, interval_init, burst_init) \ + RATELIMIT_STATE_INIT(name, interval_init, burst_init); \ + ASSERT_STATIC_STORAGE(name) =20 extern int ___ratelimit(struct ratelimit_state *rs, const char *func); #define __ratelimit(state) ___ratelimit(state, __func__) diff --git a/tools/virtio/linux/compiler.h b/tools/virtio/linux/compiler.h index 0f25db473f55..3c1eca4a4380 100644 --- a/tools/virtio/linux/compiler.h +++ b/tools/virtio/linux/compiler.h @@ -15,6 +15,15 @@ =20 #define __aligned(x) __attribute((__aligned__(x))) =20 +#ifndef __always_unused +#define __always_unused __attribute__((__unused__)) +#endif + +/* Enforce static storage duration. */ +#define ASSERT_STATIC_STORAGE(name) \ + static typeof(name) * const __always_unused \ + name##_storage_check =3D &(name) + /** * data_race - mark an expression as containing intentional data races * diff --git a/tools/virtio/linux/ratelimit.h b/tools/virtio/linux/ratelimit.h index dcce1725f90d..c15c82a5ca21 100644 --- a/tools/virtio/linux/ratelimit.h +++ b/tools/virtio/linux/ratelimit.h @@ -1,4 +1,8 @@ -#define DEFINE_RATELIMIT_STATE(name, interval_init, burst_init) int name = =3D 0 +#include + +#define DEFINE_RATELIMIT_STATE(name, interval_init, burst_init) \ + int name =3D 0; \ + ASSERT_STATIC_STORAGE(name) =20 #define __ratelimit(x) (*(x)) =20 --=20 2.53.0 From nobody Fri Sep 25 08:46:28 2026 Received: from CH4PR04CU002.outbound.protection.outlook.com (mail-northcentralusazon11013003.outbound.protection.outlook.com [40.107.201.3]) (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 2DD134071E2; Tue, 15 Sep 2026 03:14:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.201.3 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789442068; cv=fail; b=j+7R4Mb4yysbVfQkPPpziXA/SFUFtYJZq/fB38PLjCCaKd3O75MCmngserrrxgdZ+rtLaDlEdAswmT3YQWhVWgTb9PZUEQDbAvmRn3+i4SCUusXwHlOBUIvcqddly/z4pRrua5mLiH895rDxX3Hn2E+bjEd7S4XjtyTM4ErLRFE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789442068; c=relaxed/simple; bh=QfkxY37cUhEKJSrWFxvmyEPbz4OEQf/xOd3uih8/h7s=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=SK3BrpGSgTWvsGj7WKWRNzcgVO/UlmCfwJS48KB+uHL2xEJFhqAgiI/ETB/u7b3L2OzRK84onE8CAML1bsdouUGIm57AbcvVZZGPtM8GrgsPPpYecj463bzVwdrxEWqeVm09zWj86BjsP5x/d78NpsS5U8gqTTRwDA0wiLxP/Ew= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=UoyOnn1k; arc=fail smtp.client-ip=40.107.201.3 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="UoyOnn1k" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=f8GBFJWzqZbh3G8ZmznVOvxhTqI54FYSa3JhoEChoY/8QOy0ifnpM9JsNlyYgX3JG5oZePWJogviPLlgkhtKDj8/xtlRh05/P7D0VSR3/LfeALx4412i30yi+G8Fjv8eizJtlbAKXafN61FqD3l+82UwYC0N0RsjFyo20uYo1df1QC9Kh7w4lIr4qvPTLsjB6ds0dml8V/H8NpMKPAjd7PTf+JQERD40xG3DytjNhxudHmlJtUiaqlUOtxz/dn7LSVfqCPEY/iRv7BfgGx5loK7YttobnjCBtU9BMLk2MQfm0EbB8OfTIUGZhHeghSDFlV6i+ztcz57RXIuHx3qdRA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=d21zpOGUrU2aWSmby/wjZqj3sY8qY/SZrAPyealnRrU=; b=ESg/3LMYRzoGxLo/Sv6+sXipQy17h49L0YUhLeM4f5gqFDc02op6x75FWZDjFHN+o8BRZ/rbcIuRXpes0GLSFjDvuoMYASFClbdFxHdKGabPbADddhxDlhDyQFmeH95CsQKzrIyQxQD4HGne4Co119aRbkDm6VEXvUFe8sv3H9e9a+Miot8fHUhDnRxakK/wUgszUNDKLELkRWD020rS/P5LywvE9quEynfALshvYTX7XbOcyzkdwuFlsJV5kcV/kRD+X6haUnY2SKzSQZxg/NPlYwEUOPSWSrC76c0gkQgvkI4KQEkWgFpAK7Jma+W4TBhuigCw/Q092lBW2hbZCQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=d21zpOGUrU2aWSmby/wjZqj3sY8qY/SZrAPyealnRrU=; b=UoyOnn1k9IJbpFKOUA35Y4MEQfKmPE6hU4H05Zp8pN+srJWHbXViVl/PJ85uN3G2eyVIqvJScfzHcTTpAZXELrkzc9xb/pVn3NIySE/GINVoT9IIq4mICCaKY/TWPrr9q1q6Kh7wByoJzukOcn3OqjrL3uFdmc7tIrLu7aqDcuZgNgUJQ8cDhpDkSI2CR/HeP+ABwjVWSviRnmU5MUKSD0xKlBVCXPET4qy2SChxdoA2mISJ+dQdCDO6JnveyxMyYOEPw7i+lIo3TI+l8mNUIY9xya8kbx3X+lsJxQm1jnmOXuzXna87zPNt+pemim7+QlIRHK11N7z2GxgqSyNnFA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from LV3PR12MB9356.namprd12.prod.outlook.com (2603:10b6:408:20c::21) by SN7PR12MB7834.namprd12.prod.outlook.com (2603:10b6:806:34d::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.12; Tue, 15 Sep 2026 03:14:19 +0000 Received: from LV3PR12MB9356.namprd12.prod.outlook.com ([fe80::1c36:31b4:c420:6286]) by LV3PR12MB9356.namprd12.prod.outlook.com ([fe80::1c36:31b4:c420:6286%5]) with mapi id 15.21.0406.007; Tue, 15 Sep 2026 03:14:19 +0000 From: Yury Norov To: Andrew Morton Cc: Yury Norov , "Jason A. Donenfeld" , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Matthew Wilcox , Peter Zijlstra , Ingo Molnar , Will Deacon , Boqun Feng , Waiman Long , Dennis Zhou , Tejun Heo , Christoph Lameter , "Paul E. McKenney" , Frederic Weisbecker , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Uladzislau Rezki , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang , =?UTF-8?q?Onur=20=C3=96zkan?= , Kees Cook , Joel Granados , Anna-Maria Behnsen , Thomas Gleixner , Juri Lelli , Vincent Guittot , Dietmar Eggemann , Ben Segall , Mel Gorman , Valentin Schneider , K Prateek Nayak , Mike Rapoport , "Liam R. Howlett" , Lorenzo Stoakes , Vlastimil Babka , Jann Horn , Pedro Falcato , "Michael S. Tsirkin" , Jason Wang , Xuan Zhuo , =?UTF-8?q?Eugenio=20P=C3=A9rez?= , Sebastian Andrzej Siewior , Clark Williams , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, wireguard@lists.zx2c4.com, netdev@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, rcu@vger.kernel.org, virtualization@lists.linux.dev, linux-rt-devel@lists.linux.dev, llvm@lists.linux.dev, Yury Norov Subject: [PATCH 15/17] notifier: assert static storage for locking notifier heads Date: Mon, 14 Sep 2026 23:13:30 -0400 Message-ID: <20260915031334.1194975-10-ynorov@nvidia.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260915030336.1192299-1-ynorov@nvidia.com> References: <20260915030336.1192299-1-ynorov@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BN9PR03CA0405.namprd03.prod.outlook.com (2603:10b6:408:111::20) To LV3PR12MB9356.namprd12.prod.outlook.com (2603:10b6:408:20c::21) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LV3PR12MB9356:EE_|SN7PR12MB7834:EE_ X-MS-Office365-Filtering-Correlation-Id: bbdb0fa0-2b15-4b11-a194-08df12d76e8b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|23010399003|7416014|376014|10067099003|6133799003|22082099003|18002099003|56012099006|11063799006; X-Microsoft-Antispam-Message-Info: vsklTINGWUx98QjKYQrTuyrIrhWZQnyQ3oacWKlnguqmG8TAEZt1yA5ynEsFSuhg7DEOuewV1UmrODm6a+mDS4xYzOgP+EXTgtzg/Y7ZcQ9Y1fLJ0IYr7DwWD/tbOSWzsnxx++dBs2vx8lL5eRCbafagDVjzTmEJpObd5DhRCnETgg1N/YiIxcMSvpUUiH+qEegggAc0RcIG2McqG5dkw1AWGP8kMsNVMoyKB+XkzrP+SItFLD1mVyLDmRdOWHUlcozBu4xmy9GzWWSwrECM2VtiDVTnhkAe0brWG0phcZfFnKwIGQHH9+kQkf8TMj8HXp0klNpO8ipsq7UN/9lD7yBg4tJUNBSNxrJAr8YeKVjFQyYiAs59ukLDTVCPwZ70QN+Gp3wLE6LJ0+R1mqPvYbSp31ga6orccEAhLmh8DWzeg/+f/KPGrjXqg8ftaehuPcE/BWZ1qdkSnwh6cghfZCMMO97eTg4p2BZ1U6mz5CUNRRTorLGPvJUn/IfxFsG5H5lVjfx38G10LKmyeX0dtk+pleUKLtUgBlkC2cqMHGlPdAvRyzDlVsA3hqsq1eyW8Ur1AtecJPTzxg6umd/JJy0aolAm+S2Zq9R4MfIfpBJDNJ0lsm1mLmWuYmgb8RUNE4yTTKyizWX/0bmFxC0b7xQfvk0n0PwigH/3pp6MKlQ= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV3PR12MB9356.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(23010399003)(7416014)(376014)(10067099003)(6133799003)(22082099003)(18002099003)(56012099006)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?EMWJvL6DT/5TxfzNea1jul5h4FFFPz04JR68vEGXoicXXuOOXUL4j3OLYFIn?= =?us-ascii?Q?2HeDeK2wbv2F0yQQw+TJX3DMTYv8QxmAT5wBL6FBLbj/d8wSXddzDBhfIPHx?= =?us-ascii?Q?1CO1MPNpWm8hVF3QRyfQovSJnMgsjWQ/OzidVktatEq8WbIHLkG8+qc3Htl1?= =?us-ascii?Q?mAqqJ1S4Pp8sP+kvxIrAeQv5V/sDHSKSTCOtT0W3/f6YXwYQYT3gUDMFXie4?= =?us-ascii?Q?Cc6gxAivq/F7ZQGjmVfhbc1zLLvV30+Kb8kslqMxlyZqbfjKyMYJB0FWbVr9?= =?us-ascii?Q?smcJxsfXf7QA7l0LeujbiVYZYyrFX9gxqHZphPk6Q1gKQXUm+cPgdjymU2Ev?= =?us-ascii?Q?0bfdXQRx/pfM8M3umyDfHiBE/KCPA/EjAnplA3WL1G7rrqwE/FAACI3qA0kv?= =?us-ascii?Q?x0cPuebYoireGhx8AgqYRfU1Vat909F0/rHSZKE74wYYwwWjqikDQDHWrZAk?= =?us-ascii?Q?Xxgp0nRm4TKTbEv6iHSKaivhO4SscDJ22kMmP2jNTzZQrxUyvkbqofl+y2lB?= =?us-ascii?Q?U4rttt3Irh3BMJwcj8F7OoEsODLYPrmcv31jZObNhrxPaskZ4+Q61R1LgZ3d?= =?us-ascii?Q?c6OXnABviOsdI7fvYPcexIu2mcECJ+89A7OHazkFxA24XmrER+jc2Lq8vVNh?= =?us-ascii?Q?DR55UHD2RUGsljeI3n9soSWLIsXqe5kBsxwMZ0mk+nDCMf1ogOaCNU1scRma?= =?us-ascii?Q?dGCpDnF0q/btNewCoBLiOb1m+BRrOzb+O/u6IgKmPtIdPQRynH1hP2MQ1UWo?= =?us-ascii?Q?CrHP8GpKAxN2MmeNHc9kQGw7Y3zGrAHhrF+aWSJQqNnkzrlTb3Oa28dbp3W3?= =?us-ascii?Q?4kvAo+QTLWQ0khy9vgqCq6dPxbB7FP6EjEO7Qhc4BlpIpOvoHBj2WWKnYd4M?= =?us-ascii?Q?K8QWBBr+jTy8+F75DGmHivjqC7ceRXsLCVCmwMkSYvZ3qnwhZrHeSSbnVjqa?= =?us-ascii?Q?L72Hph7D84ZPRJE/l8TntDIEXWFz8ba8WHYWJ6UtcdnZ7EnetYsRjeY62Dd6?= =?us-ascii?Q?yz1KTD03F/Sa1CK6ZJ0NW9dyBIwzXq/oABp2Yh96bGBCgn9QXi8qjQsdGUxa?= =?us-ascii?Q?JgzKbuDtMNb/kcxTyntA78bji772Q+4YKzDKq9Et+Vzfq2yS8VP1uqw4t0ok?= =?us-ascii?Q?mFzIISQ/C9Bl+hSfOo5WxLm2/6h5igLkv585Wo3BtRt/Tysqtolcr4ZJPgs/?= =?us-ascii?Q?r3jkmeGG0xFTvErvozBhXRDCD5b0KbwyoDMhPSvBP50C6C6UR+utkiGbr84w?= =?us-ascii?Q?A0LBhudRp1eaPbvptHod5fbKgTerc2ENFoeE3s2g+G5FaEC/aLZlgfcKX5TG?= =?us-ascii?Q?Yb0cnZzkdM58GWl6eQQjNzsbIyU2Y8W6J0q+etfDAI4+w2BJTzPUl27kQ0er?= =?us-ascii?Q?OrWY36uyGvB2JYrS4BEcUfCoo3qTmKMjPXD4ANMOBJDbjRoUvPIEuInsftfS?= =?us-ascii?Q?mAsvz9Sc9KbMOW3/v2zk7DFvidO1/LULxgL45BZsf9nuIyu5n/cosYFUJdUK?= =?us-ascii?Q?+ld8oSkj0RB3KHHPwquSzq7Loo1T9yg8eC2DU4ZKI6jQNZ1irxs7OX3wn4gz?= =?us-ascii?Q?mBwpr+1DloxsLjE7U3F+Nq+7wFmoilao5G85lmlB1Y4MRUiqI/ok89agWrIp?= =?us-ascii?Q?UK0kQbKGDPvMimH7cXwXzwg7H7hE2rN9ekVwD5tPICUSm1Nl2F5FOCLQlyTZ?= =?us-ascii?Q?5XZLZ+/rmkJV31wNopF6OpVCz9cFhapd28cvYAzg1F+MjLKY12xEKQmX84fk?= =?us-ascii?Q?BVEFXeH1UQ=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: bbdb0fa0-2b15-4b11-a194-08df12d76e8b X-MS-Exchange-CrossTenant-AuthSource: LV3PR12MB9356.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Sep 2026 03:14:19.2958 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: SDz6ibqVKeDJ1y/byhZ3J2uE0A/3iibvc3cIqAbR00mDDIQcxy2IAFzHJfnh4KXssh3W3kzm7QMnfOzHZ/Os2Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB7834 Content-Type: text/plain; charset="utf-8" Atomic, blocking and SRCU notifier head declarations statically initialize locks or SRCU state that require persistent lockdep class keys. Apply ASSERT_STATIC_STORAGE() to ATOMIC_NOTIFIER_HEAD(), BLOCKING_NOTIFIER_HEAD() and the common _SRCU_NOTIFIER_HEAD() wrapper, including both Tree SRCU and Tiny SRCU variants. Leave RAW_NOTIFIER_HEAD() unchanged because it has no such initialization requirement. Assisted-by: OpenAI Codex Signed-off-by: Yury Norov --- include/linux/notifier.h | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/include/linux/notifier.h b/include/linux/notifier.h index 01b6c9d9956f..4f6330360df2 100644 --- a/include/linux/notifier.h +++ b/include/linux/notifier.h @@ -10,6 +10,7 @@ =20 #ifndef _LINUX_NOTIFIER_H #define _LINUX_NOTIFIER_H +#include #include #include #include @@ -114,10 +115,12 @@ extern void srcu_init_notifier_head(struct srcu_notif= ier_head *nh); =20 #define ATOMIC_NOTIFIER_HEAD(name) \ struct atomic_notifier_head name =3D \ - ATOMIC_NOTIFIER_INIT(name) + ATOMIC_NOTIFIER_INIT(name); \ + ASSERT_STATIC_STORAGE(name) #define BLOCKING_NOTIFIER_HEAD(name) \ struct blocking_notifier_head name =3D \ - BLOCKING_NOTIFIER_INIT(name) + BLOCKING_NOTIFIER_INIT(name); \ + ASSERT_STATIC_STORAGE(name) #define RAW_NOTIFIER_HEAD(name) \ struct raw_notifier_head name =3D \ RAW_NOTIFIER_INIT(name) @@ -126,12 +129,14 @@ extern void srcu_init_notifier_head(struct srcu_notif= ier_head *nh); #define _SRCU_NOTIFIER_HEAD(name, mod) \ static DEFINE_PER_CPU(struct srcu_data, name##_head_srcu_data); \ mod struct srcu_notifier_head name =3D \ - SRCU_NOTIFIER_INIT(name, name##_head_srcu_data) + SRCU_NOTIFIER_INIT(name, name##_head_srcu_data); \ + ASSERT_STATIC_STORAGE(name) =20 #else #define _SRCU_NOTIFIER_HEAD(name, mod) \ mod struct srcu_notifier_head name =3D \ - SRCU_NOTIFIER_INIT(name, name) + SRCU_NOTIFIER_INIT(name, name); \ + ASSERT_STATIC_STORAGE(name) =20 #endif =20 --=20 2.53.0 From nobody Fri Sep 25 08:46:28 2026 Received: from BYAPR05CU005.outbound.protection.outlook.com (mail-westusazon11010011.outbound.protection.outlook.com [52.101.85.11]) (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 76A824078E4; Tue, 15 Sep 2026 03:14:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.85.11 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789442072; cv=fail; b=oh9KxWz9qqOUlgqFuwTjhBXwFScxhjzlj5Z83e6uHqGk/92CmLhqCkjM8zH6nHuk7ekG+9ICbPvvRNuv1sVMta6iWqmfVyYw+CGqeawFMnbcxYxFhB7H8hOE/sIHVy6dLBT6RPWZIHXfFOzrjQ7FeIFZhMXFtPA2CCkXW3U26rs= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789442072; c=relaxed/simple; bh=qbimC2sLl/jDJQVR3Gc2jLpvakcIhCuKyuqspFE+4RQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=jHm2y2P43M2F396W4LaYph2OcmuxuS7DcKRtssn25Ut4JdBUg6RgbrkfxsOnTqwobqCnMfxCAzmw0jFWOJ8anEWXqP0eTMX666cCmPA0LQqmzotuNhzQSKOaMz82SigP9jPB5V331YH/DUIQXx/BbsgJ7SfO7HNgexNOZmwVDNM= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=YgaFWfxD; arc=fail smtp.client-ip=52.101.85.11 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="YgaFWfxD" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Rn8nGMb3zlD91DY8X9QLK2UUib6M/kasmzA6eXUywlD2T/Izy3OI8XIExcc0KlGVuxVySM4zT22qkylqW8NwciggIe6KUu9Ij5lOd5A8hHbZemHXiHf9OOGw88z2ibNOnsG9+OkzwBEVpNi+8bX0+GnFYwnVq2nnCwiRpLHAUQyj09qC5A8LT7mT/b5AxHqPk9jWx611mBvs2H+oInHDt5QGsnxqs8MCswmjIHRThefvmRGLiSk4sNAyTfsvwgGgJX7Akgabo/hxNUYZbqkEnqbWRuysAn8PaDHqhb+bwZcktDDoNLIl/6UbBC7s+TYJ2fGXzB6/I1Z28c0sgCN3Ow== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Gp8H+ROTSsqQHjRYOtvaP7MV8S034OBFVrZpKm8BdlU=; b=mpKVxALw1JpGb1de4Issdpv2/yIx+vHDpKoTKyeWNw3ZwSnsBOpBWdT9BOKtpP13Sqw90yPvfrWCZuTo1/A1a/fXPFptP6TkpOmncTlZB4HxZXwAFCG7pmflGG+tSsDdE3sQPlZIFjIXwAcvI3fYrOL5Pj92fMlXIqqk4pFrXjnFdpwq5+IiEWcDCqhykY2B3kItk6fcwSTLSjn8WvZXzmJe3eu0uWvXoAmGwP8hwcUa2y+SuvRSsdJwn+94+xK4JfTIwk69t6HFpslw4//MYXSNQmT4388Yu00EFZ5cb4/NWCRutqbOqV+HdZsE85S+TozTgtiSRlXrSWCS3HYBFw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Gp8H+ROTSsqQHjRYOtvaP7MV8S034OBFVrZpKm8BdlU=; b=YgaFWfxDzKKzWqxjMUCXAkyDkkfUPwz0Gp4pCse3qS1dLNd1g3JTWyBRqn8lIwIV8iRMNiFWF6z78ewYeNr8L1izWVTEOZXp7hJDYSY6d+C2bUcKhyzcZpwKppj8jqnhA3XQSsHUgeFtLeVTPp1iLcBiw9IwGF9YOTfSfaiu8aUJ9sq4CLaHSOWQqtwwcuFRaPrOmk68vj4OHTNGRUR0UA4z37ZKhW3Ic2ODMugaRVLbFP7XL8qfX2eYFSHFaMv64eTnMAlrVluTGlIJX+kISoSIPwS8aoRyZGOAx0TOdMVvaRaGHLz+fw1osubEvvftRrQmyGXN0Vrbo+VvfWPCtQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from LV3PR12MB9356.namprd12.prod.outlook.com (2603:10b6:408:20c::21) by SN7PR12MB7834.namprd12.prod.outlook.com (2603:10b6:806:34d::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.12; Tue, 15 Sep 2026 03:14:23 +0000 Received: from LV3PR12MB9356.namprd12.prod.outlook.com ([fe80::1c36:31b4:c420:6286]) by LV3PR12MB9356.namprd12.prod.outlook.com ([fe80::1c36:31b4:c420:6286%5]) with mapi id 15.21.0406.007; Tue, 15 Sep 2026 03:14:23 +0000 From: Yury Norov To: Andrew Morton Cc: Yury Norov , "Jason A. Donenfeld" , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Matthew Wilcox , Peter Zijlstra , Ingo Molnar , Will Deacon , Boqun Feng , Waiman Long , Dennis Zhou , Tejun Heo , Christoph Lameter , "Paul E. McKenney" , Frederic Weisbecker , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Uladzislau Rezki , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang , =?UTF-8?q?Onur=20=C3=96zkan?= , Kees Cook , Joel Granados , Anna-Maria Behnsen , Thomas Gleixner , Juri Lelli , Vincent Guittot , Dietmar Eggemann , Ben Segall , Mel Gorman , Valentin Schneider , K Prateek Nayak , Mike Rapoport , "Liam R. Howlett" , Lorenzo Stoakes , Vlastimil Babka , Jann Horn , Pedro Falcato , "Michael S. Tsirkin" , Jason Wang , Xuan Zhuo , =?UTF-8?q?Eugenio=20P=C3=A9rez?= , Sebastian Andrzej Siewior , Clark Williams , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, wireguard@lists.zx2c4.com, netdev@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, rcu@vger.kernel.org, virtualization@lists.linux.dev, linux-rt-devel@lists.linux.dev, llvm@lists.linux.dev, Yury Norov Subject: [PATCH 16/17] rcu: assert static storage for RCU sync and SRCU definitions Date: Mon, 14 Sep 2026 23:13:31 -0400 Message-ID: <20260915031334.1194975-11-ynorov@nvidia.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260915030336.1192299-1-ynorov@nvidia.com> References: <20260915030336.1192299-1-ynorov@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BN9P223CA0029.NAMP223.PROD.OUTLOOK.COM (2603:10b6:408:10b::34) To LV3PR12MB9356.namprd12.prod.outlook.com (2603:10b6:408:20c::21) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LV3PR12MB9356:EE_|SN7PR12MB7834:EE_ X-MS-Office365-Filtering-Correlation-Id: d8071095-7b87-4ca1-0800-08df12d77109 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|23010399003|7416014|376014|10067099003|3023799007|22082099003|18002099003|56012099006|11063799006; X-Microsoft-Antispam-Message-Info: CQ91xyTyZE9ZjrDSmjP1hb+cou2oIoHI8XnIxpcdmjgznHrKv/sxan6tZ3JQGUKIripK6Qh+UN94LnQxZyuJwVvV8ZoHNBzyPQ71lAJtc7uEodiwS15x7G6KbKvmOQeFi260nI6xJXwcVRxi6fI95BBz8N6paZ78nvZ02F4h9+6gxzLCLkl1zJ/TlEJfczblwt1wh+x5qdTIicROLAEaWL6MliLHlqUtRuM/zr0i98CoJo4ZkIBf82qIZgds+d3NNnK8gj/TlVs6F6hf1hrNOMhaCJOvA4+kOPPz2U+wL6TC5rOthFpsZBWK/4bjERJUkVxW1N4hY8E0WrKFfsTppxR229YWC73osX3l3kx41LvdWMcIODExhmdKsC4GUGBhjsDXPtjn1RQM4CPHjU0d11pLyDdO+et2rOk8XEudmWJz5O4ZL+bBxrzw+SMTbd+7hxd+CzMcezB2VsWHYF3yHACj/B5vnf+FjfiuMTyznEkeVI0uLUAKX5JljXJWg254+bZJ2LA5eI6V8y9tBpCSraFMujEM41RsIGI5Gsa0oH830dj6cLV3RTHabnZ1pHWVzyTqSeLVMh/15g4JODIj2qz5ps5Y/naygwdUGhSnf4nl4eVVLFO0Pe7UQt31Hm+gZAK5m5V78PNgB69YdoAt2LtdB6RzIfFyhDaBnp8zTT8= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV3PR12MB9356.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(23010399003)(7416014)(376014)(10067099003)(3023799007)(22082099003)(18002099003)(56012099006)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?HTKI5diJAcKunKDMm/PnNSByjnMmfgp+iNkji+p9X77PGWdBvwq//hKADHvp?= =?us-ascii?Q?wZJcfH+GaBUXIhryS8UUfleCKmTIhiphwoAuKjDbgZoSwXRA8GxFS7ea4TWR?= =?us-ascii?Q?V0HCWQDa6qUf2mmU2hz3sSKcrilKkxWUBpcFkY9uiCEWx1W00zG4qsaw0Pzk?= =?us-ascii?Q?xEXaXM/9Qtns64vjPGuVmSSE/FIsLMPxlKOPm/2/ZipCh6RcnbrKxSSqpTiE?= =?us-ascii?Q?bs1/6dAxBVM5o+gYW4XVCmlYq8M3/wb76B8dokX2PsinOiZpy/9pMGLDVQQI?= =?us-ascii?Q?h/Aq8i9nUrCIfom8bEiONs5B7emxYrtli3ariuHJcb/QtqVlBqAkO4A965Gy?= =?us-ascii?Q?O/aRXzNzWED/IX/unMeD1h3KvUQkJ4hC1DHN+6b0tOo+rkhNTBYAyCHpYDMy?= =?us-ascii?Q?n3qqSDbtaJSa4G+ousTdvEGp0DMVaWJ1CrC9V1lZrxDdIz+8VeFl5IUGm8Qa?= =?us-ascii?Q?c1CjaPbc2h+5ZMunh/xQfHkZCL2TLDzSYPxOheZJ369yZcs9CymGhZNrwlF5?= =?us-ascii?Q?+xaa9qlg0u4x0xainrsTF3wg2d2ONLMJ3HLcnq31EoAWhvpBE4MZS8/8TTTs?= =?us-ascii?Q?vaHiRhRrUg7gk6ysYqNWdvTtZLda0yE+8hlEhHrP9onMpygZoRQRJAn7KDrv?= =?us-ascii?Q?kyxwRfEh6YTzl0EV8lmA3dJ607l/1jfu9bwVF6dF7O6eTK1Q9L0sju54h9QD?= =?us-ascii?Q?qtks6Di+WnIv4R774tGUt0KUH7rGhvgxB6VeWATK+mn8sCwbQaqflpYy3+bp?= =?us-ascii?Q?AdCWTBC7uhWdepaZXkq6NsXaBNj0CppK0wRiX28fiOhFDy2Yxe0hmWpUV1+B?= =?us-ascii?Q?JVLlb1LBt08KoQwxSuVNEwM5ACdEo3i2lHIvN3N7Q9GjiJ4tLBXdOrHcFsIu?= =?us-ascii?Q?SgrMJwKOeR/Dv4SpvzljG54Vrb8x2gLiqN9fPi6RmGeLzN4NcGEjkgz2BZ54?= =?us-ascii?Q?i036YM7zRQWEnDIf0bDQSouR/d3mdhin1U2ZMlsajqXLQ9snCgcVBq2x60q6?= =?us-ascii?Q?QUq8v/rmAEl/CTxCNm/R2v8P7ly8ak98/XV2qa38TCsqFbJyB4CyBnadgWxg?= =?us-ascii?Q?13S3ZryplfUlQlkjJ+XMEAcsM95KdQqs3XWqzu4OtAM35qSdwH5zxMmwHLdE?= =?us-ascii?Q?Th7PjuysLytuw+RGdih4TZmUt0bz0Q6QzOR2xFzHUAGf1G7n1/tfhkCfu670?= =?us-ascii?Q?Z+pcolEHGWB8IgVyC4oIiWpy82YeTugyaKUDfozzqTH58QU60PTr8/m9/mgm?= =?us-ascii?Q?jBW59q2ATmX9kjeBAXRMLKgcQde0YaX0joT/qD52Gjc6nssj+R9erJ38l5em?= =?us-ascii?Q?PVZ2tiiFFgtdqEqj1CQtibFzU9JxFUjFcvLsJr++BCKScAom8tu32da2ZHHP?= =?us-ascii?Q?uUv3ZGVnMfMhFinfdQU72C/kDSjMgnml6WglOeGmoEu/LbrnSanVyf/fZjvh?= =?us-ascii?Q?4t8fv0GpUQDkulHszRbZzDeT6YvQR8FiiaiHHiF/MuboPfyg42fF/qIkBLv6?= =?us-ascii?Q?3js5QtuPYs1TsyK9nhq4e/TCQu95QUT/zWDaNR6NauDGd2/PXSYsqVUuaqRq?= =?us-ascii?Q?p1AA+RVZeYIl7TAmaL1R2KWwu1lyhx/rkX5zpvoNUGcsW7YZllE5If8ni2Qb?= =?us-ascii?Q?caMaLPoINWFHBGQ7tYvqE9PjzljW3a5ra+QN6E+sNk5JkhMaDDtaCErId5v8?= =?us-ascii?Q?xrnTZ9H12RZ/BoF2DrBL0mJblBYpvjRiZMn0DrbJVsy0666PC8Te+fhuxmXH?= =?us-ascii?Q?yIbIaXfBOQ=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: d8071095-7b87-4ca1-0800-08df12d77109 X-MS-Exchange-CrossTenant-AuthSource: LV3PR12MB9356.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Sep 2026 03:14:23.4922 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: bVcB/SRV/6VUZmWFpA0lUA++iogbQ64EEPdwcxbJS60mFUwpHYlSV+uOjW4+DLUflMx4kDrYPohKX+YbdpJImw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB7834 Content-Type: text/plain; charset="utf-8" DEFINE_RCU_SYNC() contains a statically initialized wait queue. SRCU static definitions similarly rely on persistent lockdep keys and, in Tiny SRCU, a statically initialized work item. Add ASSERT_STATIC_STORAGE() to DEFINE_RCU_SYNC(), both Tree SRCU __DEFINE_SRCU() variants and Tiny SRCU's common DEFINE_SRCU() declaration. This covers the non-static FAST and FAST_UPDOWN wrappers too. Tiny SRCU's explicitly static declarations already enforce the required duration. The existing per-CPU restrictions on Tree SRCU declarations still apply. Assisted-by: OpenAI Codex Signed-off-by: Yury Norov --- include/linux/rcu_sync.h | 4 +++- include/linux/srcutiny.h | 4 +++- include/linux/srcutree.h | 7 +++++-- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/include/linux/rcu_sync.h b/include/linux/rcu_sync.h index 3860dbb9107a..c10b6d30561a 100644 --- a/include/linux/rcu_sync.h +++ b/include/linux/rcu_sync.h @@ -10,6 +10,7 @@ #ifndef _LINUX_RCU_SYNC_H_ #define _LINUX_RCU_SYNC_H_ =20 +#include #include #include =20 @@ -48,6 +49,7 @@ extern void rcu_sync_dtor(struct rcu_sync *); } =20 #define DEFINE_RCU_SYNC(name) \ - struct rcu_sync name =3D __RCU_SYNC_INITIALIZER(name) + struct rcu_sync name =3D __RCU_SYNC_INITIALIZER(name); \ + ASSERT_STATIC_STORAGE(name) =20 #endif /* _LINUX_RCU_SYNC_H_ */ diff --git a/include/linux/srcutiny.h b/include/linux/srcutiny.h index fbcf13bc12d1..40b592b4e2d8 100644 --- a/include/linux/srcutiny.h +++ b/include/linux/srcutiny.h @@ -11,6 +11,7 @@ #ifndef _LINUX_SRCU_TINY_H #define _LINUX_SRCU_TINY_H =20 +#include #include #include =20 @@ -48,7 +49,8 @@ void srcu_tiny_irq_work(struct irq_work *irq_work); * Tree SRCU, which needs some per-CPU data. */ #define DEFINE_SRCU(name) \ - struct srcu_struct name =3D __SRCU_STRUCT_INIT(name, name, name, name) + struct srcu_struct name =3D __SRCU_STRUCT_INIT(name, name, name, name); \ + ASSERT_STATIC_STORAGE(name) #define DEFINE_STATIC_SRCU(name) \ static struct srcu_struct name =3D __SRCU_STRUCT_INIT(name, name, name, n= ame) #define DEFINE_SRCU_FAST(name) DEFINE_SRCU(name) diff --git a/include/linux/srcutree.h b/include/linux/srcutree.h index 75e54e4f963f..8bea8044230a 100644 --- a/include/linux/srcutree.h +++ b/include/linux/srcutree.h @@ -11,6 +11,7 @@ #ifndef _LINUX_SRCU_TREE_H #define _LINUX_SRCU_TREE_H =20 +#include #include #include =20 @@ -217,13 +218,15 @@ struct srcu_struct { fast); \ extern struct srcu_struct * const __srcu_struct_##name; \ struct srcu_struct * const __srcu_struct_##name \ - __section("___srcu_struct_ptrs") =3D &name + __section("___srcu_struct_ptrs") =3D &name; \ + ASSERT_STATIC_STORAGE(name) #else # define __DEFINE_SRCU(name, fast, is_static) \ static DEFINE_PER_CPU(struct srcu_data, name##_srcu_data); \ static struct srcu_usage name##_srcu_usage =3D __SRCU_USAGE_INIT(name##_s= rcu_usage); \ is_static struct srcu_struct name =3D \ - __SRCU_STRUCT_INIT(name, name##_srcu_usage, name##_srcu_data, fast) + __SRCU_STRUCT_INIT(name, name##_srcu_usage, name##_srcu_data, fast); \ + ASSERT_STATIC_STORAGE(name) #endif #define DEFINE_SRCU(name) __DEFINE_SRCU(name, 0, /* not static */) #define DEFINE_STATIC_SRCU(name) __DEFINE_SRCU(name, 0, static) --=20 2.53.0 From nobody Fri Sep 25 08:46:28 2026 Received: from SA9PR02CU001.outbound.protection.outlook.com (mail-southcentralusazon11013062.outbound.protection.outlook.com [40.93.196.62]) (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 D3CEA40862F; Tue, 15 Sep 2026 03:14:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.196.62 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789442075; cv=fail; b=eHms0jHcs+8ZWkXyNcZYZBy+N2a2290sOtYft9xL5ACsj0G2nF+K013ESJFVOXAsuj/zUoCtYFBYIw6HtEQGBqkpBXMILtrk0b704Pbz3J0WgKV7gzbZMr9unZ+t1q5M2mjLFHcauAMH6Kd59op50Pos/RpTdU4dIA2DCPoH8Eo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789442075; c=relaxed/simple; bh=GASWXOv/n7U+/POFIIj/1nACZnNSDJpN+LY2unfcyIk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=EkcjukOuTggc1o6a2ZBwGKbfNPNtv+vNn4vHb3qtrz+0ShndC7pgGG3sICSphyyylQh2TK4P0QP4jbEnIwA+uFIlggw25yExIdHMP88DMqC3f1N4FHGQrhMT0WEuthkwlmsKWS9bmGi/SA2+RRvaeumbD+Rm2sGmADeeFM3uia0= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=ZUOifBcs; arc=fail smtp.client-ip=40.93.196.62 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="ZUOifBcs" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=m6GmgkI4miVFrniamzA1iIhpYlud79z0jAMZ3+b7rOMUDW6StLlaPGZ4hEw5q7qBgkQx5PUUkcYecL3Iwi/H9FTt+0y7qd8lJIvR/X2bvx8aKaawFBGUAeAiyIcxqY59F0ZV6X7n/TdrjKll1V/pUxFUxqskOqPHXxgjSl4VE5Z4GKFtcnBqnf+Tk2G4q3vKnCHVV5wCuDTuP1VoseYGYrJBqLtv/NFWAQFHfqsBfkHMBnsjQ6tz6h0G85x56FGSr0iYp3G59HSxHbf2GGqD5ma2xhHK1egU1FIT8zK+dI18T+hFBqFSrZM73FJ7UKBbyKe86dpz1CiS9EenSkBC7g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=FLlM/fs18Ew1p4SDbaG7B5TPIvAP6a1EQ5gO3YVRWLo=; b=BPA34QoYe1CO7qmA+NwPKxJs6rlV3Jtl0FmfSqewoXbMHmKCSIUiADQhAnDJfOj7nLyYGbDz6y7OkqkAQKloEfeO7+3ADWnBTwPH7eTR2w6T0cViBVPNWH9vgKYoXYtuIC6SBIhW4VJSPw6MgaISCtCZzLho4mO7CUbpJigbBM3607YC5J/jRdQwDx9SP3EuAQIUcoq6ME3Yr103klmQmIkSlG590cQx9WRqkrbkkOr8FHeVH3bM10XtmywAaHAbKzRhSB2jsT9ERlEdWkcMEHXgPi2KrAaKK2jN5L9/q4IuPvIKqdIuGy/vB2Egm/IJlh7ty4XbRJwlbQRy1MsUzg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=FLlM/fs18Ew1p4SDbaG7B5TPIvAP6a1EQ5gO3YVRWLo=; b=ZUOifBcsBqQwPXEKi7GOLtBQ99Xcy8k1LCFbFukx61gmUzUbm0Bs0TGd1Kz4a2shopcmrZbdHM3T8KbvDp6geYbsp0fzzi1q+sDl7PSzFv16fUQaRic4h0r35S2u6ffnlOhG6hR9kCELXlNvAyhp1X/VlSCy1yaBMD0YcD6ZafvbJVyqwvM6rjizdb0O3w0FBoyBBvIzXRI+u9ThNV09d2k5jJ131KzfZsPOUVkclOID8Xl8QZVNfQZBBz/KuqQZ8kaOMss8mbf4vUX9MCjV2Pj63R2NXEI5vwsiGm0OTGCjXZ4JcVk5IjHJeZHkQgRhHN3bF0yct0Ou+vFlRwn00g== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from LV3PR12MB9356.namprd12.prod.outlook.com (2603:10b6:408:20c::21) by SN7PR12MB7834.namprd12.prod.outlook.com (2603:10b6:806:34d::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.12; Tue, 15 Sep 2026 03:14:27 +0000 Received: from LV3PR12MB9356.namprd12.prod.outlook.com ([fe80::1c36:31b4:c420:6286]) by LV3PR12MB9356.namprd12.prod.outlook.com ([fe80::1c36:31b4:c420:6286%5]) with mapi id 15.21.0406.007; Tue, 15 Sep 2026 03:14:27 +0000 From: Yury Norov To: Andrew Morton Cc: Yury Norov , "Jason A. Donenfeld" , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Matthew Wilcox , Peter Zijlstra , Ingo Molnar , Will Deacon , Boqun Feng , Waiman Long , Dennis Zhou , Tejun Heo , Christoph Lameter , "Paul E. McKenney" , Frederic Weisbecker , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Uladzislau Rezki , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang , =?UTF-8?q?Onur=20=C3=96zkan?= , Kees Cook , Joel Granados , Anna-Maria Behnsen , Thomas Gleixner , Juri Lelli , Vincent Guittot , Dietmar Eggemann , Ben Segall , Mel Gorman , Valentin Schneider , K Prateek Nayak , Mike Rapoport , "Liam R. Howlett" , Lorenzo Stoakes , Vlastimil Babka , Jann Horn , Pedro Falcato , "Michael S. Tsirkin" , Jason Wang , Xuan Zhuo , =?UTF-8?q?Eugenio=20P=C3=A9rez?= , Sebastian Andrzej Siewior , Clark Williams , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, wireguard@lists.zx2c4.com, netdev@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, rcu@vger.kernel.org, virtualization@lists.linux.dev, linux-rt-devel@lists.linux.dev, llvm@lists.linux.dev, Yury Norov Subject: [PATCH 17/17] sysctl: assert static storage for DEFINE_CTL_TABLE_POLL() Date: Mon, 14 Sep 2026 23:13:32 -0400 Message-ID: <20260915031334.1194975-12-ynorov@nvidia.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260915030336.1192299-1-ynorov@nvidia.com> References: <20260915030336.1192299-1-ynorov@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MN2PR06CA0016.namprd06.prod.outlook.com (2603:10b6:208:23d::21) To LV3PR12MB9356.namprd12.prod.outlook.com (2603:10b6:408:20c::21) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LV3PR12MB9356:EE_|SN7PR12MB7834:EE_ X-MS-Office365-Filtering-Correlation-Id: 6daf2da6-a7e7-4b95-017a-08df12d77363 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|23010399003|7416014|376014|10067099003|22082099003|18002099003|56012099006|11063799006; X-Microsoft-Antispam-Message-Info: Qo1j+AvdrQ3T8IqkSwOQqtnDz3rnUfofGKb1knJaHaz/RgqNvQvXcIOY+hEpnzirJCYMyhopAu9TmRLvJPGsMOUT2+83qwSgJ3o3wNKmj3nfASNYTf+C01GKrREURVCXNdJLOlfIksRdnuE3S0LjjMIFEhpMahWnIX2BmlnsJ9cNNj0KYDPQtJ6z9KkKt3PR1WthSa8JRjl4lWyPB9zBaNeqOuCFB+NPr06pEfECsQIR7A847a37ho7tCK0R5CHppntgTp2r7t6f4BzAwm0NSwgpjdl17bf9/7a6UzSpybqxSjPHmTX6Ya41POOgEvlpJw5FEfuiMJYr4b6WiEEMP751xT1qSpLeZO/204qTZzPQsoBOnYy6zEnKYQnOzx2WtTA1kFMy1+fbYEH/ZvSKlhrnBNpUF+IoFFIw+06Uq5nEGOA4KGsxxbIZIFkx5Es9njWcPm6lkehEOOSfXlQhO4LasYnN79xZhbwGF2NmodcnORuaRlHgU2l0KApsrRnc4ui3wJHIdrbrLNRZOJTqXK4fLBYzzoRyXddPbVlXD2USpbd0jLDc6E5U50Edd2UHxat6jqghyecNZfRyI5Mu7NRh/eiFtP+BCDCb0hzOig4E1Ikm5Tl1PM5JafmGz43h2Aqrl1lseWD/DRgn5I5b+Te7le4VuLo0Wah94LNUJVM= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV3PR12MB9356.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(23010399003)(7416014)(376014)(10067099003)(22082099003)(18002099003)(56012099006)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?5l1zSSIkIJQQkj4Yh9ogsri8II2nXbR7+dyn2Gl5uewrZI6MLu+UCIvt3Svs?= =?us-ascii?Q?77g/6flqiqsDUJjaYltjg0lWZnf/A64cImkviNpMQqVTwZU/ugLcBJo9si51?= =?us-ascii?Q?VZ2oI+UugFzPzef3Jes7oVZ8sVHwt/lcvvXpsAO/T//8f+99eKoV+WceZDRk?= =?us-ascii?Q?s/PHjOX+awh1cWzqeaSYwmo+qeOtP3cyBMK7KpPU6F14x/sdbUbL87TNwbbD?= =?us-ascii?Q?NEfVkOJylQAn9iJWU/cVTRwRY0NH+dlmYv+K9A6VDGF+yPAnfp4R2JbEr8yX?= =?us-ascii?Q?8mZ9rUNxGHf/TW6mvhT+KA4/LjPfVVmFKJm1SwAJWR6hef5p+seLr8pJOwPJ?= =?us-ascii?Q?Kq94uUq7mAvJN1bHLcrhLPTXMzp2JmcMRdGKrfyiVR0hkBuAfBjhvFS49Hp2?= =?us-ascii?Q?cePN0LUr/7Gt651bQ/H1S6eab7I8OZdcM59FtDN66xo+R4A416/OzzhVRTGE?= =?us-ascii?Q?EnKTYzXZ0IvK1PXTChT3hM1FPQtJmwx74ZKjjUUJS57VDmVj/nJ/VvstShAP?= =?us-ascii?Q?K0c1C7e7OFdF/Hp8V74Lbkt10HrYrfhVHV8W6dqwBUDSe7UXuyxqDSp3v+eD?= =?us-ascii?Q?zRzQm+WhHT3oh4aKiY2m4vp0BiEKpZ+fsYVYllNsEqPOSMC9CalaVil8oveD?= =?us-ascii?Q?yldQm19Dtu4vXwH8MxPLjmdT5BUpSS4b3ZtwYKvfnG8hUodkIpRsHavdWEV5?= =?us-ascii?Q?k2DQIQ/B8M31LGn6/SWPqZFNhrL6qEpGABIg2CbcKZwBo0o3zGnuuAiU+Fu/?= =?us-ascii?Q?a4+5oeyoQPGg1FuB9WO9IHmkIbPW5mKXKzfgNc4MzXhv9DU5CrRGaPlp7T5B?= =?us-ascii?Q?gv6VWFGeXdE7M89bCaUZy+OB7/Q2VvBwAW2HOq3IeH/3KPJ5/tLMFRlOTQhR?= =?us-ascii?Q?hUd3ka4CG/v9nfSN0NmNVXeYCbcrPxcjjeeArk+8SNvhffIgTKPxjvj2aTpq?= =?us-ascii?Q?lDcYQMRKNBTUt/8fOIJZIqqHwbtp2sZTq8otYn6c3gjf6zkRyOqTTUfHDf7a?= =?us-ascii?Q?BZdxOUDf4yeg1eXsFzBgvBqgpXohZQVCZFRYksmrwt4gkp59LACSNWbXQeNV?= =?us-ascii?Q?VvRwh6UMZxg9e2o23ySzZqYZnOH5cqZUNpOkxMG3E2dOG1tv4oWebe84B0iT?= =?us-ascii?Q?j7AmRrNObK0owP/4mWXd9MWpR24mgI9zNeTQLBPjMx2kJxETOLBpA2jTt8bp?= =?us-ascii?Q?Pxz0SIJeUU1DmL3qaZ/xhp2HG0Vdy7fgsja3v2D9y77NDWRZ21eO+3/PywPL?= =?us-ascii?Q?sKz6GEEuOMwmSDQ8ZByWKHSM3bjAdIsca3L4L7u1paRKz5LTVCfX84cDVj9v?= =?us-ascii?Q?xoUaVMBFmYvv8DvV15+MjIE4ueiROabe6I11wYBRrrYAnlgtRBklmgfvycWq?= =?us-ascii?Q?podzS8cizYt8gCIkvWHMOsRwVEci4n8Ifb4kXhlUhna/ZOZxzZgocXTKPXWN?= =?us-ascii?Q?QLAugcOU8/XybeNapiqAQT/nP5lpMyEhBmDB/JsDR/73YuzrwiXJJIiCYre6?= =?us-ascii?Q?SNTZcSW1gzdGUSFED2oDDaHg6XMbfuZgd7wLwY6ngiQFDZ1gKwXI8zAXKiyB?= =?us-ascii?Q?gMcICXbd6LUack8xjjW1ubi+DbQKMhe09N2DVlU5PxKc15IxrTnPrw1U7Ert?= =?us-ascii?Q?+yBYjV4A0qmulsvAE+Vl0AB/nqKIbNn4s8qZILJTMxJnXfwjadPy7ZyrQcqD?= =?us-ascii?Q?Ld3DOJlP3G778ePaBmicaLmSikTyE+9Dwp8DmXdwXsefOYO76tCBf/ZRxDTu?= =?us-ascii?Q?OpEopSiIPQ=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6daf2da6-a7e7-4b95-017a-08df12d77363 X-MS-Exchange-CrossTenant-AuthSource: LV3PR12MB9356.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Sep 2026 03:14:27.4677 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ULG/dxhE5t8BJXtBHDi/DnBjTp1qD8KyHEHWQu427wj3sbtl+C7HMqeLee8LLm/TBLSYihJWp++NKFAiyA+2zQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB7834 Content-Type: text/plain; charset="utf-8" DEFINE_CTL_TABLE_POLL() statically initializes an embedded wait queue. An automatic local poll object cannot provide the persistent lockdep class key expected by its wait queue lock. Add ASSERT_STATIC_STORAGE() to reject automatic declarations while preserving file-scope and static local definitions. Leave the underlying initializer available for embedded objects. Assisted-by: OpenAI Codex Signed-off-by: Yury Norov Reviewed-by: Joel Granados --- include/linux/sysctl.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h index e5d7226ab6f5..be79359346af 100644 --- a/include/linux/sysctl.h +++ b/include/linux/sysctl.h @@ -22,6 +22,7 @@ #ifndef _LINUX_SYSCTL_H #define _LINUX_SYSCTL_H =20 +#include #include #include #include @@ -216,7 +217,8 @@ static inline void *proc_sys_poll_event(struct ctl_tabl= e_poll *poll) .wait =3D __WAIT_QUEUE_HEAD_INITIALIZER(name.wait) } =20 #define DEFINE_CTL_TABLE_POLL(name) \ - struct ctl_table_poll name =3D __CTL_TABLE_POLL_INITIALIZER(name) + struct ctl_table_poll name =3D __CTL_TABLE_POLL_INITIALIZER(name); \ + ASSERT_STATIC_STORAGE(name) =20 /* A sysctl table is an array of struct ctl_table: */ struct ctl_table { --=20 2.53.0