From nobody Mon May 25 02:42:35 2026 Received: from BL2PR02CU003.outbound.protection.outlook.com (mail-eastusazon11011000.outbound.protection.outlook.com [52.101.52.0]) (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 DBD852C11DE for ; Tue, 19 May 2026 16:31:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.52.0 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779208271; cv=fail; b=B79zDrO75a7ToARJsctW1jgln0S4YyETdE6riVACEF0lhKlKkTctHciOTPRnS/+SPa6/o2JimUtaU2bCKrnTKYfg3NGp3A30SfGJ6Yo5TqXZXX4Ojo4n3yJR4r7Qgpl359KTafc2D2zhXJkP9/qO8Ef7doFJBqicX1mvpN+a45c= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779208271; c=relaxed/simple; bh=byfQrxIeR0gflJ/NLEIK+N3OIAoYasjPuEC4Jx8/oOs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=BIXZ9ITuYxL3+9soCczHlvr6twndcqu3CzPwQaLfvBRvbArlT+5sDqFrRljyTT4iTagovXvOhhdhFBB17vXaajigcxbxVk44JxG5+gGpfR5+V1SLr9oh/CYADEcvWoX+pE1zKSNYmVnI2cXIz4V+WpxGtVjgpleQtc/+l/IMLQc= 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=cOMvAU/L; arc=fail smtp.client-ip=52.101.52.0 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="cOMvAU/L" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Y3yFzFYD7U61UOMLyLu2/1hofNH59i4fi0XFVpMN4uINqtyZYtfaomVJ0qIT4wzuOpzbXI+R/IcWfMH4uql+WKO692SzOa5XJo59t3GdQfYNFosW2pVRNZ0dBW9sbfb9kxLKwKxeCXz3Xz29+xOsXZ7V8H6FbPPhiSfOxZrxOwkzHSYQZZ9XgCzk+crA2jCLgNq0o/Gvok2U4xoJ+UhN02dqAUxdP4oInDdegmST9DDWzcGw6cb9CFnkc2Jxn9zzHS5oAQOEWp77bsfq8Antuvy6L6WF/iz+oNmPp0FGn6cW3AHIjLFk9gbOoaAIGqOh06ayrqqgrrI4bOlBalL8Ig== 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=dF+R/Yr7JcI+RtyjyfolnNf4ACE3BTZJB56Sj0ABCVs=; b=dV1KO7s0GW5E9UQBric6NFPGux/uTPY5Z4S7JIM94VSO0WJ6u3hVr0PVVl1JIZEkewrT/vJqSJ5BW1gfpldr11YfmUsqb/Njh2bTjfrOvqjW8bHuwzdajo70UNDl51J+wBLtym/OspMDN5PquWC2bHhBnaYLo+PXOeQYLItWV0ZxYWuLC/SkTzP9wt44SdwW+LMKJ1h/3FoCuXh22iA8xVIkt2sQYa1YFNihH0Qq+uHNgkLfiPbCN1nuuHY0A+SON85M4mF5OqEohLpQzHL9COs73CivgMG41HJaWIi5w03XFbzatws1VuFOOLKSB6DytGO9utYB5mF6Zbsk67wtZQ== 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=dF+R/Yr7JcI+RtyjyfolnNf4ACE3BTZJB56Sj0ABCVs=; b=cOMvAU/LJyqYkLCjY67ohrZbtTrIrhXCVNkfvu0AHyiQ9pzmtMYaYotXNOOHvC2M+KCy6EljE0ROJ/Og2+f8h0IBfQUOLO6twhBOGvcmAjiLn+MiYAMaWbrO/hV6/yCdizKXCgW72q7SV4E5XVG2SmsuZs9F3hPAVoyBQdNBaqp94ATgZN7qktnuU12h7iE2ZYLuUbmFYVdLYClP/PSp5uLSPv0rTdVxo7rDoHbmvvPhcIY7pb/FpB/3DdJI1Tr9Su/xEuA9zwYZszSbRZCrMUlk6bndv2TY4gH/H3IUr6eKBMxybY7y/uCNFCzEqq/YtvArg98zQBxB3dzYTNxtcw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from CY8PR12MB8300.namprd12.prod.outlook.com (2603:10b6:930:7d::16) by PH0PR12MB8800.namprd12.prod.outlook.com (2603:10b6:510:26f::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.24; Tue, 19 May 2026 16:31:04 +0000 Received: from CY8PR12MB8300.namprd12.prod.outlook.com ([fe80::ce75:8187:3ac3:c5de]) by CY8PR12MB8300.namprd12.prod.outlook.com ([fe80::ce75:8187:3ac3:c5de%3]) with mapi id 15.21.0025.023; Tue, 19 May 2026 16:31:04 +0000 From: Yury Norov To: Yury Norov , Rasmus Villemoes , Andrew Morton , linux-kernel@vger.kernel.org Cc: Yury Norov , Thorsten Blum , Lorenzo Stoakes , "David Hildenbrand (Arm)" , Andy Shevchenko , William Kucharski Subject: [PATCH 1/2] cpumask: switch cpumap_print_to_pagebuf() to using scnprintf() Date: Tue, 19 May 2026 12:30:56 -0400 Message-ID: <20260519163058.953690-2-ynorov@nvidia.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260519163058.953690-1-ynorov@nvidia.com> References: <20260519163058.953690-1-ynorov@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SJ0PR13CA0108.namprd13.prod.outlook.com (2603:10b6:a03:2c5::23) To CY8PR12MB8300.namprd12.prod.outlook.com (2603:10b6:930:7d::16) 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: CY8PR12MB8300:EE_|PH0PR12MB8800:EE_ X-MS-Office365-Filtering-Correlation-Id: 48a54106-07cd-438b-8c05-08deb5c40515 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|10070799003|376014|1800799024|366016|56012099003|22082099003|18002099003|11063799006; X-Microsoft-Antispam-Message-Info: pSp8uZKqXW+o1bUa2GpaPLd9P5k0ASgA6701rn2cMkXEA6OiWPaU9sqNSl0siXuyyGzdNtKaLAfxbPfx7XmO7hRPRWJNSf6iAEX0jWpwa0kQRcN2yxjcAahSZB7+WAaZg9b98zt0mPJA970KE6qJuOecL9ZO+CMUQk1phBRn1L4ygjtNOfYxgFIDPVwkC+cZxuQHm/jjn3PwvKGNcV8Jrmp26V5k1Csszpo4RF0QnCuo2HtmIoX/3sbFTzeQvF2yoYjY7Z6walBf4cEMWlzhEnFNogkQVm+Z6p1hwdEUB4UO6U8h1LbByEGyef50K6pTtvbYWkarckMukT90Zcv/IyYVgblOsCYLhBEoObuHrhQHg0s2hVGtaT8sPDuSalXItvUrWPdDSyOlOdn4BY8IGxSnRZvthc1WY7aghY4ZUYsxlmX0SpKfg5VhdLy+9C28BRADqGQkG5SZhIzeb4eU7DB6hnhHrIeczxAnKthJAEH0FR3p2ZRuk/Tw5Hxf33+AatkxxJbFPA2TjeMnoQx8QWJZCIbCoTsrD7+QJ28cwpv0ZV2dKptxKZXWIWau47uhXyn8SU2oSzIH1l1yq90/32ANTc+PNOMFjdFlxmlqjfKhh6ifFfrLvGu6WPRJq8s2e3qr2bRWhPEed7Jx9K6URx6hWDt3CyjAqrPB+DIdMf8/5ogJzwcg4j5sj7uK2AUgdu53lDWG/ozZ1g0XLDkKZQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CY8PR12MB8300.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(376014)(1800799024)(366016)(56012099003)(22082099003)(18002099003)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?9tiztLchD0mA2H7svrDdQZr35U5KRQe5KcKe1rS+5KImrxJ8VDvWfO8W1We2?= =?us-ascii?Q?ZIvb04CF2Z17e1P14OKpJNubnY8xMnLGfJRhzKwro/mcMQuooKH4IrOXL57k?= =?us-ascii?Q?4ZSPOejlFgmM9fOAsi+B0seDL2DFdQfyJF91fsl8xDPk/Sb84vQYGbaCQtTJ?= =?us-ascii?Q?Nk5UrdgEW994wnL2YsVXPSJLS3dPUyr8UweAM0AMfjbEpcY5+qkx42B3rJ3/?= =?us-ascii?Q?y5dcJXEVcmHj1HrWCIKaWIQBUZLAmEQZSUV0rOFqneb1s6d62dpolA3VG+EN?= =?us-ascii?Q?mu6Z5D/kdfY648Tv+W01naWUZQzG7TObnwEo/CDDgZBqQP0Kv9rOY4JE4ZE/?= =?us-ascii?Q?84cwnhclDRoL1XfU2FjKeJycCENIijQ+U8e7M0SG/yLJKe3BfqAXnxn2KDxN?= =?us-ascii?Q?2gBFWa1kZD5NIpE08j6OFieqltq2YvkqM6gjmPI3CzlNiaQEFZc4DrmaDsQ8?= =?us-ascii?Q?H3ZAl5Q12YIEgDnQt1rueWUj3N/3sw2+MPCqpf94Sv9PBTzHYj1GMQ7/zcqY?= =?us-ascii?Q?O8R1hun6PB+0UN/unroMceNWJv8J1K+JEtOpJxe2S4ns7UjZyWdGh/TPN7FP?= =?us-ascii?Q?9WdtSpP+pOK8ssJ5GvvSCrPEoENxBwmfGfjlh/Noq1Cac0GJMLW3ydfd7uuA?= =?us-ascii?Q?E/P+CNV3wq8CK9IosLmBW8Zf87TMjn5u12bw1DTk2g5KtXEPdaRt2OQNXodd?= =?us-ascii?Q?opPrd7NJC84FSrkBSqOFNlYxyIshveO3BOrdCVkcNna4vrRs2GwSeG4QmQuS?= =?us-ascii?Q?MQ/9BjXgLIeslNpbcT31N16t1dEHWG/0onQ5NPmoQIIx225w3Z/PNXN4OlKi?= =?us-ascii?Q?gwLp7E6avQO5o0AvtxBI7+XNw93uG2m2Fd5BZqIwMkh3gVNWAkMoxGB/Aoac?= =?us-ascii?Q?vjHgyjGqwGgmTQYyT0XsKFEpnLH8Bfx9awBJ7y0U9GHmvy1hyCijyhHm70W2?= =?us-ascii?Q?p2VYNTnVIVgyviXUmIV65k2IbjMcKMcRKDzKfM7TCHH5g3aZW0KHOYO8zU5R?= =?us-ascii?Q?LCKllm+aAiF3TCs5yl5rFaKKoJrf8ci/PWrT1dEMFhvJocP8tXCta9EiO3wY?= =?us-ascii?Q?QfAvntcur/UNymRsYUdPKG38s5++QRMU2rwEk59fd2xHNxc/y9TDGsbOTgZU?= =?us-ascii?Q?qbzwFt9ghH7UqU/HFBQ1XZhKAntlA6SzTob3cSKatl/dpKas0Vy6lx9LC5oU?= =?us-ascii?Q?VsWkOqRGC8BLtSqnV4mTnNlgnXWkBEnA3zThqnapFyXzuZHlXXMTzIssF22c?= =?us-ascii?Q?ozG7G7jlIWcdZVfmPZfvrgldl/Dzeki99rOXrqJDJ1rsyFowwX2pnjwG7tRx?= =?us-ascii?Q?151V0+sa+tcf/17Cj1TUbjZo1Ze0q76ApPVwmm88k9ifBSgRFtWZiEwq1QZ2?= =?us-ascii?Q?4Br9Q6mPFDjIfKv2Nz3IuoExsGLyaIlcX3tyP2LG85FGXhLRmS7SuM+Zuh7k?= =?us-ascii?Q?NR5p3DVPwQBugqlbvbM0LwmAjLqvZPL0Npr3Oeew8C5s0L4szuv8FJb+vxQU?= =?us-ascii?Q?RYIbw73p71eyOxTkUXe3Cq1P0Nx6y2rRhONJdz/+qQKme6BCAUxJfyidtTzq?= =?us-ascii?Q?cAC3DFuEng0k/M6mXVxMrN89ByCJjmMy9OBYL73wssFDlLPp4RAvG5f3YrtI?= =?us-ascii?Q?rNgX/NzQu7l6bixHbND8wTMhXemwkTKZkvltnSCIpPWgcfdqiZ3ZeCTQXAEm?= =?us-ascii?Q?zKUmmSiwr6chiw2cLH3g7UV1ze51JvfZ47V0DEWtamecMYKgkMIDSz7rVj4I?= =?us-ascii?Q?HrnwJAvwlgb6cZH0tsD3kkuSdgYCihKAvQkmmjuc96RJk3gl3B26?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 48a54106-07cd-438b-8c05-08deb5c40515 X-MS-Exchange-CrossTenant-AuthSource: CY8PR12MB8300.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 May 2026 16:31:03.8530 (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: 1RIQYjogNGT2ocSUotUWIwQXlYo1UumtjgLRlb1dfe4fyxKcrrLeRvBBGsfNH/xqUdB5nVIGeMm2PFRBXR7BuA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB8800 Content-Type: text/plain; charset="utf-8" In preparation for removing bitmap_print_to_pagebuf(), switch cpumap_print_to_pagebuf() to using scnprintf("%*pbl"). Signed-off-by: Yury Norov --- include/linux/cpumask.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) There's ongoing discussion about moving the offset_in_page() out of mm.h to a separate lightweight header [1] and bringing the rest_of_page() helper in addition to offset_in_page(). If that happens, cpumask.h should include the new header and drop opencoding part. [1] https://lore.kernel.org/all/20260517123428.1181981-4-thorsten.blum@linu= x.dev/ [2] https://lore.kernel.org/all/20260304012717.201797-1-ynorov@nvidia.com/ diff --git a/include/linux/cpumask.h b/include/linux/cpumask.h index 80211900f373..d3cda0544954 100644 --- a/include/linux/cpumask.h +++ b/include/linux/cpumask.h @@ -13,8 +13,10 @@ #include #include #include +#include #include #include +#include =20 #include =20 @@ -1326,8 +1328,9 @@ static __always_inline bool cpu_dying(unsigned int cp= u) static __always_inline ssize_t cpumap_print_to_pagebuf(bool list, char *buf, const struct cpumask *mask) { - return bitmap_print_to_pagebuf(list, buf, cpumask_bits(mask), - nr_cpu_ids); + /* Opencode offset_in_page(buf) to not include linux/mm.h */ + return scnprintf(buf, PAGE_SIZE - ((unsigned long)buf & ~PAGE_MASK), + list ? "%*pbl\n" : "%*pb\n", cpumask_pr_args(mask)); } =20 /** --=20 2.51.0 From nobody Mon May 25 02:42:35 2026 Received: from BL2PR02CU003.outbound.protection.outlook.com (mail-eastusazon11011000.outbound.protection.outlook.com [52.101.52.0]) (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 731E649690D for ; Tue, 19 May 2026 16:31:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.52.0 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779208273; cv=fail; b=buCTv08HtbtZLvMiArHFrHH3WQ+qAyQvEAWxYk0GPdFth9C8S/+9ADAq4YrO97gr0koXtFQhl0iRSSl9yci13hTzUiN62kW+kc3Ep7dzNf96HUADeQPs0eFBzB6TQTaD1/1DxlbK9KBXdEypJarv/lX/3obhlQAntWyGZMA7hNU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779208273; c=relaxed/simple; bh=a2S8mAxuIFSmsPFPQ4NyAXNQ/OzPHU252XRp51KD4ss=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=dYjJg92/lUljq+0D9Tj/21vNAhRnsMcdNvE9vWl/3425B+z1K2jdR8jb7x5BbkpDgc+5RNr+SeggI4NaLDiEem/6QdOzuS3PO3iOCBA2SvKKYhyfoEKcDvYlyueSQ9xs2uH7dGvloEIjFHyrKuRrnqIBHQ0P9GPXpzhMn2mJQBA= 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=EeWpjmai; arc=fail smtp.client-ip=52.101.52.0 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="EeWpjmai" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ms9luA6SC+q4pjgSJ3Cj3T0XkFRmmMaMOvQb1yIaZb4odWGQ3WfMVZmRWQAgfsqEztqWsUbbzBvyFub3O9hJtiQjNLEbJMLcPBu4L8VtcARNEykc9mgIFoz/oEx6AkNCTGkL7pe7I6wfFEo+6mnnCKUa0oi6hg7DuYHvwPRSQd7Oc5/2/K/1cgTjeMGYVYMDhtROwiqSHrQxoUUxTsd4y7CXjnq7LrbQb56WWQOasqKIHtfIaRftjFQVZGxRnkEcRQi0UwWUWWqf11ABGFs+I9tbX2N8QwW8K/ZkA2lx1jLLFg4o8pyb+fHLaUMwGzoclR9+Sb4GyXx8Mk+RS0vAjQ== 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=B+a3e/pAmABu4okmPPsBD7rGsOjP+LIXb7OVqFEjrHk=; b=f8viJRZLnudqSgqBBjs9ODD2p6pEgDnkAbHoMYCMx/ckgpBvrPFu0qmfoc25S4lJ13P6f0PH38/K+iI6jrQlTPJxDV+KFHyG66bIU7t/rWNn5xkTvf3mXj4dC9W+zEtpK+jecNaN2y0QAshrpPLBRqK3ydytuWhqFdxnawTpjFkG9MDre00fgzG0oXI9QcJ8cU0I8LhkvSk/6xfO+eweP7L0T9Lw2pTPOTio8CBVqO64W8edzp/TcmMtyTvcE3CDCslZL/ksYW+p/283ZJ5ukDnCkUROq41P5R7Vv53jcwC9HhqgSpx++PAQt2S1jELF3/Mf/4Bel7e6e4DiK44cbw== 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=B+a3e/pAmABu4okmPPsBD7rGsOjP+LIXb7OVqFEjrHk=; b=EeWpjmaiOiPrDJ6LcVqpKw9SQSpGoOF+C06r/RfiqLGGDt6k00fiif7Q1kMyhEIq63jxyVbTiceFExN4RZgTSziKKUmE+xqZXxrS8Jk7pgaxc/2VpzKVMluftecE0KZukXJ8WqA3SvB9566GC7+VE/BxAu0Ibzfdk5J7T/RJFGxv2OXsK0B1oZrHpzD8Sh+ezG1GNUNR5EvnLs3y5vQgBCUtNaUfUp5IH0zCiin+eyizhOPqz+Pv3iQeOeSvFkCuSmZ2BAclygEHcrkInjjh7VgE36gB3RNONbkkzR1plAUZmCeYi33wYP+uJkMKpXGLubHvIHjcQWAwqhTijUAmtA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from CY8PR12MB8300.namprd12.prod.outlook.com (2603:10b6:930:7d::16) by PH0PR12MB8800.namprd12.prod.outlook.com (2603:10b6:510:26f::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.24; Tue, 19 May 2026 16:31:06 +0000 Received: from CY8PR12MB8300.namprd12.prod.outlook.com ([fe80::ce75:8187:3ac3:c5de]) by CY8PR12MB8300.namprd12.prod.outlook.com ([fe80::ce75:8187:3ac3:c5de%3]) with mapi id 15.21.0025.023; Tue, 19 May 2026 16:31:06 +0000 From: Yury Norov To: Yury Norov , Rasmus Villemoes , Andrew Morton , linux-kernel@vger.kernel.org Cc: Yury Norov , Thorsten Blum , Lorenzo Stoakes , "David Hildenbrand (Arm)" , Andy Shevchenko , William Kucharski Subject: [PATCH 2/2] bitmap: drop bitmap_print_to_pagebuf() Date: Tue, 19 May 2026 12:30:57 -0400 Message-ID: <20260519163058.953690-3-ynorov@nvidia.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260519163058.953690-1-ynorov@nvidia.com> References: <20260519163058.953690-1-ynorov@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SJ0PR03CA0343.namprd03.prod.outlook.com (2603:10b6:a03:39c::18) To CY8PR12MB8300.namprd12.prod.outlook.com (2603:10b6:930:7d::16) 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: CY8PR12MB8300:EE_|PH0PR12MB8800:EE_ X-MS-Office365-Filtering-Correlation-Id: 174ce62e-e367-4499-dbf2-08deb5c40692 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|10070799003|376014|1800799024|366016|3023799003|56012099003|22082099003|18002099003|11063799006; X-Microsoft-Antispam-Message-Info: B6y8wCvkhMFXrt6EVt+3rm1JHdkk+yzJmmccE4Wp1BAT9CHwhFJZ1OzoWWjnLytg6Fq8EQ7uXDcPnF7wxb92GcT+A8mQc3FTjPMKNRyFPeFbIzBCNXh8pKFeujkijRU83SzsDtC6JvOQ0A7sPZk2otNJ1P/JhrEG2MaUGTvS+ZZl3Y0acDih9TtQBaAtoOzZLp1JNKWiXih29MefURGKqdbQzhdv3fewlOL1eIXhvMg6w1EQX7DpPFsqnTwqxTtkgCA1Yaikh0QmqvNHNA19I0f1vhiTCVyGZtwE7IhJMCYdNPBDO2/C7zISPnCKeO0Cc90kb/K/2LBOCYoFg/9GNUTis6wH7YdLuWeA6eRUZal+cyoqwA7gSBd2ArIZE1YxDoEn/apdq3HPu9sMMFsDEfLYed35GvZE4/0Qu76/SodYGaE44G7ta8qXfd+ER2efJvmbgOoRHeGuoBvm01h5GHbdwgcv7KNjs5/pFnS4YilEwEfq/klYhlw4Iy43I3JxvJgHOhWWrwpVGV1CeCExMz6U79gUfPHkb3mrIdWFL1ZNfKvtAJnGIlk1aRzv76jID0gnuKARKkuPaIWKTriIZx2AziZdYNdNL6rMbDTC6ATCDKhShEuYd5HXz+qAZSs4MqAR4yN21MJK+zgu5NNfvriEX5AByf2oimMPN+dBoXt8rTP8ZpTDK96xTQY+wCvX X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CY8PR12MB8300.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(376014)(1800799024)(366016)(3023799003)(56012099003)(22082099003)(18002099003)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?lqrf8T08tF3pqkYeD8Y/2S+Lw5GKkLPmLkUyi/fSCLBtb/EL0aI6yjawQMKz?= =?us-ascii?Q?hDx3m+/r2TR2kpKwUEFAynWWyuGtX9sUJjrJFI7qGLMAH0B7jawSiarAbzzj?= =?us-ascii?Q?cSjeHDw/yIeR3O3NthsZpgfMiYUyLR1lL4xqnVMQQwXBfVShCg6I3Fglh9mH?= =?us-ascii?Q?qsT56Dbx/8FbyC3MkV7HxRstep3HDavWvr1W+m9V2JRcJTH1EZT5r5p3zNdv?= =?us-ascii?Q?V4qJtWttp9cVT1vXw7wW/m3+38PLu8Ujlu0tUgub/PO+05n4V8HswUN+GC04?= =?us-ascii?Q?jm60+tGSIgFdVsAPafxprVvu8BbuN8Il5fzG6VHjPYqmYOjYzTa4Yo7pr6r9?= =?us-ascii?Q?zgSVfPMNkL8+DS4CFchbT8f09NaBtAZWQAPQyAKrUbdC3Ph5l1Pu07Zjiv2B?= =?us-ascii?Q?Eg9arnEIIhTvUicmdtaSL4zZNR+ofek/wfAw5D4YXJpztFqUj3m51yGE0WfG?= =?us-ascii?Q?c9SJ1puKuy/6FWM+r7pMtCwUMsyv0k9wKp7kalvkKWaM//xKNXvVb+Oe9P2w?= =?us-ascii?Q?MTiCDbJixDM1uy/xRTCEn+h1rTsIKfiUhWLSX+QdaUBXKwrcj76lL9nQF+8b?= =?us-ascii?Q?BfHtsSiSLIRvi9TKCNN31DZzHE34R03YmNLYX/nZG2PO/DzeQoiusBeLd0G7?= =?us-ascii?Q?16P7V2Th+JTMSkUa1IzwKxvroDooy5YgVZw2cIugMxMtlEq5k+8ZywxXdelp?= =?us-ascii?Q?r0/W27fE9+HZgKb2Oh+65Yemy2u8VWxD8RegNAv/GQ5QAv2pJ3IDPrl3cJlC?= =?us-ascii?Q?WKEcovq4xjVA8qyqCwxUmX2yyX7L2zhYqAybWnQNfH/sJagJRdqUb4moEdkh?= =?us-ascii?Q?n9cdDKKsqq61d86Ihjs8IkPhsRXc54IImKaI8YxHVzCMP/VSWt4PXgntXows?= =?us-ascii?Q?FxN5SwUjcvyLWcoscX6ULr+GBBvSXecRN5vTknzzvJK32xzavsYa6Alis4mj?= =?us-ascii?Q?uHSxaCOsTaIZsf6yt+03pdS8TcEnC7T9mRyKhXxZMxkZoE7FdKIZAhURh8X8?= =?us-ascii?Q?uyBGOY2bcolubP0zf7Iy4MUdDJX0Avf5J9fzGuVnskNBq6JE0Km9uBZcZvMd?= =?us-ascii?Q?r4l81Q1H7nqGnFRnAl/bmjpBIROSaaapyJ45sozKEzaHmmap5pNiNMAPniJr?= =?us-ascii?Q?NykUloHiWMRAU3REUtQ8+77Him9zzJYYxydROYJcOS0ZTrlMXRuV05rmsen3?= =?us-ascii?Q?9XN/b+f0+CIBPg2/E0ZzUkvJnNv/+CJBkgEymnKCIHVsprw2P/EtFuvNR0tj?= =?us-ascii?Q?53orKI9iDHh3S27U5YQYRRWE2ibzHT2pr360N7yA2c4XmFn2b51WVTQsmIf8?= =?us-ascii?Q?TSbWYw2uMKXEpkYcXRSr2D1JQbXDsKrb0jnlvgjSvIiPgGcDIPOGgCobCsVk?= =?us-ascii?Q?H+N2xMo9rSI0SIsnOWzKRg6oChhYa893FBnrwp5N2KGjHjUrLbom8xQ3vtpM?= =?us-ascii?Q?PA8PI8Z6oxMsZMC3KHZ7dqCPIP0+19ntECJxTuA0zl9/shy66/j8DY02bHFa?= =?us-ascii?Q?oa3nIn34l7TyH/MUdC/23ISqxSWjMyGY14z5oX+geqxii4lz0axJqeRXGqW6?= =?us-ascii?Q?ThcjAsocKF7f50k3gNdpmKYK+eIp1ttFvKBIxJ3Xu8u32IPmqEr05RUDJBCx?= =?us-ascii?Q?5h7JdafFBwfL33a8kraCjy6Cmm8Nqbp0zuPJlAp5u17vHOSvvfGyGorFnWgl?= =?us-ascii?Q?/LjJNJR4qNzOIo2xXFkQ6/jkT+5VjXyeHyDdoxqozXp9WhnaA4lq2weo35za?= =?us-ascii?Q?VonlWfzaX2BzbCKlBV1zD/FfkQe4GllWIT8ydn+PRccdUlFe3i1E?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 174ce62e-e367-4499-dbf2-08deb5c40692 X-MS-Exchange-CrossTenant-AuthSource: CY8PR12MB8300.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 May 2026 16:31:06.4521 (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: pNN5ClTCE3wdV/EAxdY+b2bf1e1DoFU39xVvR6VtfJ/Zy26pV4LNLCfQr1zxvgK1Z6Gbx4VhbYS0DoVUvm0meg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB8800 Content-Type: text/plain; charset="utf-8" Now that all users of bitmap_print_to_pagebuf() are switched to the alternatives, drop the function. Signed-off-by: Yury Norov --- include/linux/bitmap-str.h | 1 - lib/bitmap-str.c | 42 +++++--------------------------------- 2 files changed, 5 insertions(+), 38 deletions(-) diff --git a/include/linux/bitmap-str.h b/include/linux/bitmap-str.h index 53d3e1b32d3d..abe7a69a846f 100644 --- a/include/linux/bitmap-str.h +++ b/include/linux/bitmap-str.h @@ -5,7 +5,6 @@ #include =20 int bitmap_parse_user(const char __user *ubuf, unsigned int ulen, unsigned= long *dst, int nbits); -int bitmap_print_to_pagebuf(bool list, char *buf, const unsigned long *mas= kp, int nmaskbits); int bitmap_print_bitmask_to_buf(char *buf, const unsigned long *maskp, int= nmaskbits, loff_t off, size_t count); int bitmap_print_list_to_buf(char *buf, const unsigned long *maskp, int nm= askbits, diff --git a/lib/bitmap-str.c b/lib/bitmap-str.c index be745209507a..bbdb2e9ff2c2 100644 --- a/lib/bitmap-str.c +++ b/lib/bitmap-str.c @@ -39,32 +39,6 @@ int bitmap_parse_user(const char __user *ubuf, } EXPORT_SYMBOL(bitmap_parse_user); =20 -/** - * bitmap_print_to_pagebuf - convert bitmap to list or hex format ASCII st= ring - * @list: indicates whether the bitmap must be list - * @buf: page aligned buffer into which string is placed - * @maskp: pointer to bitmap to convert - * @nmaskbits: size of bitmap, in bits - * - * Output format is a comma-separated list of decimal numbers and - * ranges if list is specified or hex digits grouped into comma-separated - * sets of 8 digits/set. Returns the number of characters written to buf. - * - * It is assumed that @buf is a pointer into a PAGE_SIZE, page-aligned - * area and that sufficient storage remains at @buf to accommodate the - * bitmap_print_to_pagebuf() output. Returns the number of characters - * actually printed to @buf, excluding terminating '\0'. - */ -int bitmap_print_to_pagebuf(bool list, char *buf, const unsigned long *mas= kp, - int nmaskbits) -{ - ptrdiff_t len =3D PAGE_SIZE - offset_in_page(buf); - - return list ? scnprintf(buf, len, "%*pbl\n", nmaskbits, maskp) : - scnprintf(buf, len, "%*pb\n", nmaskbits, maskp); -} -EXPORT_SYMBOL(bitmap_print_to_pagebuf); - /** * bitmap_print_to_buf - convert bitmap to list or hex format ASCII string * @list: indicates whether the bitmap must be list @@ -101,7 +75,7 @@ static int bitmap_print_to_buf(bool list, char *buf, con= st unsigned long *maskp, * @off: in the string from which we are copying, We copy to @buf * @count: the maximum number of bytes to print * - * The bitmap_print_to_pagebuf() is used indirectly via its cpumap wrapper + * The sprintf("%*pb[l]") is used indirectly via its cpumap wrapper * cpumap_print_to_pagebuf() or directly by drivers to export hexadecimal * bitmask and decimal list to userspace by sysfs ABI. * Drivers might be using a normal attribute for this kind of ABIs. A @@ -111,18 +85,11 @@ static int bitmap_print_to_buf(bool list, char *buf, c= onst unsigned long *maskp, * struct device_attribute *attr, char *buf) * { * ... - * return bitmap_print_to_pagebuf(true, buf, &mask, nr_trig_max); + * return scnprintf(buf, PAGE_SIZE - offset_in_page(buf), nr_trig_max, &ma= sk); * } * * show entry of attribute has no offset and count parameters and this * means the file is limited to one page only. - * bitmap_print_to_pagebuf() API works terribly well for this kind of - * normal attribute with buf parameter and without offset, count:: - * - * bitmap_print_to_pagebuf(bool list, char *buf, const unsigned long *ma= skp, - * int nmaskbits) - * { - * } * * The problem is once we have a large bitmap, we have a chance to get a * bitmask or list more than one page. Especially for list, it could be @@ -149,7 +116,7 @@ static int bitmap_print_to_buf(bool list, char *buf, co= nst unsigned long *maskp, * * The role of cpumap_print_bitmask_to_buf() and cpumap_print_list_to_buf() * is similar with cpumap_print_to_pagebuf(), the difference is that - * bitmap_print_to_pagebuf() mainly serves sysfs attribute with the assump= tion + * scnprintf("%*pb[l]") mainly serves sysfs attribute with the assumption * the destination buffer is exactly one page and won't be more than one p= age. * cpumap_print_bitmask_to_buf() and cpumap_print_list_to_buf(), on the ot= her * hand, mainly serves bin_attribute which doesn't work with exact one pag= e, @@ -158,7 +125,8 @@ static int bitmap_print_to_buf(bool list, char *buf, co= nst unsigned long *maskp, * * WARNING! * - * This function is not a replacement for sprintf() or bitmap_print_to_pag= ebuf(). + * This function is not a replacement for sprintf(). + * * It is intended to workaround sysfs limitations discussed above and shou= ld be * used carefully in general case for the following reasons: * --=20 2.51.0