From nobody Mon Apr 6 15:50:40 2026 Received: from DM5PR21CU001.outbound.protection.outlook.com (mail-centralusazon11011007.outbound.protection.outlook.com [52.101.62.7]) (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 4B8732356D9 for ; Thu, 19 Mar 2026 00:43:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.62.7 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773881038; cv=fail; b=ox9b08kA15Q6mXkZ871KByhKFH3nwvJMOKBixDuhouqesvxHrlye4cjeZzlQz0/LVWbS+oXNqkSHpTBqtHpIndkOUOrCVGmO3+TS9jjKtHz0xDNNJc/V8tGfmmj6dkmyKtGyzN0rksEFQUHye5nU5u6MtdXl9c0LGWSDya23UkY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773881038; c=relaxed/simple; bh=4z7QPVK6IBSbvQaFGPvFbI3xSEwtq3MdX2JhXCX1p5E=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=iPE8ZSzCCboHBcQ5oWldP4eKa1JhRTdZwv6FbxQaj3OQkakgA1nWkQL49pa99RVsvg+EpwUxqUoCkD+8vxprl8bV2E+aiiqEipC5wTTv0QldOw0v5XZQV2QYF2lUlUIyHQJP4i4y3jR/NkrcILodWoyoM12QYaLtFt+plLWripw= 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=jQQAtuNG; arc=fail smtp.client-ip=52.101.62.7 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="jQQAtuNG" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=FSYqUj538bNWOLmD3qaUw9DydbfJ5/4vRBTDe8sixFtXdoXxLz3u80y9FCpPlcmZ8QywwEIUAIigwQAWO0ZljwCJMXBqAM6GCTMoNuauEhVWXVERw+LDahrlGu3nPsiQYNW2PfElP+CipwHTkIAWepiiiQYm+8fPy1gV7U7ZDBNFVatvKdbaWH2th70yjpaoYjPy2V3umnHKP7ilhwkiFr2AIzkv/odtezy8DpbvXcFCYT6eSFQkco3tn3SbRoV6pj3GtOKAkeZb4oqy8Cn5rFENc3XjqqfnnA09LwVj6gmjFBLpmo2rxeTktVjiMezEGxH0JLxE8i0ncVhq7qkjFA== 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=rVkFOEBs5s2b6WmmIVnel0LcYS24eMBVZdOduVqdPpk=; b=WjTiu8zX7tUpu65EutsoB/T1pmqUamMdsbZiR0wSef6ODzJPfJwCma43LYL8SJLJXsDe4Mr1dPK3LPZOKpI3d4tVtAEJWyaaf6MbmWyV03IbD0Fjss3gafNj+wNLkxsoCewJ9J4Hu+O9vM8LrAEyjK9u/dDLyATniT2hiKaIAxe8qoMS8JtulZ+F7fytUMv0qnEXzLek3kWgtSKjImurirtP9p77tkvaatcmVyJkJn9RsQEb+LxTuI82EXlM4pQHa/300/IDtMPXYdTyK2TJkfykv0wGF7FcJbKwUrACy0gdlnV3lwxazamoRvFL+MaMh9h85iyxKVQI1rgXBuI8zA== 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=rVkFOEBs5s2b6WmmIVnel0LcYS24eMBVZdOduVqdPpk=; b=jQQAtuNGtHR4U9Jtpo9hI5Uq0kV1mpGZJhOsTPlshCA/EdUjcO8jSGlndNFUBNJWjRhvvpC0Zcp26rNrJravxdubbbTWg8o4v841S3dble0s9ocmi3IIyIFsYJdFhw8ZE3agZMsXwzrIo7L855LNRi7Q60FGefEwsyRF6nRThcpQ6hcl77rsGg15mz3mCfOFCkeN+Prdyk5KeEsxGOH2NM/6FTFSc0ZuVSQ3cbFmLEpYNcMFxNF8zGi9DLvV2M/uorpfP0f3IKSrM21vOH7uutYNO+jGcWkYLqnHdIbf8v+zpn+e307aellBCi1Hxa3yiEBsMs2SYnx+ur5qTzVaVg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from PH0PR12MB8800.namprd12.prod.outlook.com (2603:10b6:510:26f::12) by DS5PPFEC0C6BDA1.namprd12.prod.outlook.com (2603:10b6:f:fc00::668) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.16; Thu, 19 Mar 2026 00:43:54 +0000 Received: from PH0PR12MB8800.namprd12.prod.outlook.com ([fe80::f79d:ddc5:2ad7:762d]) by PH0PR12MB8800.namprd12.prod.outlook.com ([fe80::f79d:ddc5:2ad7:762d%4]) with mapi id 15.20.9745.007; Thu, 19 Mar 2026 00:43:54 +0000 From: Yury Norov To: linux-kernel@vger.kernel.org Cc: Yury Norov , Yury Norov , Rasmus Villemoes , Andrew Morton Subject: [PATCH 1/3] bitmap: test bitmap_weight() for more Date: Wed, 18 Mar 2026 20:43:46 -0400 Message-ID: <20260319004349.849281-2-ynorov@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260319004349.849281-1-ynorov@nvidia.com> References: <20260319004349.849281-1-ynorov@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: CH2PR05CA0009.namprd05.prod.outlook.com (2603:10b6:610::22) To PH0PR12MB8800.namprd12.prod.outlook.com (2603:10b6:510:26f::12) 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: PH0PR12MB8800:EE_|DS5PPFEC0C6BDA1:EE_ X-MS-Office365-Filtering-Correlation-Id: 16ad13f7-9629-4810-a97a-08de855098c5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|10070799003|376014|366016|1800799024|56012099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: jndTFlqGhZ8FzisgO0aLfCJyViwhlVe8TIMqpfYj0yUUMJ+7vRRnBhcho6jKj3R9LTCIQinhyHYNw+lCa0kNUPaAy7NJOl+bWxTU97xkvFUJy0t8md7cZnIFVoDl6ZBbAgvyrbiJ6SXvDRHYG5TWY2KoDAuQZy2GOR/oKeiClcECdxKMmYFUlDHCVgT0ThY4HLXYV/hn0n3kWGASowfHi14BQyfUrP1EVsvufkQfX63sm9JI4RMLXPoLdL3EIlqBPb0Lx7Ipu41dg7OgGf9vKc0CxjvwsjOSVIk0M75LOYz5tA2aOBId4dK4G/Poz1fZ8FfwHVQruCwwfEU3DPkwX1gzbCGzCONmLsjTdcZU2SfcXy+0kFxidWh54ZJ9w/wFShSJPqijYIhiUTRMKfOghdpt6w+BE5bnvTG2VqBkU3ucSSebbQbPesO7Q6hLKv3IwOj1cuP6RUwK/j3qo+XD3dsHA+OrA1XQICB0aauAqsc8vAt1nisFkVLmZpqmSvJp4wzsSn5BBFqcMmTqkNEsUJv5Y86wA82De14XxHv1MUqUrguOqRg151zXhX4ruVgGhbisdH4eHlcboZoKuJLFuQi2B52wXzKqtGX4yXHemgtfJx8c96J4IAVCdULW8lgZFJWtJubqzDZDmkoJ8NS9DJiyZLNylhTfK46PBltVp8BOIfWBauad9DGV8EnG9bWnBHidTnwuZ6QdY3vfmZ+KYADTnUhXQM9LkTktnFnPRsY= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR12MB8800.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(376014)(366016)(1800799024)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?vPMp+xQZDXolYrXcTX7ztgqITDFzRmizPULzsFNO4yYYj9ePaP937EKaIgeb?= =?us-ascii?Q?YHsaTdpMYtpQp454R33dhN5eo3CTejStmHPiYBO0jQ27tlvohwZJmZQe5SI+?= =?us-ascii?Q?ptYNwlfg5M8lh550kNxDMT/LHaHauhmcQDA/VAAmsMQd5ExMBPeXlgNiTBFb?= =?us-ascii?Q?rAEevOZD03TDr9t3jz79vsFj54u2wwQ6fYAr3xNemkKInpqwnd1jOr5AC3Di?= =?us-ascii?Q?SXqEzk3nGaP8+MM7aRvkC8RILoDdYl462BfEXy4n1ihOqt38IZRZBhzQHDbf?= =?us-ascii?Q?8DJiUAqm1lnuMGFFMCIP1H4TiDBEckwJ1qkPMr5DpXk38/4/4kjDROLs9aGO?= =?us-ascii?Q?bF9FRl4ZwOFGpdlKJuloZA3DbxUFJZArCcReDF2EmioFiwZTCZ6ZfhMwSUKc?= =?us-ascii?Q?34B1gchOFrcPRQ/BUN9wem1Q/qMc3plAMm3JTshgZxwGUeEbOeY6Ogjysmk8?= =?us-ascii?Q?GNSqmBHbiNz+gvT20dHtVd4WZ+5tXSn6DTWtEjr969jDduW3Tf/mE5RK/VUb?= =?us-ascii?Q?GWn17MZ7r2ZyyNZ90/bjJTAmcknyNpS4cvCXPFur8flAsY7Z+WF0BdV/laLV?= =?us-ascii?Q?n/1gfIVo5q7pglODab2kS22TxGh/EuLwVytsxYEOP+i5RVceTMqzlPvwPRJG?= =?us-ascii?Q?Vk8ZF/Qn+4eUaKkkMdjm36Lajz38PkdVeyN3dYk21cWpRmbWSTz7XpX+MNFL?= =?us-ascii?Q?q+UdG1BNfYolj1oAhuKvqAzqZfk9OmC/vATwbk3q63NNShcyNK24jEzZklRr?= =?us-ascii?Q?mg22KjY9y8KgXeYgzUbWP6dhQe61PvkEQWkk9p2hoV2W5AegCe228g7YKMZL?= =?us-ascii?Q?hl1KYGOXY53FKzRz84LDQbhRGhWH9uPpuV6GLYR5d/rFmWpkxY6l9n5bN/u6?= =?us-ascii?Q?03yaqtdR+rc28wJ/Ew/DLLNt/7zV1yzXdnisQ5Dw7cXAMtaTVEGW8Vf2wG9Y?= =?us-ascii?Q?l+bOmI9nzKrOpv6shZ7b6UdR2xD59xu8qIRCuxFTUZUX+9RjG2QjfOMqEusX?= =?us-ascii?Q?ds770wqUmBDkMbR5cOg6duzUj43x6VMkLg8ZX4dPeXgQih/b2A4FU92CSOOR?= =?us-ascii?Q?PBsl3Kg12/qr0Wim1w5hz8anDPxjLyOa/2n92i8QVMaZbo2TyySilEJVyvwP?= =?us-ascii?Q?c3z3ItY2vwpS0w9nNt3kD3OJULYaS/eyrj3WUpK/Uqp4agn19VEbRsih3VGQ?= =?us-ascii?Q?lM4/HEsTu6R2h5Oxq4azL0szF+m7kRieP8gyttTux2bnPYGqo/Kwm3hwjNWR?= =?us-ascii?Q?Cbi7fklYF2l9xltrarl73dFzWrA8gveY+AvtvQ1oiNYoufYTviOPdj7cjp2e?= =?us-ascii?Q?AJvDx0mJG66g4Rg53iLHCHhZqjU4nXwFES0nmcd1F0jtvPA38RF+xlQLJ4fR?= =?us-ascii?Q?ZXY5p1OnOXD+9cAQ9zODlXUhYxb36rhSZY5iaoDBZ/VavRIw+NLi4pdBwUU5?= =?us-ascii?Q?HuBP0GSOZYHFCYJH1VLM8A+FP+j5z7XGP3oZFwVn5d6ngREKmP0//3mgdDsz?= =?us-ascii?Q?4govzElNDC2vSQw8TlBdwODSIFjPyvOwVrg/8KrmyynFF+kXF+aPX2rGwXN+?= =?us-ascii?Q?jCREgxq5CszDYaQNmSSVaDCYclqdz4B+WzLspevSXFOtAdOEh8Npff59uyzK?= =?us-ascii?Q?tRhzXefRtZ135aBR4C8LM5vzRSVFAwNi4rwGP0ZlE57OCC5xS1H4srr4i76L?= =?us-ascii?Q?C0UPwtb6FJ5bCdnQBW9pz1oXmQRrOixSBnAClgH5JCyJ/Q88xRp8UeHDLeyW?= =?us-ascii?Q?z+exmsPvBRLKdixbKC5jA5KSlVrBP4lJ/3MUF9XBJPPbXXsx424a?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 16ad13f7-9629-4810-a97a-08de855098c5 X-MS-Exchange-CrossTenant-AuthSource: PH0PR12MB8800.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Mar 2026 00:43:54.1028 (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: W0c6JTPEUIi2topPFMs8Q8ADGlBe0cydpDWWvxCpkdpWNSqW89gB6FEvr+kK2RTJf8l0qxw9pFovmA7i++/tSA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS5PPFEC0C6BDA1 Content-Type: text/plain; charset="utf-8" Test the function for correctness when some bits are set in the last word of bitmap beyond nbits. This is motivated by commit a9dadc1c512807f9 ("powerpc/xive: Fix the size of the cpumask used in xive_find_target_in_mask()"). Signed-off-by: Yury Norov --- lib/test_bitmap.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/lib/test_bitmap.c b/lib/test_bitmap.c index cd4cb36e42a5..eeb497016ed3 100644 --- a/lib/test_bitmap.c +++ b/lib/test_bitmap.c @@ -858,6 +858,7 @@ static void __init test_bitmap_weight(void) { unsigned int bit, w1, w2, w; DECLARE_BITMAP(b, 30); + DECLARE_BITMAP(b1, 128); =20 bitmap_parselist("all:1/2", b, 30); =20 @@ -877,6 +878,24 @@ static void __init test_bitmap_weight(void) w2 =3D bitmap_weight_from(exp1, bit, EXP1_IN_BITS); expect_eq_uint(w1 + w2, w); } + + /* Test out-of-range */ + w =3D bitmap_weight_from(b, 31, 30); + expect_eq_uint(0, !!(w < 30)); + + /* + * Test bitmap_weight() for correctness in case of some bits set between + * nbits and end of the last word. + */ + bitmap_fill(b1, 128); + + /* Inline */ + expect_eq_uint(30, bitmap_weight(b1, 30)); + expect_eq_uint(100, bitmap_weight(b1, 100)); + + /* Outline */ + for (int i =3D 1; i < 128; i++) + expect_eq_uint(i, bitmap_weight(b1, i)); } =20 static void __init test_for_each_clear_bit(void) --=20 2.43.0 From nobody Mon Apr 6 15:50:40 2026 Received: from DM5PR21CU001.outbound.protection.outlook.com (mail-centralusazon11011052.outbound.protection.outlook.com [52.101.62.52]) (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 114D522F77B for ; Thu, 19 Mar 2026 00:44:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.62.52 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773881042; cv=fail; b=Z7CDwRx1qynNsuhm6v2T99Lkn/IdAKSqaxNZBv5vz0VjYb0m+a/rv+YAWxArjt/LIMAkNOKb+aDy6M9HHkOHPLPTODh5EGH2HJQ45pD8VBDRahgRFeQGcOTP2/p2OOr0g6fQoY8LlR/kke1nlWRZKoiLYxsKYQCthngVf8jcan4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773881042; c=relaxed/simple; bh=5x4AjPs7vzyKQ2kF5GRDtVCyEcu4cuNkCLyYPlj65F8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=GsgmjpbX7TKnXmRLW5QS3UrKZIvpJIGaYVx1d6qBS96CKbS+K6loGRhIxx/xpGdzlEuu9HfuzsyG5N33/2wk3QmwknyEnxTC7+w/cUMZBkrUZVDeo5OWWp6KcHECC4xID45/MncZtvz0AN3O7VL86q/CiLICX0HmBqcuvoAoUN8= 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=LKpSHZfo; arc=fail smtp.client-ip=52.101.62.52 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="LKpSHZfo" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Iro9MURY6QhcHZOF57Rrwrv4F1pELvOWFRcO7Ri+i4jKrNyv1EDazFdBCm4YNOCEgr/v9MsGXZlJHM3gVFfbeFT3Brr8bUjpT6nvTzUe/u3sG4oAJcBl+EI6S4L+s59J5XgN8e1iR/7wiJKW3hDsF+9TbUrqtuZuWjYo3aDtGI4xZOr5fGGS48M4xtEh1TTRZZtj3728SiZwqQYEggll4BqKQJGg07Kq4OoeL6j0NWc8BQd5Vh0S2dxjHUv29USQ7F0/GSVIRDr6Jzh3PJBaj/Xg2DP1Q/hSJFiy1Rj2AtRzisqNOaqniqO+p35c5ig4YCF5mgk0tAFsMuKf+Vmivg== 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=CcCoKkBn0pTvtU8q+9JDSGom9IFoln0Twhw3PAnZlyE=; b=HU/aHOZ9jHRePyAgVSiqQCMngPdF11nxhWSSWa/nIYJnfSQ5RRo0p6SJpSpcVYcn1bwSZ7LEG4iq0U25Dkx5uEQz3OO0FjI59M32oJzf+9/s5KCmTDQ5ymsjjRdJu1crfNpWvlR1ZDzlpEzfbXfOuxHOg60uVFjASHK5f6v20DDSLClTJw8wD60OrgtF5SzwwvJha0sPxUIVkA6DAxy97oLhL0Nh4dOHnY1b7w7BDw7g4RvSXadj5SLIKFP9sqZ21hFxKz542IRPubvBGxEKgjC6SE2EVwUyln2rVzGMK1xvbSrJJ8t+vgiKIUwpjdYpHXZmmKtKJorQyMzoU7RhGQ== 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=CcCoKkBn0pTvtU8q+9JDSGom9IFoln0Twhw3PAnZlyE=; b=LKpSHZfoAU4ptY5PmQh9Y5wFhF/chAIfmyhxs/OWJE0ISwVhxK0oPVnNQlRwLnZBEZT7V0ETDM5ZrhG4Gg3MzIvL0K/QmRQYz2cKDhdGe4+RZj8zYaHYsxCn8rkJ7oMQwruFmEA+4Et4kH/MHeUvY3WdVP0StXps0yiQDQt0Hp1p3Yg58hBe0hxrdGLZYZNFtMr9YXW5yTxtJ59+TorseJrmpebl3KQcgL+1rUtCG51NrdUXSqnnit/e8WByz20ops9lNAgWgyHRjN2MPxT9+wWyHVWrqTQPu/7NpPIlpqF6bj2K8Ksgh8B1dZx4x+7YYC+lp0yzxmFdW1VErLaBMw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from PH0PR12MB8800.namprd12.prod.outlook.com (2603:10b6:510:26f::12) by DS5PPFEC0C6BDA1.namprd12.prod.outlook.com (2603:10b6:f:fc00::668) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.16; Thu, 19 Mar 2026 00:43:57 +0000 Received: from PH0PR12MB8800.namprd12.prod.outlook.com ([fe80::f79d:ddc5:2ad7:762d]) by PH0PR12MB8800.namprd12.prod.outlook.com ([fe80::f79d:ddc5:2ad7:762d%4]) with mapi id 15.20.9745.007; Thu, 19 Mar 2026 00:43:57 +0000 From: Yury Norov To: linux-kernel@vger.kernel.org Cc: Yury Norov , Yury Norov , Rasmus Villemoes , Andrew Morton Subject: [PATCH 2/3] bitmap: exclude nbits == 0 cases from bitmap test Date: Wed, 18 Mar 2026 20:43:47 -0400 Message-ID: <20260319004349.849281-3-ynorov@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260319004349.849281-1-ynorov@nvidia.com> References: <20260319004349.849281-1-ynorov@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: CH2PR05CA0036.namprd05.prod.outlook.com (2603:10b6:610::49) To PH0PR12MB8800.namprd12.prod.outlook.com (2603:10b6:510:26f::12) 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: PH0PR12MB8800:EE_|DS5PPFEC0C6BDA1:EE_ X-MS-Office365-Filtering-Correlation-Id: 6e76f9ac-3244-4b23-cb04-08de85509aa4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|10070799003|376014|366016|1800799024|56012099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: 7T3OWjSlJap1mwWdfW2RouQ0rEcqVwVsDRToQ2D27nPJ44w9g1/0ZgSN6K6SfJqR0C9T52LzZWkoi31p665D4hucwY3rcfRlntMT48/VVK2X1GhLnRzAc9bKPO3uLMcXXaXZYkV7MwzoPvIwAaUvaFfIzL+aiVwkppwcgUFvLdn4OGC9XbSg/nATuvaHDksSkWnAIAEpUvhJVzdHC5aQb0WwfBHwRzWKI1glMyiH79tycyDv7ZDbljrgMm7SeRtzkBi7djb9CXJ/ql/mS0S3tIQSeAKcwou+YdMTelLd3gqdWdDPXimwyPrIX/G37N+Z6dedA6IqD3Ccjso0O7wGamrK5XkUUcyPrUXc6QbtUHCHPmuZ9a0YvFawf6/DUY+t11eOLSqO5P6lCzQNZ4QHhKwwEvrUHZzk7Mrkjp3KGDfOsub1tj/lQfm/4XgPwOUL09/72VTYgnMwtmrVMrbYxzMCud19MykCj2EIrkNV3bOUdWufIALJU4WCQdQFC7w0hd60V37Rcr8nKbLXgXJbT0HqGHv0trnMqtIqUrf/iCpr3F0TB+5iL+n+PwqUlxdMMDMnsRorHY+ErU/Y7B5j28TdSqf9V+D/0N2mIZre62jR09pGDAjbIL5USxT6//Kr3wMjEc+NXRv/ZU1kK0mTL9eh39QJAxJj8h5w86+o454atUiJzmUJeYm80N8EKXLyy5w/K/TN5Hdm20u3n11HW60QEh+mEdPu1dJsuqQvRCk= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR12MB8800.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(376014)(366016)(1800799024)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?7+72O7F1evMoLvp9pwEETkJf9r38xHV0sv+SDayC26ozOY1Q4MmXQEkG2S3d?= =?us-ascii?Q?cv5L0DkqzcZKohYW31lRTGbxT8atxVUS/ED3p0ajGzx5EKwMg5xfnKQld/EC?= =?us-ascii?Q?rcGbie7kTWpofnLQyIAtQJfSDQ8llYlKvIG/aZk1htzJ6unny906XtEPu4hq?= =?us-ascii?Q?vceCZmAhXUCQi/JqpLBwJ+jq40iZwkZ1L9YFdy5gLQ2HVCQOSQ796PtgI86F?= =?us-ascii?Q?F25YlAtYkxyV2hbiG+lGloFWVBNgd5uCovk75LO2KxsuveOdzlTkbfl2VLy4?= =?us-ascii?Q?V6yleWzYfLs1/iFW88xt1yMJ3HFuWxuctMn6b8XZYbTGHc9mcFGDbjxsw0kS?= =?us-ascii?Q?jOkY/D6n+Wrtz/Hip+cdsu5q8uG+jmWj93/WgHqjeDP1cDA5I7zzq71LdoQa?= =?us-ascii?Q?oCe1EWPGqmxOY2XqCZvGblZMqO9EFjGa8nwe3xjcNsPre7ONjmaM8vYyQbe0?= =?us-ascii?Q?lcyEB9OtJrhO+DkfU4HMBphpJ5Bwq8ehcLjvxblBvw3LmHkNOaIAhiOuKoU+?= =?us-ascii?Q?aYfLr4wURK38/FaWrDl63TDbDQGKp74qvXUD1rLQ8XYP1C6Sls7W9otNQIkK?= =?us-ascii?Q?ydtzN0AlXCwrnTpnvSCeSE+t8oD2X/xhefk6YO0ToxjX6pXe6YRNHyBQbE2N?= =?us-ascii?Q?vsKnYD/lk4cXx8hj7eGCkvANG7bV/jzpxM3UXrxJbenAZ1RbPekXiFQr/KB7?= =?us-ascii?Q?C7ZbzaALOxsCH8NNuZvBkucbN83OaOl5JzibcHvnLSz5Xuu3uXl5EmA64Paj?= =?us-ascii?Q?6SWiELRkoXjG8nlxorYjjs2sPkBFYEcko0X3cuZNNdptehAGov4EQzbG5xfS?= =?us-ascii?Q?Vc/wEP9uazQpTKD0183zseRZZlzeZB2rtGCLOBIGe0LAWXMawlFHWVhMOpoW?= =?us-ascii?Q?0DUQn0vK5ImVcK4EUYa/xIvfxHgcCBuecddO/+GBwnF3WIMdIS5rq3vutTYw?= =?us-ascii?Q?5ca7vh9F5tczAsefm9SJIeTt1DiwgvFHr6X6+Rwtq78kpvqDb+ZA37WFwljw?= =?us-ascii?Q?kUYEX32e3Z83eZbeQi6pIoXn5XX6inHdPAl+RzvAAo/4idB6nmBdINSVOUn3?= =?us-ascii?Q?giRgvoZN+cv+5NMrbZkF7nMxkvxpc3+so8g1WXrwKDmCI1vDwbEUboeM1UcH?= =?us-ascii?Q?x0TpYC8q7lpxTOOQTAhogfS5EvDB2kI4q9eMvpbBEOfbkp0yM3N32Xm0arLR?= =?us-ascii?Q?55eBEHwx1lbyUP/TqkwMBTMxLP+9oQ3SCTnLMzOdLdSNcUgMHdB+Mcuok2L0?= =?us-ascii?Q?sIaNrG4T8CKbyGgDLJVLPFYt6FXyAKxToukjbUZcSLJtBqNgQKOXwqhH0eWk?= =?us-ascii?Q?g6+cdSqLAzaWUdDo+rhgyZ0S1YnZJMaNZjcoowMo77NQbvrlzEd855HMOjZ9?= =?us-ascii?Q?Sr1Yr3zb3tA+OWZzfW2RARNqIr3vCzNRzSDqkxd7TSNp06XdsAgj+3zS8ie0?= =?us-ascii?Q?1IYMjPNLXDRmHX0T3XpPRtZa6i3/SSx8AP2rInt7mBX5VlYTQGGpOtXTsPQW?= =?us-ascii?Q?UTkz8ktXvcS7YwMDUVPVXfWG6yuomVE8YR7vIjqyyEyCEiBawE2jcV8v4rDc?= =?us-ascii?Q?5veO5MDQnyOXUZmEa1dSDq+Zn437pWTi9fv1OIBTmJ8EF+hScUs+T1EFBtmS?= =?us-ascii?Q?jN8SrwChQOibs5NZauI3sKZLOvceTVh+/XCtDmfn4tUEpIbkF+dxBWsALfNA?= =?us-ascii?Q?aDwZKa18L1je9hW1sbO+FqLKhgq3wo99A6khqTlpnjed/V6swSerjUlc4PD1?= =?us-ascii?Q?RHAk/hlDam5N/RnsRYPZSuU72KuneZWaCvxdogX/yQPfsEcvh6T/?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6e76f9ac-3244-4b23-cb04-08de85509aa4 X-MS-Exchange-CrossTenant-AuthSource: PH0PR12MB8800.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Mar 2026 00:43:57.3471 (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: VrIorwpWvBnRQkxmRwAt+xpp5HPoROXEFGLvTwCEVztOiRKt3AxjDH4hPtsRuFp7FvXTh247D2QXaWj/g3FplA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS5PPFEC0C6BDA1 Content-Type: text/plain; charset="utf-8" Bitmap API handles nbits =3D=3D 0 in most cases correctly, i.e. it doesn't dereferene underlying bitmap and returns a sane value where convenient, or implementation defined, or undef. Implicitly testing nbits =3D=3D 0 case, however, may make an impression that this is a regular case. This is wrong. In most cases nbits =3D=3D 0 is a sign of an error on a client side. The tests should not make such an implression. This patch reworks the existing tests to not test nbits =3D=3D 0. The following patch adds an explicit test for it with an appropriate precaution. Signed-off-by: Yury Norov --- lib/test_bitmap.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/test_bitmap.c b/lib/test_bitmap.c index eeb497016ed3..b6f27c632c75 100644 --- a/lib/test_bitmap.c +++ b/lib/test_bitmap.c @@ -653,7 +653,7 @@ static void __init test_bitmap_arr32(void) =20 memset(arr, 0xa5, sizeof(arr)); =20 - for (nbits =3D 0; nbits < EXP1_IN_BITS; ++nbits) { + for (nbits =3D 1; nbits < EXP1_IN_BITS; ++nbits) { bitmap_to_arr32(arr, exp1, nbits); bitmap_from_arr32(bmap2, arr, nbits); expect_eq_bitmap(bmap2, exp1, nbits); @@ -681,7 +681,7 @@ static void __init test_bitmap_arr64(void) =20 memset(arr, 0xa5, sizeof(arr)); =20 - for (nbits =3D 0; nbits < EXP1_IN_BITS; ++nbits) { + for (nbits =3D 1; nbits < EXP1_IN_BITS; ++nbits) { memset(bmap2, 0xff, sizeof(arr)); bitmap_to_arr64(arr, exp1, nbits); bitmap_from_arr64(bmap2, arr, nbits); @@ -714,7 +714,7 @@ static void noinline __init test_mem_optimisations(void) unsigned int start, nbits; =20 for (start =3D 0; start < 1024; start +=3D 8) { - for (nbits =3D 0; nbits < 1024 - start; nbits +=3D 8) { + for (nbits =3D 1; nbits < 1024 - start; nbits +=3D 8) { memset(bmap1, 0x5a, sizeof(bmap1)); memset(bmap2, 0x5a, sizeof(bmap2)); =20 @@ -873,7 +873,7 @@ static void __init test_bitmap_weight(void) =20 /* Test outline implementation */ w =3D bitmap_weight(exp1, EXP1_IN_BITS); - for (bit =3D 0; bit < EXP1_IN_BITS; bit++) { + for (bit =3D 1; bit < EXP1_IN_BITS; bit++) { w1 =3D bitmap_weight(exp1, bit); w2 =3D bitmap_weight_from(exp1, bit, EXP1_IN_BITS); expect_eq_uint(w1 + w2, w); --=20 2.43.0 From nobody Mon Apr 6 15:50:40 2026 Received: from CH1PR05CU001.outbound.protection.outlook.com (mail-northcentralusazon11010007.outbound.protection.outlook.com [52.101.193.7]) (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 141702356D9 for ; Thu, 19 Mar 2026 00:44:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.193.7 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773881046; cv=fail; b=mcgWCUhoiOA7+cDr6by6gjevXcxum5R0Adjx8KImVU4MNAdJUTmG/2eXVMFKpqWlFj/gos7YNWS1Oda/pkz9V78+09YOXDuh0dWkQJYnm+2g+v53vxZa2OUK5z4YmzfBcGBixNIG083ZfForn6UB3Q6gzcLg8m9bjvHkQ/biZAQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773881046; c=relaxed/simple; bh=EZSghXa9UFdRA0fu3gL//PXuMGWCj5OlozBaUgub+Pc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=HcDrE1mu47q/0+tH3Bb8d4LpwH9+LMPq72jW6yNBPTfdoFjv/XsAqVctkd/YIa/u1yHsiByqtEUJZGkeUlQw63j2zVMBNN8twOc/ZocqWNp1ildvRIVQDF+oIimseyTqawG/AEctPEKTOGJf9TwLqZdrkY5Dk8xl0Ujkxj42mhk= 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=YZu+fEdP; arc=fail smtp.client-ip=52.101.193.7 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="YZu+fEdP" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ERVOYX2uQYMwHrZ7nfSr8OveY0gmE7a5L7M1w7tvPdKfFlBDBkMnEfYXV2YjEwx6jpAxNB18X9FHDTSDZgoxVVBNJ7UXDbWefvxYyc7lC8qRLAqrS8LNzNMVVPQfUvGuXWD4ng+WIlJZha5hGI+UZ60Ybm5jXQPRfsabJinTn+Ac944cvigdgfxcP6/iqVUaagAKYnogHJU7a4+MulVwmcVmI4iTYHGJAbvIXG9JmNbme7z4ibUVINBgNYqk6aIDCJWNa3HXTUbhlbPYgET0Pm5eOyfIkESImK7r+HI3vv5NZhmDcXt1h9lqPBWJK2Ad5aLohvukNe/gUTzny5X66Q== 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=lLH/8vspey/1MsXScMxZTMxbb7ixDAgPZB7E7ldLBkI=; b=Lex/U5yeAO8ljfBb7+ul5wo5HYUw4hS6XZ+SV2ROf9aV2iaWqi+mxQ0ihgV4mSohmlnLTxiKIi7We5dL1FT8plBeDqQ7JVHXvlwuiQul1lys6x++qjnp6kFkIKQv9kyx/MSxHL2ECC6A9N9CCiX5IAdKjc8UnP9icmMnrzci9bfx6g9TPpqBYv8JnqoJdrWtV0/8ZqP+1s90wuFq4d+fI/GI2J32Qn3T0UDCjmwB4V8AfF9h4wyC/7jhnX22Vuukg08ckvG0QT8lpdcbLmkr2NBgluT6gF9Wf5qwKmGXs9toiDPmPiDs/ve2X5uTEPLgUYpZMtCy3cXuQKaYQ/rsLA== 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=lLH/8vspey/1MsXScMxZTMxbb7ixDAgPZB7E7ldLBkI=; b=YZu+fEdPOyKpeSURlDWJ/p4pdVvQZyaAqtLyDVMYASKEftfrqCuDyFmFdpXt6NrkqOU4AeEktLN1cwge2L9lA2R1bmZar93Fu6hHeVv4BU5Sox3vNl3hYGTBP5xPwBkSVUf2Yta1k73c5y2v9VTUCPZxHjow+j3cntq4ctGD5ePYos/yrmclOPgoL1uovoTbVWyCfC/EQP/nym1aX6sEGsxTKhoVFJFFy1LVS3suCC4Pee8yIjnfCoMenwxBDa5A9NqqlelUg7fm6yBWKEkopfiKqb9/qBUijK/ZS1UM5FeaVFynLCN42gT9S92hGDJzgMaPqyfruTnlsK9ywbv4mA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from PH0PR12MB8800.namprd12.prod.outlook.com (2603:10b6:510:26f::12) by DS5PPFEC0C6BDA1.namprd12.prod.outlook.com (2603:10b6:f:fc00::668) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.16; Thu, 19 Mar 2026 00:44:00 +0000 Received: from PH0PR12MB8800.namprd12.prod.outlook.com ([fe80::f79d:ddc5:2ad7:762d]) by PH0PR12MB8800.namprd12.prod.outlook.com ([fe80::f79d:ddc5:2ad7:762d%4]) with mapi id 15.20.9745.007; Thu, 19 Mar 2026 00:44:00 +0000 From: Yury Norov To: linux-kernel@vger.kernel.org Cc: Yury Norov , Yury Norov , Rasmus Villemoes , Andrew Morton Subject: [PATCH 3/3] bitmap: add test_zero_nbits() Date: Wed, 18 Mar 2026 20:43:48 -0400 Message-ID: <20260319004349.849281-4-ynorov@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260319004349.849281-1-ynorov@nvidia.com> References: <20260319004349.849281-1-ynorov@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BN0PR04CA0188.namprd04.prod.outlook.com (2603:10b6:408:e9::13) To PH0PR12MB8800.namprd12.prod.outlook.com (2603:10b6:510:26f::12) 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: PH0PR12MB8800:EE_|DS5PPFEC0C6BDA1:EE_ X-MS-Office365-Filtering-Correlation-Id: a38982c7-a009-49bd-4766-08de85509c98 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|10070799003|376014|366016|1800799024|56012099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: 6QOAyUiEKfaopnjnon8m64gNc7H4xWh6bqOlc5186DF3ohv/dHyYo5e1h+kIxFz03h9fcakjPCsE/3wZQmoGF5/7ifJWlgl16SO8gSLHgy8+vH34WyZxGicwURQk0/yiuT39p5/6DraK55D32d6c2OZoP3ZtXHNVwcqT1sPCah68iWCjFzI9UekvamPiRIZYTdDiYkzIbwbPifOJxUMlOuDIboy+rKk4dvZcsjiIxfz1t7difAj3Pa5QhqQyDgZLsBaBBQvKwSnEryBU2L9YeA/OpRIZCH61OuH9wkljEt7koSCfN7slMDFKDzwmpWVTY97RJIw9zD6abbKpG+0/lqrU/cv43bmRM+8aAX3IzIWhf7Q/Qoeh2fezWNibDu13eEuEqgDacwm+kvnoYWF7CjQglHM5r0lIvY10eopFhok8ud/81NQyFgnrSeHX71h294KLIoNKqkjKmql7pKkezk7AUs/LwcZ2PbeG9IzLPh/qFg4q+V9ezrNfuTBdamoQ7+Z7sJIzLxjunmWPyA+ppG6AKH0J5SvlCe8abrvRAK2hebWPWw2YO863Dt32WC5mgIJhtOatcId/ZMpjvj7jT0GmPYUEjb3KYAGHPrerqsRFuBBjnx2KDfX/AtN7mniqHLRsRMDALxnUl54HTSWPI7WfOYghEaBu6h71MniQL0NIx6R2Enb5V3Z1YNTbzV4egUTeCsZMq5KBjPgwQFihXxywJQUF+x0HlQrnZjoWdIE= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR12MB8800.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(376014)(366016)(1800799024)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?hm9Tv8T6iItScyASmYiIwVD629AipwZdICap0CHMi7pa2+wUy1pDVRXgLhbn?= =?us-ascii?Q?XeBIQMIpmGUF7qO5SAdRFMIALFw3pFDYUhoAaV3rEy5/3KA/xkVNuoJGrUh5?= =?us-ascii?Q?E1OM6+ZRZgJWog6Z21Q/ZxzrOxuo1rDL0z7ikUxOqEGK0MEApBV1iKWCmyzM?= =?us-ascii?Q?SF0WnYnzPaDuCil0kB6KrxOxqPg/bLiqzkcP1KjnZViauTdX3+knvbEYhT+M?= =?us-ascii?Q?SVnh3HsGa+xgBaFbF97m3ijkGmVV1gjj/0qkXw1ABsgznpn7gO50lH4K+LMj?= =?us-ascii?Q?TdnfiEfxRTLhZKc038aW6pkyi2kC1V2zJDAbJHRZikdUADzgkaxeRkDZloBC?= =?us-ascii?Q?YpGHCIEqBbvcDo062gtSljKdLV+nGYsJYRWWB2qpOrgduFRjyfTtKz2+rKmP?= =?us-ascii?Q?lJ5UaA/pLGuPgeNmTqPBY1f78izofhkjD+CCoI/iZxKmHgNzVlUN5oDdKPir?= =?us-ascii?Q?k18FGzPEChzs7lPxcPoa9StNz9I3JGyOyfs8d+C2JQ7rDlAfzgLGHNt+DiY6?= =?us-ascii?Q?TuYvfO5Tpla54wdT9+xj8ulrFkrBXnP6G250oI3AKCEE5iQ0UqKDqQfziGYu?= =?us-ascii?Q?ToDdFkPZqZJf3GTvBEggyi9j6R/tI4O0JnN+CJwGzIuFgrxdE5gjOHpjJkz+?= =?us-ascii?Q?+Hh7rUF3wvzLPDKN1oP9BYuzZ0dnvfJzKDZpYVQXN1z17EK9jR3YvU1bbQu6?= =?us-ascii?Q?+MRYliI+2UWxp22ENMhODoJMuIfUA5FFqwVgAVHurP7K/c2TwjxtDg2CDz/6?= =?us-ascii?Q?eBt7bw0VCq0aO1yRUmFL07nW0NTQrznM5AC521a0OOLUiOvjReZp8ZzSypko?= =?us-ascii?Q?DCrlNst0vUirMBssszut47Zx8QeWo6GNfr2hFsvAd/gC+yG/59GBYeD9soSm?= =?us-ascii?Q?rFoJ0aNlV//99DlzQLnxli1Il5EIwF7AQFnos8jV1oPP1MUjYin7AiBuMxFC?= =?us-ascii?Q?IX58SCD7byGQhSIsD563surcvlqfsSdAOOVeauxPflCgyaxH1eoRx6gDr4zI?= =?us-ascii?Q?Of3uvIUuJP+4Y4FdvZlOAVJNkEVjWHgEWp/RGEGbslstQaoYA4YfU0KBcC1p?= =?us-ascii?Q?D67IcV5nubI96AQtsjEBaLmCwDf8cc4oUJ7cmQw9xF9lSMX3f+fXZ1QEoPxQ?= =?us-ascii?Q?AYGE6uFSh9OadtHheSjqEAsOCfVSvHsNoTNBQnnCJP1tmtwLehOVuHe11ysq?= =?us-ascii?Q?p5I7WgyYo2UnuHYyGBTGxFtUDm2ezi8kdqcyVZqtHL6DT4PCvQmwt5eGYQ1j?= =?us-ascii?Q?ggBqveGBTS7QrbJe8Zyz/oEaDzXYp585vZ6XspsU4ITjRu6DRaK4DPr8g18Z?= =?us-ascii?Q?BvRwjysWp7U/3jTx+s07x8z850g6RVDFphMBGT5nnQKqUmquQ76UaK6MO3lO?= =?us-ascii?Q?EBd198iUVraEyX0MZJ/uvz1BPwHnFSjtrA/L8G/KnNq97W92IfGRQasWGfMx?= =?us-ascii?Q?6Hshgm1Ta3mSNjdvw1ru6lt0+YvnUuGjodumKNlTR1u1RqRR44XVNZFV/mTT?= =?us-ascii?Q?xrg/VvxXA1U5wRp5nNR6QaT07Nz29Yv9asS5o3GAD6o0QrogjgeKB0QrQoK0?= =?us-ascii?Q?5bUirEzwk+Sx9Oi/me8O+GI2ocrhDV32Iaf3ebOhxub/Gz5dKXjZgfJ6Sq4d?= =?us-ascii?Q?he17UV2UQdSIjcG2JJCkjN1zbJgXNQmGTKAcZ2qF3RNa0O/Tcf8w9h8UTXri?= =?us-ascii?Q?PSGchUFJ9f1n1YlwHdC12UQN3MdDFuTWsEbP3cmbWt02nkErtyteFi8Ic1LX?= =?us-ascii?Q?NeY+0QhmHediPw1SdAIsNKlYx/RZOsvUZvkO2nV+A3hnJJavKOtY?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: a38982c7-a009-49bd-4766-08de85509c98 X-MS-Exchange-CrossTenant-AuthSource: PH0PR12MB8800.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Mar 2026 00:44:00.5339 (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: GWXFJ6XuaGl97+C1HBfDzHWoxMZBhjYLVK/4Dpjgc9EBdOWrmWd+guSRoenfQe7jjNrgJYVqbccB7Jm93Uwpeg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS5PPFEC0C6BDA1 Content-Type: text/plain; charset="utf-8" In most real-life cases, 0-length bitmap provided by user is a sign of an error. The API doesn't provide any guarantees on returned value, and the bitmap pointers are not dereferenced. Signed-off-by: Yury Norov --- lib/test_bitmap.c | 57 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/lib/test_bitmap.c b/lib/test_bitmap.c index b6f27c632c75..7a61ea858837 100644 --- a/lib/test_bitmap.c +++ b/lib/test_bitmap.c @@ -1467,6 +1467,62 @@ static void __init test_bitmap_write_perf(void) pr_info("%s:\t\t%llu\n", __func__, time); } =20 +/* + * nbits =3D=3D 0 is most commonly not a valid case. Bitmap users should r= evisit + * the caller logic. Bitmap API doesn't provide any guarantees on returned + * value. The pointers are not dereferenced. The return value is intention= ally + * ignored. + */ +static void __init test_zero_nbits(void) +{ + static volatile __always_used unsigned long ret __initdata; + + bitmap_clear(NULL, 0, 0); + bitmap_complement(NULL, NULL, 0); + bitmap_copy(NULL, NULL, 0); + bitmap_copy_clear_tail(NULL, NULL, 0); + bitmap_fill(NULL, 0); + bitmap_from_arr32(NULL, NULL, 0); + bitmap_from_arr64(NULL, NULL, 0); + bitmap_or(NULL, NULL, NULL, 0); + bitmap_set(NULL, 0, 0); + bitmap_shift_left(NULL, NULL, 0, 0); + bitmap_shift_right(NULL, NULL, 0, 0); + bitmap_to_arr32(NULL, NULL, 0); + bitmap_to_arr64(NULL, NULL, 0); + bitmap_write(NULL, 0, 0, 0); + bitmap_xor(NULL, NULL, NULL, 0); + bitmap_zero(NULL, 0); + + ret =3D bitmap_and(NULL, NULL, NULL, 0); + ret =3D bitmap_empty(NULL, 0); + ret =3D bitmap_equal(NULL, NULL, 0); + ret =3D bitmap_full(NULL, 0); + ret =3D bitmap_or_equal(NULL, NULL, NULL, 0); + ret =3D bitmap_read(NULL, 0, 0); + ret =3D bitmap_subset(NULL, NULL, 0); + ret =3D bitmap_weight(NULL, 0); + ret =3D bitmap_weight_and(NULL, NULL, 0); + ret =3D bitmap_weight_andnot(NULL, NULL, 0); + ret =3D bitmap_weight_from(NULL, 0, 0); + ret =3D bitmap_weighted_or(NULL, NULL, NULL, 0); + + ret =3D find_first_and_and_bit(NULL, NULL, NULL, 0); + ret =3D find_first_and_bit(NULL, NULL, 0); + ret =3D find_first_andnot_bit(NULL, NULL, 0); + ret =3D find_first_bit(NULL, 0); + ret =3D find_first_zero_bit(NULL, 0); + ret =3D find_last_bit(NULL, 0); + ret =3D find_next_and_bit(NULL, NULL, 0, 0); + ret =3D find_next_andnot_bit(NULL, NULL, 0, 0); + ret =3D find_next_bit(NULL, 0, 0); + ret =3D find_next_clump8(NULL, NULL, 0, 0); + ret =3D find_next_zero_bit(NULL, 0, 0); + ret =3D find_nth_and_bit(NULL, NULL, 0, 0); + ret =3D find_nth_bit(NULL, 0, 0); + ret =3D find_random_bit(NULL, 0); +} + #undef TEST_BIT_LEN =20 static void __init selftest(void) @@ -1490,6 +1546,7 @@ static void __init selftest(void) test_bitmap_read_perf(); test_bitmap_weight(); test_bitmap_write_perf(); + test_zero_nbits(); =20 test_find_nth_bit(); test_for_each_set_bit(); --=20 2.43.0