From nobody Sat Feb 7 19:08:24 2026 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (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 5B608281376 for ; Fri, 16 Jan 2026 13:37:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768570645; cv=fail; b=kiRJ1JcLBWeJO3OFrzAKBmmSJLCfnm0GY+C9IaaOwsdT9RftUlp2aarnuM3lXrp4On8aUNtihGQQlfIBVeeMOlLF60uMrm3+7iqs/V/83SCkrUTm2L7EAjjuk3HMGLnvfaOkTSOwmGOPqTovy9MY9RuuC6/FZQLDABAh+6CxtpM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768570645; c=relaxed/simple; bh=WorW2KCEvhtee/OblEFhECg1JEhAbsx5FMjnvO+rFOg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=uRQa+2/dr9V0TIQT4g4cGEjd/ikgrMPj9cBBRAhiegXiNh1f/1d8+wycZV1ocIoMLATWM5j5kZPX4uwBHFK59gzClD2J2vPgEUgRbGopBr4Ukge0RAqIOeqnlyaHYagDzI+BVJsWkJZkIKH2pdc70vQK/AB4Yh7bdeUtARYSRdg= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=bcTPI7m1; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=lXAJjNBe; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="bcTPI7m1"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="lXAJjNBe" Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60G1fd6K1971956; Fri, 16 Jan 2026 13:36:56 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=HrRoSjFkjhff7jjCvc3wIHd09e2mFQC+m7LhhWkUeDk=; b= bcTPI7m1buxwhuV+l4HwBz5/bykgkT9md0nMOK/0z2BfYlB5HKLteB8HYApkj1sX DB1uBspGhg/WnEUiFkG0fXpvHfqeDx8vyN09plPAl0AaZ5jj4Nd992fsgkXQZBEi Q4unuSKuWXmfF2VX8NrLUPb73b716O6TJEnw9KKcHk/LpGh8suVNwcW8Z53Ds7ck ZGg3eRZ4xuW7PcTrqdy2WoYfmMFBwqprroiajpWCxbSIRBmZg7gFuf7pPYlCVWxr +V/LNg84dU8Zr82TSVLglkMy5RNH4pGNZMgoaS0XC6tw1iFVP74lK0yHgNaal7BB 37bJumBh+k36OaQ9e91lYQ== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4bkntb9xhs-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 16 Jan 2026 13:36:56 +0000 (GMT) Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 60GDL0Sx029434; Fri, 16 Jan 2026 13:36:55 GMT Received: from ph8pr06cu001.outbound.protection.outlook.com (mail-westus3azon11012016.outbound.protection.outlook.com [40.107.209.16]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4bkd7ppbag-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 16 Jan 2026 13:36:55 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=k7Wsr3LWeGkIGYKRTXdXE6MSXtlaNyQimD9n72xtfORKUUow/lxh3iX2no+rGe+njaxSd63OXJK+i4gv9lNE63SDE98qVVkHbMu5X2HEnoB9qWrjjJ+4AgUAWdxZefbTukgGCSvFGp/oSRdyb6czZeTQBB1dOLLbGyx6WFt8jvtDn8mKTIUsoqTaAN5Y3MjcQ8HvJIZiOoVFv7gAP0j/Xmfdg4+zdiP47H9rnkng/Ux85NdIMIjX/Ihqp/3qSYh3CkY6yMwVqtQcd4QkgzIe6l1pVFDMyMw7pyBie/RbrYKkiIJHR3dR07AE3edkBRkYt0bM6j0kSCqh8RWJsOhHTg== 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=HrRoSjFkjhff7jjCvc3wIHd09e2mFQC+m7LhhWkUeDk=; b=MeTHvTQdkLQPLCQOJ1cI3wO5gBitlRDrjWIxg3Rl3oaRk/xTu4hRuYnFgyteuOqL1HjfBEw5peupFpGxi+dxKYUzOWjoPhqJSkvdH72ER8/cjHGxtp6zp5tRxGngMoqDisNJpBLoyAvHpRlM67kyALl29DkvhwiQxWJ2JL90B0usl5yEZye9B1WYiykqfbO4eHNn1GcYr8uT2JWgBqDJSyeuh6gDujCwXfdkZU2Lbi0O4HmxFzPzi2u9mljiE/FXW8n4bw1p93RalA/X7ZV5JGWNMsq2u0QSFUTcn1biDi9CvEnxc9sAxHwG5L2nSwWfGb+ny9Q+kVw25XvpXBU5Ow== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=HrRoSjFkjhff7jjCvc3wIHd09e2mFQC+m7LhhWkUeDk=; b=lXAJjNBerK9qpUrp2KEqRCCuKXHSJ97RNYi3EeYkhm4al2fyl+Hp5S4pfxTd+kGYa2CZ/VwH6r9BxgVHkrFruKldFdmVdQD/lZSdHx1ormcDoMhgH9qQ7fOWC06b5R2ukOEgLGbw/RY/veFGUepUT9ASBoSOmfPBd0C9y6QjZD0= Received: from BL4PR10MB8229.namprd10.prod.outlook.com (2603:10b6:208:4e6::14) by PH0PR10MB5659.namprd10.prod.outlook.com (2603:10b6:510:fe::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9520.5; Fri, 16 Jan 2026 13:36:51 +0000 Received: from BL4PR10MB8229.namprd10.prod.outlook.com ([fe80::552b:16d2:af:c582]) by BL4PR10MB8229.namprd10.prod.outlook.com ([fe80::552b:16d2:af:c582%6]) with mapi id 15.20.9520.005; Fri, 16 Jan 2026 13:36:51 +0000 From: Lorenzo Stoakes To: Andrew Morton Cc: David Hildenbrand , "Liam R . Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Shakeel Butt , Jann Horn , linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-rt-devel@lists.linux.dev, Peter Zijlstra , Ingo Molnar , Will Deacon , Boqun Feng , Waiman Long , Sebastian Andrzej Siewior , Clark Williams , Steven Rostedt Subject: [PATCH RESEND 1/3] locking: add rwsem_is_write_locked(), update non-lockdep asserts Date: Fri, 16 Jan 2026 13:36:45 +0000 Message-ID: <8e343ccb9319433364f5949a69519f1bb521fc8a.1768569863.git.lorenzo.stoakes@oracle.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: LO0P123CA0005.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:354::17) To BL4PR10MB8229.namprd10.prod.outlook.com (2603:10b6:208:4e6::14) 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: BL4PR10MB8229:EE_|PH0PR10MB5659:EE_ X-MS-Office365-Filtering-Correlation-Id: abe3e258-46e0-4480-24a9-08de55044ddf X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?HgsF2ebUy4JNbNketzCvysTtiAgCnfmn93LrXkj+RShMWOyiMOMb24E8z7W5?= =?us-ascii?Q?Cch+TRuM/x2M0q566dSdaNROo3Up1Sh8jiArEkTh0gVrFsvFMlR5ctQfC4Eo?= =?us-ascii?Q?FSnzqoR7CRRzqyJQPCsuKsACHsgXidRJlprLV+tFU87/BBXKZim0Tez52jMN?= =?us-ascii?Q?Y55X/FkfHmLToRC34GfK05NoDflXYEL/CLFGgAdVEaYQi651ASal5np+Qbaa?= =?us-ascii?Q?QLquZ8pszSgI71ixiWzQQc99EAvJ6MkbAhCyxKYBIxwdNo/aFTR8gEzDL1Yd?= =?us-ascii?Q?9g23c0XXaCJW06SJY/dLSCEho5iDjmbnF1PwqZyeYCp/lL99hQR2WQy3IcqF?= =?us-ascii?Q?McTXgPv1+uI6UpnKj0Qf4Qubg0LT0/0/+MUrwODevwOvPipNcT0NT2zfTO7v?= =?us-ascii?Q?XQ+J1REu+EopwMcICjTFzN6gDbpJ+CaQ28K2nLtqW+z4M8jyBWippaZ085JO?= =?us-ascii?Q?n9F2FVg88bqqg53/lGVRwEZkwUF4Zp9VPrkXTVEkOq3qd+D2XFs6kVDBB6NQ?= =?us-ascii?Q?4YjkgCNHEuB4eMzTGZ1WmdL8inAO1J5WK3qH2AMGm2XQJP9FZTPlkoSVGefv?= =?us-ascii?Q?MWTc5G8ZB3q3egJ5Rma4QuCD+t/CEQBYkDmCXozJeNyAGObPy9e0gDEXpRN+?= =?us-ascii?Q?mFPBC85dX/2UrqJ19wD5cLor6DYrbdPwkDHGXav8yqR0fc0G6Sx59ptKuMIG?= =?us-ascii?Q?txnp4FjpBpGbvd5g9HItzZue9zCv57Ur6y1Kjz4gCAHJjFzdgc2sdjtEj9A2?= =?us-ascii?Q?bkf5MFyoExKSWxrWX9DmJVDspXHNwILEM4uKzuyQYqCnfipdUI2VkKCY3nxb?= =?us-ascii?Q?Zj/tZWYB0/j9TXklLAerEqcjjEo9F4Ib4uRqFYyf1YdwkXIfg+ja8kXAV8JO?= =?us-ascii?Q?4J3eRWN79eyg437tbAwB6MiU9d6EgxY5PiLbrEzIL8IsZF0CM4EinqK5sETO?= =?us-ascii?Q?n2enHZJrbbhinyXZIHl8H89wT9TL7E3ynW6TVSORBSDHcJMaX8mL1SHnR5sG?= =?us-ascii?Q?IsLG27ZpdfjbzKZZ5pZiq7q5lFJzC1Kb/cJgvjFY4FbSBjzOXd39nuAHUZRA?= =?us-ascii?Q?LB1wKid7VQO7xeIEc+q1c3nELTkQ5cj+OGm5WO4gCGYM6pwNGru4JkMhyAmk?= =?us-ascii?Q?r2TsYxTp3q7AgHSIlJp164XS6D5S8iUYpNtPpwJCDa+dS7OigzlgLVv4oj98?= =?us-ascii?Q?akDYjrKtrdkiBtz21XyakF7iUiTSbhKBCScODucOfrwaKa13wYk6HH2T0JSW?= =?us-ascii?Q?YRPnwqY/ySUiw0X/NoGekcuT5bZbZ7z3saf6ad+K16AlV4LzQJrN2rVgLOS3?= =?us-ascii?Q?0QcH2M2Qf5rd6peJk0RLPzXv4p9W4dLgUKNaXjwTff9E9otSFNGMTG1jx596?= =?us-ascii?Q?f3c/dpY/xpyfIM+hXg+j5manhk8Bk0FvdZDHcqM/f3LWzaSVcqBzy3tea3hI?= =?us-ascii?Q?rendODix8MROlA8YB5tXZsS370IDV2445/lqx/GqPa2NMMRNZ4WO1pAzerqS?= =?us-ascii?Q?x5ZZ1/6XB6uEN/Z3Ag41J76kkO3toFB8et+UbxuGKNdQFEMMhi9uL5TBKumF?= =?us-ascii?Q?US6VcpRRNFEuB8+d7oo=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL4PR10MB8229.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(7416014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?+0Ndt2eNqCLkAqn0P2niXgcZ8rIcW3Od9PGVmQG58awb6WmYxGHtK+hMM4/Z?= =?us-ascii?Q?thbFx7u+2MVnQ2Pd4uhSHVva/pnPXEp7ljfUxVmSqjbmG88t4DMrvtOX6VB+?= =?us-ascii?Q?MDICgW6/qIZbZ4ep9sE2qf9TA7JTpldNYFJUmMlayE3fTkhx2soDvXDm0sO1?= =?us-ascii?Q?EggMGMDWz5zaXxOanUTrhg7lZEdc+ksmkYr1QEAcHPUTf1Jm7qTZzXv/V0He?= =?us-ascii?Q?KAkpjYaLaYcGPr8SF/ohAYjgq25NeWzgOP/5vFA0yHkG0SXy7L4W507JNv3M?= =?us-ascii?Q?7QQJQx6wdbIGF4Ttu9Z/cIQQNfrIo3RtxeqdMF0GIje8xZcm9a5vTvHce9af?= =?us-ascii?Q?UX1gML/y9P55p8vVJfYiKz7HHH6cNgfFXQ/ScS8Q3oj5gY1oFmIlkQnuTdWz?= =?us-ascii?Q?Ey6QxJ8FR574fepWTviqlO3UGNMzojbdfWyqicUghsG/vDEFT/fYc5n6W0Fq?= =?us-ascii?Q?3AV/bJKDVX6/MzgkGsVI8knjOchy3PH+Lst4hdiNZYgNd0lICsDetorzV7S2?= =?us-ascii?Q?lh/J0bNXkKI/b1irleIjsTAjciiwThLtmtc0QKuREVYuFmxk2Od7ghnUzTfr?= =?us-ascii?Q?b0cYA35F6i0KuA5sRdZFDI690fmtwrnnbIMZ1L2+99Q3BSXOHUpVh7YAcron?= =?us-ascii?Q?MiG9UtPQmlzrOr4CyUt44wRelBu/DVE2465bKUjGWg/BzJ/hBX7R3JcHY66O?= =?us-ascii?Q?0ZG+UIw6KHmQoyrQMyzpRyrRPSWM2n0H2FcM3uvQAF2hY0PPQasi653HR/0x?= =?us-ascii?Q?XrQHKXkYM6eskExjbMQX2NdGrWStz7dMWus0lP5HxZa3JIZK+xAK1j7t3wIC?= =?us-ascii?Q?5OY+RnZpZ7mG1/goYXINV1oQGxYnDw6s2bvuBA2qs4LPxVcTOotCX2W6T75v?= =?us-ascii?Q?YtVUDu8/opxgNsrmZBuSgjWflLLm4myZNq30ijRReFvJeeNwp8LSQkRfAV5N?= =?us-ascii?Q?fhitR+kEbngAzB4piUFNbfnd6hHvnrZ9yok5fDLENmvLmVjeGUAd8ksH3uWA?= =?us-ascii?Q?QQ4dqeKgIMwHKWFDPK7qcl7Oh0D0punzRzQSlO4ltPApbAIUF8cawgq3B0VV?= =?us-ascii?Q?Lz+GZPPXej/xD2pSzYPDQRPjUybZDaqbLqiMwBDNQCUhp2wJLCN0oBFPZSDZ?= =?us-ascii?Q?g+BX2R+ols0UOzPikkEQjPlfKuUQGAG34xuqiw5Y+gDd8nF2+KqLlKB4CtWX?= =?us-ascii?Q?UcLOBJ6giKXjW8lRhfOcshwGQUoutdz8qsSvSD7PA5QiPEgg1nA9kx+dOLf7?= =?us-ascii?Q?Msaj+KCH+UVTJHGv6XK20L6dL3xi7Hmiplr9TTzI/X3UjhxVA9mO9F7axchO?= =?us-ascii?Q?486eX3JJId8gkSqU7LTETZRDSrr7Iw4wnOufuuBT8HIz7T4J24uu293YVSmP?= =?us-ascii?Q?6EDSlCHWtFWcM/X5W3E0o3oN6Np3zQXYk2VI0EpBe0faJKVbSy+2a+yW6CAm?= =?us-ascii?Q?2p1BTFr8wCZPMjepX/KuyWJONRQb9MM/eVI5Z38ozK7VMpPsOi+ZZDAZ2vXq?= =?us-ascii?Q?mbtPEnrOHVzEpN7Y1/AYYZgZeQrFOwkeBdlBi/MGMRxSP7Td31D54YYVcEXl?= =?us-ascii?Q?xYbjz9cX+jOMQaUTlgCcMTpr+sRlEit8QH5jaIuNL+lwA5oq29mfn5wnSdvf?= =?us-ascii?Q?1gjDdJEcK7/J7cIzV8c655KC8F79GYuiMUQga7Kl3wv5J9UOX2uW+rqE+Epq?= =?us-ascii?Q?p7uRIOGYUAcyFDxchKBuv3mHga4xezm4Hz2rQ8pQBsxRQTdhSYA0OXnGVU2V?= =?us-ascii?Q?GPipwFg6gpIXOKXNGx25Um8j/6aPwoQ=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: Q5AqH9Flo6EQkQHUcNvk3uCShYsqtxm/hj40wUhiNIPhOWmwP3ozZ1XzKvyNWQd8sHLnqhBxFgVA1xina2Bd1AUbqpXMuzWqe2NdsnEGwjLuiua5/oapQhyhR7MXgg2P6kIeTXoMn3OZjuKMnV1ERDT3pbTq3AgyJQL8Uie0YKipDekTNJSRt4VgqdTQwuo+D1cIfkebqIDiTc5ExXZLOKFXTdpp0IN/F8FffYH+4DG0WrOYtjFfaCDBHZBXaqFqBO55STLSdTkFyNiL5P3n/qo++PuWPP796gASdDzvOy74LlVfM0LLf4Csj13Vb8QFt9aGA+Gz5giJ4dbPcwf9vfRzCUP0eYY3jebdKVnVf2bGMTicoaNKVHaul5aORZPjTQO5OWoTcJX/In0FbPeXdiFKQ6oLEal5AF8X5DLvLt8HYo0DIUcMqEw/RQLfrLVId8b9Igso9kuZzRcWcu4IGsC0zte18KbRc1939niYEfdYTJK807zO86zyySUG0j3R2zXFGify38KIy4ueCWWu/Uiac4ZALA7zEWRanvsfRdW6tXxYgSE4oLkb5EjlwSSygbCAgBNj8N3k/T+b89aupkwkWCdTf11b3VNUUr/iDoM= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: abe3e258-46e0-4480-24a9-08de55044ddf X-MS-Exchange-CrossTenant-AuthSource: BL4PR10MB8229.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jan 2026 13:36:50.9895 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: LG1q9EjX0MVdf9uVD759EsdYFNTikZhuQ3Si9J0BrZmSDq4U5OUL1HmeoX2wXD6mvXj0TQ+b9vpR+ObShKKRLtSO+3UAi1JYNCvL736MTwM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR10MB5659 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-16_05,2026-01-15_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 malwarescore=0 mlxlogscore=999 suspectscore=0 mlxscore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2512120000 definitions=main-2601160095 X-Proofpoint-GUID: 6lA6yrVXdsy53GoO6DAf4vHL-EhSvc_n X-Proofpoint-ORIG-GUID: 6lA6yrVXdsy53GoO6DAf4vHL-EhSvc_n X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTE2MDA5NiBTYWx0ZWRfX1plGMXwkCcus Zh0VWdT6lyYgSMkluJXgmo8yW3/Hw8HkblA3CDULiLZuoHchbMJWaQPsuqlMvTbrelsO8XpLfCz B+tBow1NftU6zRH0OsJlqyw3tbe5JVay1vWVTOwdEa0fw+HmUhv8Z6BiK+JZPay9Oi8I4bnxigs AIFBnjhlVwuPnJMalmZVlN+CWXmhvlMWr0/fKqBCn9aubxyAnZMvN5/YKQ+zueoYhPMVjDao+ks xuDGrMivrAaTwS0La9oUQYfPowYo/pabTB87ELFQwR5V87RuIGnpD9McA77eYgdgsGjM7dLZYg1 2b7Pz0D5RzoGqeol4/So0UzZqoJQFOEWmMgXkRWtW9rECLBY1cCh+OXV6bkh/J7WE/wgE/XKo0U XJNhwWSX67KJPf8UoTjmPx3rb/7vWwXZlv0XRAE0OglGbHOfDoHYw7iNThQ35cuTVDko5pnYAGT OIUC6ihwjCl8tqD6jaXvTKrINtoxlvaO+9XRp8vI= X-Authority-Analysis: v=2.4 cv=fIc0HJae c=1 sm=1 tr=0 ts=696a3ef8 b=1 cx=c_pps a=zPCbziy225d3KhSqZt3L1A==:117 a=zPCbziy225d3KhSqZt3L1A==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=vUbySO9Y5rIA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=yPCof4ZbAAAA:8 a=8lXeI3z0JR6vcHFVmzMA:9 cc=ntf awl=host:12109 Content-Type: text/plain; charset="utf-8" As part of adding some additional lock asserts in mm, we wish to be able to determine if a read/write semaphore is write-locked, so add rwsem_is_write_locked() to do the write-lock equivalent of rwsem_is_locked(). While we're here, update rwsem_assert_[write_]held_nolockdep() to utilise the rwsem_is_[write_]locked() helpers directly to reduce code duplication, and also update rwsem_is_locked() to take a const rwsem and return a boolean. This patch also updates the CONFIG_PREEMPT_RT helpers to do the same thing there. Signed-off-by: Lorenzo Stoakes Reviewed-by: Zi Yan --- include/linux/rwsem.h | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/include/linux/rwsem.h b/include/linux/rwsem.h index f1aaf676a874..b25b7944ad99 100644 --- a/include/linux/rwsem.h +++ b/include/linux/rwsem.h @@ -70,19 +70,24 @@ struct rw_semaphore { #define RWSEM_WRITER_LOCKED (1UL << 0) #define __RWSEM_COUNT_INIT(name) .count =3D ATOMIC_LONG_INIT(RWSEM_UNLOCKE= D_VALUE) -static inline int rwsem_is_locked(struct rw_semaphore *sem) +static inline bool rwsem_is_locked(const struct rw_semaphore *sem) { return atomic_long_read(&sem->count) !=3D RWSEM_UNLOCKED_VALUE; } +static inline bool rwsem_is_write_locked(const struct rw_semaphore *sem) +{ + return atomic_long_read(&sem->count) & RWSEM_WRITER_LOCKED; +} + static inline void rwsem_assert_held_nolockdep(const struct rw_semaphore *= sem) { - WARN_ON(atomic_long_read(&sem->count) =3D=3D RWSEM_UNLOCKED_VALUE); + WARN_ON(!rwsem_is_locked(sem)); } static inline void rwsem_assert_held_write_nolockdep(const struct rw_semap= hore *sem) { - WARN_ON(!(atomic_long_read(&sem->count) & RWSEM_WRITER_LOCKED)); + WARN_ON(!rwsem_is_write_locked(sem)); } /* Common initializer macros and functions */ @@ -174,11 +179,16 @@ do { \ __init_rwsem((sem), #sem, &__key); \ } while (0) -static __always_inline int rwsem_is_locked(const struct rw_semaphore *sem) +static __always_inline bool rwsem_is_locked(const struct rw_semaphore *sem) { return rw_base_is_locked(&sem->rwbase); } +static __always_inline bool rwsem_is_write_locked(const struct rw_semaphor= e *sem) +{ + return rw_base_is_write_locked(&sem->rwbase); +} + static __always_inline void rwsem_assert_held_nolockdep(const struct rw_se= maphore *sem) { WARN_ON(!rwsem_is_locked(sem)); @@ -186,7 +196,7 @@ static __always_inline void rwsem_assert_held_nolockdep= (const struct rw_semaphor static __always_inline void rwsem_assert_held_write_nolockdep(const struct= rw_semaphore *sem) { - WARN_ON(!rw_base_is_write_locked(&sem->rwbase)); + WARN_ON(!rwsem_is_write_locked(sem)); } static __always_inline int rwsem_is_contended(struct rw_semaphore *sem) -- 2.52.0 From nobody Sat Feb 7 19:08:24 2026 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (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 BD88D20DD51 for ; Fri, 16 Jan 2026 13:37:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768570671; cv=fail; b=OxFRsLtm3kNlhFfChvkGkRoROoiZd6u4xsdB/aJVrze01+NvUnFJPm2qZVzzvnYZOYeRcUjtEN7XOCTWAYM5oLZmXHPNo2Owywr8igMvCPRmsi5KBtKv/xQDDkqXPsI52r600tH5lNRIZSR6KZj5YYCJXMe3jGzU1kGXMMyOy9M= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768570671; c=relaxed/simple; bh=wITNR7lgg/k0t7bqw3v4O+fZEinfMVtTIlsq/NyWN1g=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=mp0b9Ew7CgHpAZZZwdDxcfLULhtLOXHdriFNDjOvoVtwTOgrIbgeC7fZ7W1OlGwNaFs9+i0yCRmVH7bF8VAB89O5+1vw1ZgTG7xVoREsMfJpG53uiudISbu7UIMye5R97oLCI+NlWEM1K+GiRErJLFL4jrRTbiHgCPfUL026FmE= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=dydLHmza; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=HQx0Vg0y; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="dydLHmza"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="HQx0Vg0y" Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60FNNLGW1655463; Fri, 16 Jan 2026 13:37:16 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=rhOgeK8rv2SDFBgmcQhDu+SGeo7HlmSbb8C4ONwPLvA=; b= dydLHmzaSp9lKUGUSBVFoFwdMj4/HTiWxpQAoUgiZdVM+XMU2QQeSvB/2pu5Ijpt 9VkcYKfB8sY3MeMZDur2RIRII7Ne6yx/BAl+iypSmIFpc106oS1QBfh+UiOwNZWO JZ0ll8PaOcrH+SlmeY5oEznDfKwkCqK+J/UfHgjDTcWJgCcL4MTlKJhJSUOk8p8F 0SgibqPkxY6Ba96iAhPx5lDqF844cslct71/YZyTR6yWRQqZh8v/1sITeItq5wCF Kxea88yg2HNkcS166oPIYvVvB+DMADu2DoFGaCu/iYuXNOP/syJiwnWzqDVn2fBp tLwn5GHrPnSZulYR3dX2/w== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4bp5tc58bn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 16 Jan 2026 13:37:15 +0000 (GMT) Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 60GDXNij001924; Fri, 16 Jan 2026 13:37:15 GMT Received: from bl0pr03cu003.outbound.protection.outlook.com (mail-eastusazon11012051.outbound.protection.outlook.com [52.101.53.51]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4bkd7cvwan-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 16 Jan 2026 13:37:15 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=oxwjFcGh+tqKuxR2ycxyl8GeRKByZ14U25DH0hPbCf1Db1XRBKl/NNQxgdGXKLb+v2m06PqqyOewKJMoQvNwHt7JYJLFb43d1Cs4tvYV1N6SJGgYUeMHPpZpqVCr+9ncEF2QNHY3z8jVu8PCowHZEvZ/YaxQFal0KSeXDLqLTokwpu6A/iRvOdROIlINyjYaZ1m8oftek3wvJ6TlBE6R+OS24H/8hEqslCcXC1+FUYNcxa2R9S6Z4GTt59fgi19cWsxNVqMVxu/2ClL5r5z9KLCj6sOoSg324m09YuegMdnrw+uIPPezC0xq58BTKJCklQM8CdFiSMKuw4DBd0UD5w== 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=rhOgeK8rv2SDFBgmcQhDu+SGeo7HlmSbb8C4ONwPLvA=; b=weMj5vajtaGlLNltYVyg/OiRaji3fIumptDrpOVLclllaJlyr6Czxq3nWA9V2dmB8oT8zvLVljS3AnvhCmVkvclLAzQLtAPnFzLYG/ePeakwwfFBGUUN5QBwEeRbRiHelsMsWwXe+ICB42vbFVo/3BbGiLhAy0n09gX8e7LVBVAXAeAeQaTR6MvUreDHdPxbA0/q4oi1hMO4/yHUcTElSJtD5BjQuOyN54SFGoEvh4CIdkHh/DeMBBLn3V4QL3evqFmZASYA5QVNpvwbavJfwvr8qrJSIdMVWF33lmPKXtXpJx09K7MoEq6f5PCHH8lNnPSmpQJa5TLrgI6MYaxlxA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=rhOgeK8rv2SDFBgmcQhDu+SGeo7HlmSbb8C4ONwPLvA=; b=HQx0Vg0ya5PK9NmA+T+Ud1uXCnd0R8vfoV0c95vgbs5GIexy8UjHZ4eme2i2mFDmz0dfFbcEKL2WxUxx+eUEaLL/HtvVd0ezBZUoMXicNwgZ/bz6qKGpNGDgfYVTpkMWLVF4gH8M+s6IEjEcTj4SfwushgUHpp2en8Kmv+f4HT8= Received: from BL4PR10MB8229.namprd10.prod.outlook.com (2603:10b6:208:4e6::14) by PH0PR10MB5609.namprd10.prod.outlook.com (2603:10b6:510:f7::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9520.6; Fri, 16 Jan 2026 13:36:53 +0000 Received: from BL4PR10MB8229.namprd10.prod.outlook.com ([fe80::552b:16d2:af:c582]) by BL4PR10MB8229.namprd10.prod.outlook.com ([fe80::552b:16d2:af:c582%6]) with mapi id 15.20.9520.005; Fri, 16 Jan 2026 13:36:53 +0000 From: Lorenzo Stoakes To: Andrew Morton Cc: David Hildenbrand , "Liam R . Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Shakeel Butt , Jann Horn , linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-rt-devel@lists.linux.dev, Peter Zijlstra , Ingo Molnar , Will Deacon , Boqun Feng , Waiman Long , Sebastian Andrzej Siewior , Clark Williams , Steven Rostedt Subject: [PATCH RESEND 2/3] mm/vma: add vma_is_*_locked() helpers Date: Fri, 16 Jan 2026 13:36:46 +0000 Message-ID: <07122584007a6efbaa47d115030ac27947df700a.1768569863.git.lorenzo.stoakes@oracle.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: LO4P265CA0007.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:2ad::23) To BL4PR10MB8229.namprd10.prod.outlook.com (2603:10b6:208:4e6::14) 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: BL4PR10MB8229:EE_|PH0PR10MB5609:EE_ X-MS-Office365-Filtering-Correlation-Id: 3e0df74f-b222-49b7-c66c-08de55044f33 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?awjFyHEtcvNkhJ7/n7MxvwkZGxwoysGRpi05b0E7ptiJ7UzwdYB0cwnCHwgs?= =?us-ascii?Q?fAFePkVWgXPpPe89JzmSHzCBLoQ1zwUfDM5rsUGH6zB9iO6xfCyThqtQyG6/?= =?us-ascii?Q?REVg2UMBGlHFVVpV+WLeyVA+6xK1qjN0D9GUYAEL7mBRxSPUkAd5R45coUQm?= =?us-ascii?Q?n96Qrt7Sn8UFb0HyHiPToY//XrxcX8eBavbKEGSNazOI57S+9UdFBNG4K2mf?= =?us-ascii?Q?Wb+k5mWjOrojHcLbI+AFSw02AyQVVOAP1GtPl6itx50OZVF+Ovzp/f0Y3n/t?= =?us-ascii?Q?WYGvUdJTYbqD/96AuHGQJet96uAvxb0VT4Y8Hw8r+TvwWoXNKyeUG5KGr+lq?= =?us-ascii?Q?dNWo2vI91lb66DpzgT3NN6Sa5PEXNuCH1BbTHH9c2ntcrJ+O7XiCKwkB+GTS?= =?us-ascii?Q?mU60f1a8VOgdq2QpE+oq5Uk8a+YU8nb7dDIRQJzBLJ4ck9oVlouQvrYRcXvk?= =?us-ascii?Q?q66/oLKHTlCzu6hj1q2BdBYEheX9bVPUShKeI/CXR6DeFZVqpjrmvw0MWjrW?= =?us-ascii?Q?zXOuD7XsPxs1h0K9fInS2JjoaawkSw01tDZz2GuvQxf+B0RyUI+6ljy/oDpm?= =?us-ascii?Q?NHadHuuZavPvd52RkWOuZ7cP388uubj15EXIYjkvIGsj8mS7nx67JxPTdYr1?= =?us-ascii?Q?PfTdb7LSP+7JCyvGf8XZS0CNrBsS9f/USzHPVs0Dtxus2bQXD8vGLuJQseAB?= =?us-ascii?Q?bvuG6e99PaRzMFieTFtDwr5Wk1VZyGu6NE5bMmFffWqAShMJarDS/gDxeehx?= =?us-ascii?Q?BMJ/AQMwXRObk0BHkAPsA1vhsDpObArzPpgqoe03oPWZF7PO7kR/eCNGj3Gl?= =?us-ascii?Q?/OInQn4GKJfNqHQElH15azRbHz/AFohHxoQ1SfttSU/xzxzWUmK2CUWO7RI1?= =?us-ascii?Q?03j7VFcNguQMg0KsBT6FS0RukESjXKaAYa4ZYN4KHEuYDzznaTbTXer/U9Og?= =?us-ascii?Q?MgyClVX+gRhiMIEqmSTELwJ0+lRe6IeVWaHLT6NqOsp/NVAxaBuyIcSE58Z3?= =?us-ascii?Q?yKsf2/6uDt6B0Bg/WwnIAm9Up8CK2sK7qfrxZ3ZrW2ac6t51ESS0uq0wS9Vz?= =?us-ascii?Q?Ws8xcs2J0jb+wu6cb6W9J1RoxAnjNu5inQAIoGfbjKjoCiWZ6ky9ahy52xe7?= =?us-ascii?Q?YOh8TnnjfaaPz45kG4g+oMpkfABqs8xpQHnsAjsh1FtzMzmmHmSq9OTo13Dk?= =?us-ascii?Q?siaV7OvhRm2h3/xKSMZtKGXsQD8+gloo4D4I1vf7Eciyv99fx0GVnQVBdcM4?= =?us-ascii?Q?KttHQJqigyNfpJS0J3tuhd3bT7/mb3dYtO3ep0aVtwOk9rknb97ydmL5DfE+?= =?us-ascii?Q?S/ngtKFO9HHaI23qUZMoRqIjPzD2QKMz1l2kkUku1D9wjvJ1aY1Pm8zwjGeV?= =?us-ascii?Q?g7Gc5bimxFObT8bop0IiFDV0GzhkNqvjMP91MghhxigBwppmsbUa6Cdm8HCw?= =?us-ascii?Q?gsTtNV9uZSW95OdTAJ6e/61S1zSDWfYHc+NzqEppc6er2HO0hmxIQL0L1Bwj?= =?us-ascii?Q?E/r840OeFS7TsZ1O6S/vZ4o7xLRS9IOB4ltT0E2MCboKIwcfcbgILRT8Adq7?= =?us-ascii?Q?JIp2bFFMLlDhM776xzM=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL4PR10MB8229.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?mXd17X9idmqmFLpdi1QLGQEakZWP7taGq+EnU5RQkq38p8I8g1OFDj8DPhyz?= =?us-ascii?Q?1Baa5K5LA9IxsSeiWMrbBZqYlF90ZAPKWxrJo9+SjumXULMFLjkTpxRrM6oO?= =?us-ascii?Q?7MPgXHdw+efzmWKVyhwAxR3f0JMgI1nPAT9dOsie9/m9MxNPnsSoKJJsuQ9U?= =?us-ascii?Q?xE1i89SN2ISKyHV1F8v5y27JYhlcxuYe6FLkw5FJ4DQZrP11i9JNQiiYzhsu?= =?us-ascii?Q?pBvGFyhWu2PudS/H4JwkFC6kaHIVM7gtrkHM1a9HpDhwKbaSmcbLAfuknytn?= =?us-ascii?Q?X5p1q5oM3i6NVN/wjq9gBHN8KnOM5n/ZwnbUjsMTFVbq+adrh17JdM87sLTF?= =?us-ascii?Q?tm4aFdlZx/7s/JFPQ5wggFoCLcpOyurYVpwG3IrPPMkNIYGGZb2M7JaukvzS?= =?us-ascii?Q?Aw8+jhAgjBwunERisXSeN+ZEGL7xBVWiYUBhe6Kd48fAbF7WIFSoR/8BstDF?= =?us-ascii?Q?tNavv5s5j/pOdu05cDgCO1Fy5N17TUZksVxo6hh9Ky2t8XMYxSDG9LeOopIR?= =?us-ascii?Q?rJPXOfQkduSwP5Zfld+IBMmXI4/85m4MeA27X2LlBM+Z+Kzj7aMGu5/BeKqt?= =?us-ascii?Q?R8qImdOAWbvdk1ASTHFRXIBm/Ttb4GfnqAPPMv7ukeIwnYwq0TdQNMWmiNP2?= =?us-ascii?Q?n9/2qQWmNsiZU8nVBxValvBWnmn3lhC13Pbyi0XBd5wm06hewal9kzPQDu1E?= =?us-ascii?Q?vPi64fqQte4PmncRcpWdLeZlLNtjRf53Fos010kUlcvjE7d7NYkMbF2M4WoK?= =?us-ascii?Q?epGHdJr8FhvbE9esgy4cSVcXQyAf/7eQN50BwVlGyx2brFnJs2lx+HS/uUmG?= =?us-ascii?Q?KJz/0ynKpdG6T1b2hPlwpJYcTdR3S0ZW1W/0Yqa1xdtWxhwpC+thqMhp4+WK?= =?us-ascii?Q?Q575OoLYaU24puOc+uua33RzZNIxXic89lvSBNIUw5oDHkkzr3t0Ypdgslms?= =?us-ascii?Q?w0WjioomZy9qjSB+u+UegfWiJ2dDNGlAfL8wIRu9yJqqqtFQilRrL4u4Bqi2?= =?us-ascii?Q?5VzN9NASHwDX47efuok8gH5sKGh+G+fRgKfDoB3ywwavHBmuqpuNHfzDjwPx?= =?us-ascii?Q?KDh93nOZSjswW8zlnADPWnQfesZQRz6LCVHHO77qsPXfvoNaIzg6SQR3NDp+?= =?us-ascii?Q?/DAMcAtjyKePq2q/rSmVbC/qxUQ6UB3MgaKa54yTiFoV3SKCmXy5jNcQA+nn?= =?us-ascii?Q?VU+p47TbIbqwgEKBHFGoM13YYtV4w0Zfc6Jr8Bky6w72nMqY6W5ZfoTv6XoM?= =?us-ascii?Q?3/nuTbf6HZwU7MAQMuaCFV1nbBO1YFRosKT+wPRFPfquJPfmjPOlgVNZT2hF?= =?us-ascii?Q?W5FPDXZ9lj33+1s8XE3AoQ/5JGdvYJcBY1YfYs3igF2FN5Bz3tQRpNQmsnFx?= =?us-ascii?Q?P6igXZNUMe1P2aR76g9jpw0wqkGO8afqJgiuIgAymUzhqEqpLyue0drN6a4Z?= =?us-ascii?Q?nV6oC3sIRYbfWQ+e1pTq7z/uyXMgImvwhtAp9JHdHIumpR5u/Kr/uT89qbjg?= =?us-ascii?Q?dYrLZgJGxs0ZZ4WkLyJ96yVhcb8JEWoe6MP/pbarhxX8bwtn6uiyt7f0nNpI?= =?us-ascii?Q?NH0eOsL4PxlG9mnWl5RZgUeC1aSUP4b9LFnForDzSylIuqZI+WFxgd7TND6r?= =?us-ascii?Q?svo0MBRxh7B9eVTOCD/sYYLkdG7/S0XgdBxM+S5jMs0YmllRvkp5b3mHhJpp?= =?us-ascii?Q?SJLKel7S29gfniBIrv9Msys1AvYyBygcVR7CX5giTlZT7W2fqzikzSsSEr0y?= =?us-ascii?Q?VUrPwiHoyIFSWCcSCZXBs3s7NXnj/xE=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: o/KCSfgD045alb3LcifQjPcQpufqeYfN+ftJwkFjtqy2U9DViRj0YLT4eZBBR9KvEhLOtFZ5xlcxP3F0oh8xVpdT0y4FEe1HUkdF/zPignfZcsubGJQhzjk8pkCSpwyFs0+QRszbu2M4xwRWftnlYXI+xbOYCtKvoJI+X2BFGJrC3xxA6edRbYry6R2BKekRn6j0h22g8W9cnLc3Amm7f50XVlFk2kTFCd9R6kR9Wp97WgwEYJDJ+2fro5s2RSN7x1sZE2+iCqZHoUskMdpg46adZjXu3+U5FvHISnDu3ERYtOfewCi722szaUXd7GYeKkoAyMt4bJO0+Nbwzmy04TixAE443B6TUq5nRv0cSiSoSFvb0emkMje4ZvApBiMAniJMGwfQvfgqWaGrlMA7kIilS/0jyqRatKJE/Vh7eLNH+W7x2oftj7eBKYX+eGUSEQjzcOk6clWCfNS4it/Fcl3AGqH3k9MoJBJmLJiZ+hoqwt/F6/2LElPHqcjl2+zWjp5Zm2XJjugzlITUvVJLSjpoXDBPk6oP0mobKFoauMguc613/KYvkzWsS09t6kgR+2MkgSaUKMM93sNvi7lpZW7uM1pCIcIdTIGkdmwQ3sw= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3e0df74f-b222-49b7-c66c-08de55044f33 X-MS-Exchange-CrossTenant-AuthSource: BL4PR10MB8229.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jan 2026 13:36:53.1018 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: BpIOI9KavOE+VCqByStcc7d3K8+uQ/rjdLfp0BBkzzvuCb1RfX9j2qIvoIrobfJkp/Ktmf1M3PITWG1aWz38GqX1GErtusqC80pWAGeNzeE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR10MB5609 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-16_05,2026-01-15_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 malwarescore=0 phishscore=0 mlxlogscore=999 adultscore=0 suspectscore=0 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2512120000 definitions=main-2601160095 X-Authority-Analysis: v=2.4 cv=XP09iAhE c=1 sm=1 tr=0 ts=696a3f0b cx=c_pps a=OOZaFjgC48PWsiFpTAqLcw==:117 a=OOZaFjgC48PWsiFpTAqLcw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=vUbySO9Y5rIA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=1XWaLZrsAAAA:8 a=yPCof4ZbAAAA:8 a=o-O4cB3HQs8lDPzn2AwA:9 X-Proofpoint-GUID: E782J6cal6sDVd62c0o7ZDVlG8sd6qdU X-Proofpoint-ORIG-GUID: E782J6cal6sDVd62c0o7ZDVlG8sd6qdU X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTE2MDA5NiBTYWx0ZWRfXzQPVBFOkiY6y faTpnCXDHVxoDkUDhW8k4BIfJ7lJUFGr13I5o3ZjSbCHHK6SE82idoDLXSRWFI0oh6pForax+FH jvQl7zIAfT1gbx1N6HS5zgX58fHcd9WAj0Pvt7Fp8sII3ZTcxSn9INIW439tAsCFTVsi51EjdLf /tA1WyuIQ2xycGR6q8WiXyE5WedI0M0nQLmND/ZxHabscqLS9E3pf8G2ITOj2CmMd99JM4A+zGo UXqY0eHIHoMoXEv8/BTtGKlHHA0tbOA0Oi8Ev+F2kNTo3FA7DNIJZdHRZNegfg3pYJSw1kJDWKC 1RHVim07uKnaNVEMH5RWFJdMikx4Y9IWCxA2L9oi9ZYSCuUMSYFTr4R7y5s1kyQDNqupmP+ZTfH 5kk30+kTLWAp44c7g9u11NBQAHjEZ5L4BY14WzeGCwPiAxn3nW5c+J++FoYBwrCeYiTe0zQsFI9 h51+eiHrziUluTTBwiQ== Content-Type: text/plain; charset="utf-8" Add vma_is_read_locked(), vma_is_write_locked() and vma_is_locked() helpers and utilise them in vma_assert_locked() and vma_assert_write_locked(). We need to test mmap lock state to correctly test vma write lock state, so add mmap_is_locked() and mmap_is_write_locked() so we can explicitly provide means by which to check mmap_lock state also. These functions will intentionally not be defined if CONFIG_PER_VMA_LOCK is not set, as they would not make any sense in a context where VMA locks do not exist. We are careful in invoking __is_vma_write_locked() - this function asserts the mmap write lock, so we check that this lock is held before invoking the function so vma_is_write_locked() can be used in situations where we don't want an assert failure. While we're here, we also update __is_vma_write_locked() to accept a const vm_area_struct pointer so we can consistently have const VMA parameters for these helpers. As part of this change we also move mmap_lock_is_contended() up in include/linux/mmap_lock.h so we group predicates based on mmap lock state together. This lays the groundwork for a subsequent change that allows for asserting that either the mmap lock or VMA lock is held. Suggested-by: Suren Baghdasaryan Signed-off-by: Lorenzo Stoakes --- include/linux/mmap_lock.h | 50 +++++++++++++++++++++++++++++---------- 1 file changed, 38 insertions(+), 12 deletions(-) diff --git a/include/linux/mmap_lock.h b/include/linux/mmap_lock.h index b50416fbba20..9f6932ffaaa0 100644 --- a/include/linux/mmap_lock.h +++ b/include/linux/mmap_lock.h @@ -66,6 +66,22 @@ static inline void __mmap_lock_trace_released(struct mm_= struct *mm, bool write) #endif /* CONFIG_TRACING */ + +static inline bool mmap_lock_is_contended(struct mm_struct *mm) +{ + return rwsem_is_contended(&mm->mmap_lock); +} + +static inline bool mmap_is_locked(const struct mm_struct *mm) +{ + return rwsem_is_locked(&mm->mmap_lock); +} + +static inline bool mmap_is_write_locked(const struct mm_struct *mm) +{ + return rwsem_is_write_locked(&mm->mmap_lock); +} + static inline void mmap_assert_locked(const struct mm_struct *mm) { rwsem_assert_held(&mm->mmap_lock); @@ -183,7 +199,8 @@ static inline void vma_end_read(struct vm_area_struct *= vma) } /* WARNING! Can only be used if mmap_lock is expected to be write-locked */ -static inline bool __is_vma_write_locked(struct vm_area_struct *vma, unsig= ned int *mm_lock_seq) +static inline bool __is_vma_write_locked(const struct vm_area_struct *vma, + unsigned int *mm_lock_seq) { mmap_assert_write_locked(vma->vm_mm); @@ -236,19 +253,33 @@ int vma_start_write_killable(struct vm_area_struct *v= ma) return __vma_start_write(vma, mm_lock_seq, TASK_KILLABLE); } -static inline void vma_assert_write_locked(struct vm_area_struct *vma) +static inline bool vma_is_read_locked(const struct vm_area_struct *vma) +{ + return refcount_read(&vma->vm_refcnt) > 1; +} + +static inline bool vma_is_write_locked(struct vm_area_struct *vma) { unsigned int mm_lock_seq; - VM_BUG_ON_VMA(!__is_vma_write_locked(vma, &mm_lock_seq), vma); + /* __is_vma_write_locked() requires the mmap write lock. */ + return mmap_is_write_locked(vma->vm_mm) && + __is_vma_write_locked(vma, &mm_lock_seq); } -static inline void vma_assert_locked(struct vm_area_struct *vma) +static inline bool vma_is_locked(struct vm_area_struct *vma) { - unsigned int mm_lock_seq; + return vma_is_read_locked(vma) || vma_is_write_locked(vma); +} + +static inline void vma_assert_write_locked(struct vm_area_struct *vma) +{ + VM_BUG_ON_VMA(!vma_is_write_locked(vma), vma); +} - VM_BUG_ON_VMA(refcount_read(&vma->vm_refcnt) <=3D 1 && - !__is_vma_write_locked(vma, &mm_lock_seq), vma); +static inline void vma_assert_locked(struct vm_area_struct *vma) +{ + VM_BUG_ON_VMA(!vma_is_locked(vma), vma); } static inline bool vma_is_attached(struct vm_area_struct *vma) @@ -432,9 +463,4 @@ static inline void mmap_read_unlock_non_owner(struct mm= _struct *mm) up_read_non_owner(&mm->mmap_lock); } -static inline int mmap_lock_is_contended(struct mm_struct *mm) -{ - return rwsem_is_contended(&mm->mmap_lock); -} - #endif /* _LINUX_MMAP_LOCK_H */ -- 2.52.0 From nobody Sat Feb 7 19:08:24 2026 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (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 5B5931C8626 for ; Fri, 16 Jan 2026 13:37:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768570645; cv=fail; b=JXmAahGKSynZehJg+HKkvDd63HzH/s0Rs2CiE/tBJMq1NgfU6JflJf58wsoujsfqvx8sbQAWsetU/UBb+pqeEqQfZFSleY4xMnjZ0fIFnQI5K8Du/x/RfuVo8je+jO6f1nCyRAltc7WiTh3c+rJ1Hz5bF84yMVSrOFy3VoJqgdg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768570645; c=relaxed/simple; bh=h36E0f9qoOUvBMFpestpgl7XF8eLqdoLq3Q/zZudBxA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=g3cmeo/WqDvBXQoWRxk0gG9ATHX+GqS/f7GI0p4fkFhiZkHZnndavsDhx1hZjwGStpaCh4aykSc8verzhWiPlT6cQJxdmFpu5BqwPWNY/Bu5z+ecGEeIcYUfhiNUSWpbdtOOG6x7wOOi5mXGluOS7orhcoXEZQphQ+H4tskoImM= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=HV29G/DD; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=L54Ajmo1; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="HV29G/DD"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="L54Ajmo1" Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60FNNDog1817783; Fri, 16 Jan 2026 13:37:00 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=/kzvA2Ae2q13wGEoqJ79Mti9lSrLaEQhznyUt9le2EQ=; b= HV29G/DDJQscCNIUmbJTpSff3iGLaTtqyHFjF8LcM4x2lsdFAPLz/8gIMPvVrMxL c01FOvmoCAvs9Bif1wp6GTESXHVRi8of1mqD6G3q6D6OzdykZLPPTSltEpSNMdlD iGghrgWtqKtESBUtGI8omoQPUpeA/Qhpx2sqYH2CeqZ2PevI+97tmeP671TB02I4 ROqo6091prDaDB+VMOX6GQkWqxxXvSy7AFJiGrJFmyIjVwZyQDx08sBRGFh8IAfZ YkDTtG/WXVEIuBPkGMHByzs22Gvdegb1a+GUizbJSrdRA4EXjljqRU/cDGbXzbCV OwtUKsUfURuVQBkZLRR8mg== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4bp5vp55bk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 16 Jan 2026 13:36:59 +0000 (GMT) Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 60GDHcSm004185; Fri, 16 Jan 2026 13:36:59 GMT Received: from bl2pr02cu003.outbound.protection.outlook.com (mail-eastusazon11011062.outbound.protection.outlook.com [52.101.52.62]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4bkd7pprdn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 16 Jan 2026 13:36:59 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=pk54pcczpVlrXX41XGE9XmRECphXJwCn9iGMx2R6znvpYKE/4NI6RXBMEd21KzE9J59vAcjUP0aGeprqtT8vHopbfVQB+Xfx+Bp0fweepvOnjNPUCiwKGHc6Aiwn32B+0A0BwwWIkDzi+Z38Sk5oRnOLf8rmW30Zy44dGuTjxNM+giuIwZ1AD7D/2s0ZH0zs0aflzqe/Yz8FZxUGGjgbFneecxc6NGl7SVpeEMiqwXb2tTIVCCv+LoDT/2UgZwC8i9rI5P0mpBZbeKZo/J2tRVjLrkQaM36dXXBFvaVPGKpkIWTrhiYmktzT0EKkE/4zNiHh4q0kOK2rvSzhLGzewA== 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=/kzvA2Ae2q13wGEoqJ79Mti9lSrLaEQhznyUt9le2EQ=; b=IeyGKK9BOgWgh783/wu89LGWjzFnaUfI2pryFCowzXy952413tRLI5uqyiltRss6LKny+khVDe1O2Tav/SFsnoe8doJRlAznrslgFRJpxbVIk2hIvMRCECFTv70Crk9bN+nuz0s5dAmdl/Gpcyn3WDHalgZtrPeJQGEFsFlZ5CSY/DJMQeUB7qPG0hKgIMMHC2kLqVVw4l1IyRH0/syjdDGYM6oFfteB7sN/HuWnrH0QXN0hBgvT+rzHfI8cK91ZN6gMGne1bBWjbqnCQa2eL2XgzTc3UTN/kErn0FtqHHYPiLh8iLGknm2lUQ0qPKLTrgSTAn+yp0FDpvDjuZOg4Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/kzvA2Ae2q13wGEoqJ79Mti9lSrLaEQhznyUt9le2EQ=; b=L54Ajmo1H/N25TLWfOJ27td6h5rYI6A+1pju7ZC0VcaqhKI5ju1H5pN4Rkh5a6zor/trLwdg5dolefQtCGhnCFrl6nrDNDAusCOL0pJFqGXCo5loTeHQdEOqLY4Y/uIAe3g7BjuTiHDnC7tCFWkGCbtjhNVGwdCBiPIgEgSoRQ0= Received: from BL4PR10MB8229.namprd10.prod.outlook.com (2603:10b6:208:4e6::14) by PH0PR10MB5659.namprd10.prod.outlook.com (2603:10b6:510:fe::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9520.5; Fri, 16 Jan 2026 13:36:56 +0000 Received: from BL4PR10MB8229.namprd10.prod.outlook.com ([fe80::552b:16d2:af:c582]) by BL4PR10MB8229.namprd10.prod.outlook.com ([fe80::552b:16d2:af:c582%6]) with mapi id 15.20.9520.005; Fri, 16 Jan 2026 13:36:56 +0000 From: Lorenzo Stoakes To: Andrew Morton Cc: David Hildenbrand , "Liam R . Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Shakeel Butt , Jann Horn , linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-rt-devel@lists.linux.dev, Peter Zijlstra , Ingo Molnar , Will Deacon , Boqun Feng , Waiman Long , Sebastian Andrzej Siewior , Clark Williams , Steven Rostedt Subject: [PATCH RESEND 3/3] mm: add + use vma_is_stabilised(), vma_assert_stabilised() helpers Date: Fri, 16 Jan 2026 13:36:47 +0000 Message-ID: <87b36e11c632fee6c965b944974d8dc4357b5904.1768569863.git.lorenzo.stoakes@oracle.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: LO4P265CA0099.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:2bc::20) To BL4PR10MB8229.namprd10.prod.outlook.com (2603:10b6:208:4e6::14) 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: BL4PR10MB8229:EE_|PH0PR10MB5659:EE_ X-MS-Office365-Filtering-Correlation-Id: c814f9f2-b49d-45f9-a022-08de550450fa X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?GkiNIBmcfsJ05WQI02e4z5S7OwGDwaNmpGsXyha6foOYVG/L9ncx2jSh+L6P?= =?us-ascii?Q?XRDjdZWw4yDP5XqgdBabuS1ZiHZk/vpjpepWBkOdUH9pcbPhX61J+9Up1QbJ?= =?us-ascii?Q?qNUywkoY2vXFNm7anbD4EY1uZPkMpXyflm6FMDk7UteenIm2aqOQIMC1muSc?= =?us-ascii?Q?3OOzcIzn7mNn++TyHw+HcIfLgEKgWjDG8a7PJm7vPLnxQZaUyp9hENN8Varc?= =?us-ascii?Q?qXTp4X7qnmTtoUqQafvun1GEzst13qr+yvMrNXccgVFlYibdSQTwnSI8lD8r?= =?us-ascii?Q?4B/4WrwSVdLQAVrwF3uA9JeuqX3Q4mIZJu+m8OFkdGiabHx7ZodUq+42mTjc?= =?us-ascii?Q?FTmIXNmR0FbZpiq5KK4zfMqXw72fwnC5UDrH6/KpHE2dGPdVYcYXGrIz5wWk?= =?us-ascii?Q?ME1F5DxCCVVAPEF1/fDmnbaUbrKuiU1XSVnixwiZ7dOwc7hsB/g39IpVlZeJ?= =?us-ascii?Q?uB5kKfFGJFgPjaGgx74oyDG8J1Q+wY4Bwi+qC4nFQ3oszcKWoik61tvIuOOs?= =?us-ascii?Q?o8BxOSQVHthoPxuHEONexdXsbd+occLbsVsQeAJkiZdVqx7m1xdl9g5i359y?= =?us-ascii?Q?BJvA5CXIloKYPvMZtgMUDP6w60CF18sr9gnc/CXAFXgXfoKsIvXfvtl4xQNM?= =?us-ascii?Q?wR+GBP7fBFMzzQ2OOx8Gw98H0x4NvZEU/nrTxXmLy8T8d4ZlTw6OmsWoxBrS?= =?us-ascii?Q?2wFzgDui+8td/TOO9j5XGvcRKlqDSMzLhj2VyXlOd0WblINPVfknPu/xWUMz?= =?us-ascii?Q?5W6/+yg95k+7UJDcEAIeUqbOJFgkcFcjbLJDZhj2aUxTVWzVFiK+SN5DjiJE?= =?us-ascii?Q?sgUyuzfO99Vq/aos5PmB9bmnd3SK5R6DctT5eNUXmiRA7LzLuJIEAbwJ4Or5?= =?us-ascii?Q?STyVFpfDoCgRQ9enOb9pT680LjbrqSjlZul0tZwEF7hkAqw51rxpbZuJj5NR?= =?us-ascii?Q?vJBtiP0Z5ElA6nZgibxtJFIXClpa9DdxYh9Hvbp3wF4IPE6dsgnnvJgRzMDg?= =?us-ascii?Q?0Z1LqWwPYIKnDENh1C+fJtuIFgpUj2GV+YHjCwzIZ8Vr/WoA7ULKPEM4W5qQ?= =?us-ascii?Q?xsrFi7yX6rAEQFFicjObf/VkJY+SUEhBTtYJ/CH1S9Lt91LxHQIQm2u7piUo?= =?us-ascii?Q?SlztSlOF6kd2GIqO4cOcLyeibHu2kRzYfzRxdITEB7vZh59pRODYKCDyOriy?= =?us-ascii?Q?vOB7K3RW8CK/0k8mN/dKlsb1nCQZ2xetH2/ZbRLjfdb2T75pMhoY8UCvuY8A?= =?us-ascii?Q?qK8sHThfJAXeEjs4GI3GAFWqqK7BpWHhn0bdYyXHRGD4G/h19VlFxLI+k4mG?= =?us-ascii?Q?QQduXV0eqsAf7eF1bvwleLndAshpWLIt4h6T2P0PrX6CTO5Da0BbnMokexYo?= =?us-ascii?Q?H9lNo5LdZfoOAjNhHF5oF/ByfeVP6OEJ4ukcJVCAFXa8F8Y6M1VLQaHtr4fO?= =?us-ascii?Q?kssVmdIisCqH4Bl9KnXSca86+2gOTvHlysQbv8BuYQ6jHZuuRaT1d3fEe6XG?= =?us-ascii?Q?USDSFN2dEqugrn7zwKmap5TIPuZ9iOqEDASejhSACPYLju+Rx+wh5MCPZkaH?= =?us-ascii?Q?JJPYLaKRJSY3O/iCKk8=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL4PR10MB8229.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(7416014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?/j1T4BXXC8gsdNA6/cXhn0OkTpjLclBYut9fsNSOgUFW/Gjy1SlovVnDBD8l?= =?us-ascii?Q?+naok3oFiu59gkUrvsPgW/EgWxusUVMoChbfeMJO/rhgJUPnKA7teB4+Q7NQ?= =?us-ascii?Q?fJr/pndXiEteCbWJr+ZVFklzaN0sij4EN76xOara2+L/NUqCyAewrzULzHW3?= =?us-ascii?Q?f5u8WvfD412oSf1N/OqZBYJp/YKLCXM7wcORW72vL871k9kDKjs3NX3DapPH?= =?us-ascii?Q?8XYNc0VWyPJnCMU+Z2j3Wp01Jd7cWPstg5mr/bgMZNjXCqie6I/kITKtRCJp?= =?us-ascii?Q?43K61Lzgblg35UQCh+fBdAO4gbhJD/WK+kYvRoB+f3nCqiPg7VSlNkLijLW3?= =?us-ascii?Q?ri/CArgRm4EdQoN2nn1ZUbw5Z0UUd6OWQMmeuG3WaiAh7w2NWr5YDhe4kBWL?= =?us-ascii?Q?4FxQNHyeLFjfnIJ2U2EDo3/4fDChdqQXs/gE34TFjFGGruPYlMAaZZYylR58?= =?us-ascii?Q?LE1iyWHDDVHdE9WMPchZEf8xwl+Bo6lo82bkyz1Nd/Yp4r4l67pTvbVxA4/E?= =?us-ascii?Q?ks7Krn3GyzesC5OoJuJ2/FxJReJKL1VDzLKFM8maNWn57C70w2ri8MPM+mJ5?= =?us-ascii?Q?rq4rdwxKJ5sJS5KMERTQGhkui4wK5U95zo5AnyBo+1UlkSoTOKTDzmN1fUEH?= =?us-ascii?Q?LplFu52I46iM0RSZddVZPUpJvpDDRxZQ+UA6eBWJYZ6IpzZjIMStfZR6aTnU?= =?us-ascii?Q?di8BdnpI/BY444q5L5ows6SPn2X8s16Cbofo5m/pXpYMmD6Mzi3nGuLbdBjo?= =?us-ascii?Q?Y0t7WWBp48UyT7zU3reCpagAmy9RFfOpzy7GZpwhcSznY80KhqY8Lbv2WWdq?= =?us-ascii?Q?61CAlGIcoMnELutzKtb24Q4O0kCDby2soPxGrskzQ8hc0koPM8TG7zZhLwHH?= =?us-ascii?Q?ZQf6Vu+vYXMPnzzIyvbjBBG9g+iiPHa7C9Q7frt/EJnBYNp8giZuAOmlPOWi?= =?us-ascii?Q?MsXTNf86R8znOuh8FyfD3KJO4e7RSEJFwwiOoMAQTNR3tWYR/Eltm1aJqGyX?= =?us-ascii?Q?K8WlxbpPlde7k39NcBdj5Jrv/Mvh+YCiVxC0ctL52pg13GxZJ/MvQaMNAWiZ?= =?us-ascii?Q?+ijJUspCsv1PlmHyoIqL3aBl6r6Jn5Hmln/d9eELyIG3RKd5vqAb2iIg6WRN?= =?us-ascii?Q?7BsbXiRM9Osy5URMdL0R87/dgQhvKF31ZfItqfYFHWxr9SzoWnpO7MgYrNDp?= =?us-ascii?Q?UUNG4XGkT8WIgXqCZUoPluElSpUoz0XcNiDxaX2DDAtq8X1tX+++Hw05xpPT?= =?us-ascii?Q?goZX40XO5rrSLBAH9bsQGvaESkjVwcdMutFhJ5O2fyd/B2lQii1wDV21OlP3?= =?us-ascii?Q?/nuJQXPqwRpDQZdgUAc+NFlPWECcUu/vtOLU/lrb31P25zPb0OBn21Jirrk0?= =?us-ascii?Q?ew3mEDrWGpzRJMB2/fT923S1aK/LyvLBAFLP7SSsi/ZZrelhJnJQ36PhMStE?= =?us-ascii?Q?Z+wLht/NMMGsxh+b5R35CQ4sTaSdFc0mdmxR52GQXxyDGn2MG4/rG0vDKsjf?= =?us-ascii?Q?c9wgBQLNSeXghEM+oiLZXEp2GDZHHU4BDtHAQkpw6oaxGg6V0j0Fw9jvUgCn?= =?us-ascii?Q?8ItlelMIEZ9TY4svVMwjQCH1xZALWsT5KnRhINqYSifBzmYSXDeU7KdqS18m?= =?us-ascii?Q?gFWSwzSVmbvi0EssBlg+4qeqEzekBfjTvlIeZs4tYboC5H+HWNtWaRgQsCE1?= =?us-ascii?Q?iAVJ46k7fAc+IJ6ZKLDgw53fP93NRSbs2kBNVGUQ8YhVC9I3Z6ssXmBSZYI9?= =?us-ascii?Q?uJWTYQUAhpNv8lhDOd799bKMmgLphCI=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: L6J6L0D9Ni6gycRovWnfkocq3pmwzWnlzxlQwX++RstUNJLNVmDl0I2GymI50jtsBx9+P6LavlIjJyxY+jDLym7EkeQe55sHNGjj5gbEPX7NJazjsKU7N0NbXYog6yhi8HDu/wNPfZnxzyGSHThl6Mj8gPxCQC0F4p9iVwB5en9rQarShDtvlRAHdA4mAraUIR1k/bMFwlXAz4tuwTuSQ+mISHI9IEfEXYuPtSSn7udr4rY2JRCawhKOuOUuXEDSgzqfZ3hO6tRpkDnr+FyGBAMF//07Ct6FeyB6C4x4SyVG9FCir+y7jOO8yRk++6tgnr2tOaMgTFHseYJzGVjpKI3Qdsnaynygzr54Ab90WnXjAp4GL3YjskrTPskwT+fsstXNsEEbQKo5bT1v83UHNSRaBFYoIkP6nRaJnEwcmeQCK8C0pCgZK04M97dscL/5tWMxg3PZogFmajGfaipdVX4HtKxBMDJbrjr72aEv2EHYDRqdo7GlStUaSx0p3ZZDBD72zAeAxOIvONBvgOnu4lYbiLE4XBXM8yACQEH7HuGhItaRu5Fg7mdyLqW1uF35MNIoWfLYZ28KTJqR2XEaGKhuuLyrxH2vn6t2PDUh6lA= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: c814f9f2-b49d-45f9-a022-08de550450fa X-MS-Exchange-CrossTenant-AuthSource: BL4PR10MB8229.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jan 2026 13:36:56.0922 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: cXuA8CauuonC5DRtlTTheRre+KKUtmyUMkAWe6AZcTvrF6/GDSiGt/yTo132O6o4xJewhCITzwG/eBEv/LVhP6wHjcj24WXPXr7RsuY21xE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR10MB5659 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-16_05,2026-01-15_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 suspectscore=0 malwarescore=0 spamscore=0 adultscore=0 mlxscore=0 phishscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2512120000 definitions=main-2601160095 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTE2MDA5NiBTYWx0ZWRfXyna8VjSHecWX DEgzyWbNVl7cNYFzQ6cxSCXLlvAdDEV+bTqmr9aOIZ/tYjSkdid7czdeAt2bP6doKuT0QzcahWl Yof41v1SnItnt0rwrsWRIlZGhblOy2PZLMzFLfxWwRgAzFv1X2wdep3DabMetYKZNVTPf7Bn6Ci 4XhnBwhnhAkTeNf5UBChsrE5HbjNnDF6ln00lVnxwOIfHLnaM7T21EnGepUtAOEdsIgKrDxdmnU AJq/ikMyAI2eFAxHIRqKRMy7LI3dlA6YNB1w8S5aNCAaE/RN6S3+731nX/rJUxCkGReV4GUP4Nx sKyEnZYYi6hS6PWhB5TYUROtF8ftO8ooBRlQqF9xsj2Pf897W/XeENcgi8LPIQalkXCMDgkMHkO G9MbtwB48AkSoWhVaWneGriiliyx8+B9zv8R6yHXd7IlgkfN4kB65WI4eDBTFNC2DkizXNqH87D H5SnnfZpGMf4J79GRMID7pMJcydAX8MbxFkGV8VM= X-Proofpoint-GUID: L_93_aTLIgwFGmSLk5ipJwcOxwbyK54F X-Authority-Analysis: v=2.4 cv=aZtsXBot c=1 sm=1 tr=0 ts=696a3efb b=1 cx=c_pps a=qoll8+KPOyaMroiJ2sR5sw==:117 a=qoll8+KPOyaMroiJ2sR5sw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=vUbySO9Y5rIA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=yPCof4ZbAAAA:8 a=mkSj5z2EsP19l_LKqfEA:9 cc=ntf awl=host:12110 X-Proofpoint-ORIG-GUID: L_93_aTLIgwFGmSLk5ipJwcOxwbyK54F Content-Type: text/plain; charset="utf-8" Sometimes we wish to assert that a VMA is stable, that is - the VMA cannot be changed underneath us. This will be the case if EITHER the VMA lock or the mmap lock is held. In order to be able to do so this patch adds a vma_is_stabilised() predicate. We specify this differently based on whether CONFIG_PER_VMA_LOCK is specified - if it is then naturally we check both whether a VMA lock is held or an mmap lock held, otherwise we need only check the mmap lock. Note that we only trigger the assert is CONFIG_DEBUG_VM is set, as having this lock unset would indicate a programmatic error, so a release kernel runtime assert doesn't make much sense. There are a couple places in the kernel where we already do this check - the anon_vma_name() helper in mm/madvise.c and vma_flag_set_atomic() in include/linux/mm.h, which we update to use vma_assert_stabilised(). These were in fact implemented incorrectly - if neither the mmap lock nor the VMA lock were held, these asserts did not fire. However since these asserts are debug-only, and a large number of test configurations will have CONFIG_PER_VMA_LOCK set, it has likely had no real-world impact. This change corrects this mistake at any rate. Signed-off-by: Lorenzo Stoakes Reviewed-by: Zi Yan --- include/linux/mm.h | 4 +--- include/linux/mmap_lock.h | 23 ++++++++++++++++++++++- mm/madvise.c | 4 +--- 3 files changed, 24 insertions(+), 7 deletions(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index 44a2a9c0a92f..8707059f4d37 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -1008,9 +1008,7 @@ static inline void vma_flag_set_atomic(struct vm_area= _struct *vma, { unsigned long *bitmap =3D ACCESS_PRIVATE(&vma->flags, __vma_flags); - /* mmap read lock/VMA read lock must be held. */ - if (!rwsem_is_locked(&vma->vm_mm->mmap_lock)) - vma_assert_locked(vma); + vma_assert_stabilised(vma); if (__vma_flag_atomic_valid(vma, bit)) set_bit((__force int)bit, bitmap); diff --git a/include/linux/mmap_lock.h b/include/linux/mmap_lock.h index 9f6932ffaaa0..711885cb5372 100644 --- a/include/linux/mmap_lock.h +++ b/include/linux/mmap_lock.h @@ -66,7 +66,6 @@ static inline void __mmap_lock_trace_released(struct mm_s= truct *mm, bool write) #endif /* CONFIG_TRACING */ - static inline bool mmap_lock_is_contended(struct mm_struct *mm) { return rwsem_is_contended(&mm->mmap_lock); @@ -272,6 +271,11 @@ static inline bool vma_is_locked(struct vm_area_struct= *vma) return vma_is_read_locked(vma) || vma_is_write_locked(vma); } +static inline bool vma_is_stabilised(struct vm_area_struct *vma) +{ + return vma_is_locked(vma) || mmap_is_locked(vma->vm_mm); +} + static inline void vma_assert_write_locked(struct vm_area_struct *vma) { VM_BUG_ON_VMA(!vma_is_write_locked(vma), vma); @@ -358,6 +362,11 @@ static inline struct vm_area_struct *lock_vma_under_rc= u(struct mm_struct *mm, return NULL; } +static inline bool vma_is_stabilised(struct vm_area_struct *vma) +{ + return mmap_is_locked(vma->vm_mm); +} + static inline void vma_assert_locked(struct vm_area_struct *vma) { mmap_assert_locked(vma->vm_mm); @@ -463,4 +472,16 @@ static inline void mmap_read_unlock_non_owner(struct m= m_struct *mm) up_read_non_owner(&mm->mmap_lock); } +/** + * vma_assert_stabilised() - assert that this VMA cannot be changed from + * underneath us either by having a VMA or mmap lock held. + * @vma: The VMA whose stability we wish to assess. + * + * Note that this will only trigger an assert if CONFIG_DEBUG_VM is set. + */ +static inline void vma_assert_stabilised(struct vm_area_struct *vma) +{ + VM_BUG_ON_VMA(!vma_is_stabilised(vma), vma); +} + #endif /* _LINUX_MMAP_LOCK_H */ diff --git a/mm/madvise.c b/mm/madvise.c index 4bf4c8c38fd3..1f3040688f04 100644 --- a/mm/madvise.c +++ b/mm/madvise.c @@ -109,9 +109,7 @@ void anon_vma_name_free(struct kref *kref) struct anon_vma_name *anon_vma_name(struct vm_area_struct *vma) { - if (!rwsem_is_locked(&vma->vm_mm->mmap_lock)) - vma_assert_locked(vma); - + vma_assert_stabilised(vma); return vma->anon_name; } -- 2.52.0