From nobody Tue Jun 16 15:54:20 2026 Received: from DM1PR04CU001.outbound.protection.outlook.com (mail-centralusazon11010041.outbound.protection.outlook.com [52.101.61.41]) (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 36D7A3B7B99; Thu, 30 Apr 2026 21:14:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.61.41 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777583645; cv=fail; b=HbSm/AwIbJXt5TW0P3xN09UfAn6mx2/xyJ5hcH40tkel+Ztct+GE/NjJEC/IvTfAYNgvanZv1c1dFytQEhDC/BbVaCuF2qZ8xdbFNhN4gfYj92mVhh5SKCN0SYIgoqr509Yz+IhAvrmNF0QBnrUnxhv9U0ejj9FuNsOM0YIh9Ic= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777583645; c=relaxed/simple; bh=sgzzQLtWVS75+XSiorjeWUt0EBkLkRPi2/kscZNVLEs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=nv/fIzUS6cBZK2HqL433HIW93Rh2qeFPUOTpXvsleW8WoY+Z6E+KV8z/pFMwqrahYiMqtK1PbgANCkmDXbB+71nZLP1eit+pda/iCOJC/lnVjvhAT7RU9osqaKh4xT8ZqXCXShGNixUbEqVm+Udv2qKrrQTbBWTs5ejZQikVxQU= 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=CKqsOcAw; arc=fail smtp.client-ip=52.101.61.41 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="CKqsOcAw" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=O4kUaqbNDgf13jrH0qLbRTJ9UDJoxYwzwBkPeUggAGesJlIzlqbnpqWk+V8mPdKnPtFbhYTS7rliptEunoa6zICh6IthOx5asQo4ZM0LPf94JqiWcpTX2Ln1Rk5u+zaUAmHNPoBw2BKynxrU5bGKgX8Awn8mbCkBbIHfLYM0VRQFT7e4yVOJJxjZV++lTH81Gd/BE8/zT/gv1n5FF+Im/MXmmOgLu+OUdkHWfT5XE6ZKqib6zb8pfwrdbEg9BQHbUdzYlJsHIXyYKbb7nLs7IrnwDylalTIIoRxErJgJrWlMkEfACFBVW1OuvVyXqosbknM1lLPASKThOgh+yvgn1Q== 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=BX18IKY6Ec8zxy3Kj2X+Pof7LVTX7pmE0onNUt3V+OU=; b=grt3dPtk6CC6jg/QWkQ2afPatfELWiRcK1pFmNvz/RV2d+V4jRnpz9BwSFoKSmR9v/dwYBWNS4wAPdujoSi8PF10w4IeW9FXkgL+HyNXeV7xsGoO2M+Y83y/ZnUF8ZbHwJF+xNoYrZL982sqNlYqRR9TB9MAlG05z3vpaiLiORPaLc50EnOBE7Ci1neWMsoz7Rnqd63AYxzCPyaKesg5Sm2SHjTbb2Nwt+kNC5he63OBcJaOZOgW0qJfFAdMwreybKxILm3RtQz2Lvt6UskisZJLNpmMbFDnv/B8mRCwaGsQAbM1JLRRh3Te9vGFNFcXNRtG/K4HDP75NusvXARSSg== 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=BX18IKY6Ec8zxy3Kj2X+Pof7LVTX7pmE0onNUt3V+OU=; b=CKqsOcAw4dBw72JQ6wMkOVxw1XqDYgjHnCWSZZgac2939pMqG2FlOuveiT8TNQJe5WexRCg1QiBCBNEhf9Ep47Ne9rLqxOtvNPmuQXPAUTFLnzw5Z3I+wZFnZMM+mjsV8LCEklL6SGN9WeIWcQsLjpGPlqUPW2zgEPHg8a1zEMMPGndhUh8ER59Ad6QJNSSKyYjI9YQgUjS6qUdthHdnN7+WL8ohBeF8+xoQgiiXYY0B0N2ZNyklhjeMHdMX8Xz9iQLYJfFH7yBFV/fWHZDJloR3Z99kie3xAEfeOF1xYrx5eDgE3TA0OCzHzi2kSd6IECpirqF5riUqAg6TTluCJw== 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 DM4PR12MB6256.namprd12.prod.outlook.com (2603:10b6:8:a3::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.20; Thu, 30 Apr 2026 21:13:58 +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.20.9870.020; Thu, 30 Apr 2026 21:13:58 +0000 From: Yury Norov To: Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , Yury Norov , Rasmus Villemoes , Arnd Bergmann , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Andrew Morton , Alexei Starovoitov , Daniel Borkmann , Jesper Dangaard Brouer , John Fastabend , Stanislav Fomichev , Jinjie Ruan , linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, linux-arch@vger.kernel.org, netdev@vger.kernel.org, bpf@vger.kernel.org Cc: Yury Norov , Nathan Chancellor Subject: [PATCH 1/6] lib: include crc32.h conditionally on CONFIG_CRC32 Date: Thu, 30 Apr 2026 17:13:45 -0400 Message-ID: <20260430211351.658193-2-ynorov@nvidia.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260430211351.658193-1-ynorov@nvidia.com> References: <20260430211351.658193-1-ynorov@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SJ0PR05CA0163.namprd05.prod.outlook.com (2603:10b6:a03:339::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_|DM4PR12MB6256:EE_ X-MS-Office365-Filtering-Correlation-Id: 1df29fdf-3d5b-47f8-2447-08dea6fd64c2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|1800799024|10070799003|366016|18002099003|22082099003|56012099003|921020; X-Microsoft-Antispam-Message-Info: 4NT2RlD+voJPmPr6LAUh7W9dbWXWEeJ3NySnmFK5xrgpHk+0xwLQZoMDvD7hJOXesc71tt0VAV5CeQvBpUhdWARlPJ5P7j0MLOrZJ+hEzV4Wbh5ED9/w0KTx36wdcf7duBM43c2PQmesgZb/VLqNDA1xOEgJCT5hVwZ+ct+yw30GFsmYUvkIrG1gUm0q0wkDlJYHKxUauaEqw+sUlOhY63ViCaA0j2viTzJ4vI3m/1VGNW+T5OmkoASzZYEe4yjRpQHHXN+US2UAgOshokf/acHxCTw0VmomyWf3jW/2xJaMfUwnh4LbKo9gEQ0KU2j9GezKaOd6wqacxVhi5qTFbmRVxqziVRNVe1//bojYHW5Q1o0FhvEnu78JsxmeArIPoFaBofrbTQt8aekRQkD4/yu5Ra1zIB0HtAF0DMphFFVvnxVmL6Uih/jwxM8uMlj8vRWEtJEXKH+Z6z+um664nc1s8ndAyivE0YYz5lmBe2nTgPtkw89AI8nG/MmRj/JKOP973dNNWO6DWFS7CDdCOdM5Shej/AQhbLDxs5QMEVstuHocyg2zBOz0wUAXEinueVgb2caVdPogv6wsLVjeg0UnQW+65KVkBqVGXRU6p7DmVM19KkrHW+SsbQhqfJ5nSuuMFz1XcWTWR7ecJxFwyXwSalLzbzwagmrEd6kzPrSSVSiNHfHEp32Wk07LvkLnvJSnvZXErop3jr8VA5BmD8LaH7cwYyGYShbkF+Cf75o= 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)(7416014)(1800799024)(10070799003)(366016)(18002099003)(22082099003)(56012099003)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?KHTdN9/HbgU3gjwirwZw94As/R0vG03uIm+Z9NJt0P6ONUscdhSvpL6Y0W0O?= =?us-ascii?Q?S2DKUG7tEzCTzjk6pVgvi4n8ea6F0plxaKo+Fpoh15XTz18HtwoShsgaarKk?= =?us-ascii?Q?TYXu3aWMFpVhvytAhTyoM1yAprIrT39xbuSA6h5XmWAeFkr//K+abtpIBQKb?= =?us-ascii?Q?MHXa0x7ddpnEN23l5LF7eClQBnEH5fDBrOTs/FIzhGqMeimQw5vZgsgWnsaB?= =?us-ascii?Q?arpe/eq+t6Pcnsy8R+WrefGVQOQG40Ik49AngCgaNvbMV3fm1ZQzJF/DAxbu?= =?us-ascii?Q?zjJT54sCk7CyZ8Z37TLZeAIsmiWa02Wufh55a8QmkNaCEb1SfKnMF6zdtQ0E?= =?us-ascii?Q?4WpCYDfsYPuiQR4v+I/0gAAL+y4zrTjGrssdvPLaBzpCAZy9OHVuuYZUjTLu?= =?us-ascii?Q?gUwJEgQuKLQcKimMujn905kh1XedldznKMdfhBPVNJkkhRJaUfyElLlskulq?= =?us-ascii?Q?BuHZNnDNVBGoyOb8IF/oDfE2400/ESTIhix8wcGggoDWmR8FirFHa5nyYUKE?= =?us-ascii?Q?KMnEwv1brIjJP4oRemRvkLR8KP/cWoMUcS6VAQNegq77VjEcAs/TJdeWP3ws?= =?us-ascii?Q?HFTcklMZBkm1AmZriYC2obXB6Q2wkjj2Kr+FbPX9k8yepvPQMMpdVX2hxKpb?= =?us-ascii?Q?gYsaveH6hnhcY+TmFEgfrPrHhWeeOGpF4JCPWzsi3duMGue+2W7hX+xgg9Bu?= =?us-ascii?Q?Nv1g5xljK64dpnofz6ZwPqMXplQMh3Juffz0US2hSxIx8AZ9VZBfFOX5UORF?= =?us-ascii?Q?tG3PKseD3LqAe2RmZrVDKxlGfQWdubF/6c12x5KtOvmAjBUdjUFaiymId3gc?= =?us-ascii?Q?hgVm404LmaE2KVLWGhX56KJGeBUGQnLHWskmlPfy18lPYc8xmH3Zznerb++v?= =?us-ascii?Q?MUhcnTsfGl2m8m8zEBARBk2e/wyKb566k+VjNjeUzGPHpPZmoq07/t9g768c?= =?us-ascii?Q?NEazH9FZBCKMtglEU4BLxbnJVWhNU0rlcpELzg9wTNIgEmnOnpZN/pDwWiYJ?= =?us-ascii?Q?jDH2znm6rsrecUXd73sXOZdlJSgtr3rlLz9l9q9TKT4YV/KoxCHvBYX/f9vg?= =?us-ascii?Q?VCsaYMLjoMon+WVxz6oB6fxoYtGhbvq7q5udHIfBEoyqkOx6JCh4C4Igt4+l?= =?us-ascii?Q?pf90eYWEx82994cpOx3RbfEvVlvGKKQt1uHAkV4lYU/MwPF9ZChOIEb+Ssqx?= =?us-ascii?Q?woTEnpjWdt/5jZvWNQVNyekc/njI3S24p1BPYXSw4BLRiVhXCaKGL5InsFRp?= =?us-ascii?Q?7y2FxBUO9go3f2efTp5zEn0tw6KCml3GBY1bpbEIjI0kVOa0B//U0gnnVkib?= =?us-ascii?Q?Ofyrb36/AiLfyvmG0e4DRh5YgATlziMgz+REgvel1eVQmc1zpRk8USB6QUv9?= =?us-ascii?Q?AsWA/w2wDWVBwXhPVZOZY2QAG2MeUdOpE2EPny/FaS5xscIu0zVXcrSoAO/9?= =?us-ascii?Q?JcIWhpEEWvviIEB4HVZirfbLsSllmHm5tR1XMNvIV7CrRy0cW7SbbQfEocCN?= =?us-ascii?Q?kdoLPxw8CqPw0jrpglC1zc7z+bv5vz7VS8tD5m7Lp4/UVVCBSJ/N9DkxcPNS?= =?us-ascii?Q?0RioBeIjLdTa0TWdLsMeLTn+XZMYmbuZnPFbjAhEWr/GqbTSydi35NxqNVS7?= =?us-ascii?Q?udivivXiga3sQ6d+yW/XvQiSCwmvnhPavHCcoeOLgYnvIULnbVyeJfCbLsJz?= =?us-ascii?Q?JcjtqhJogUVbr8DIm0bKEebIP8ZUWl+TyhCssZP6vyusNPFrHxCWam8Wjzc6?= =?us-ascii?Q?rF56DWwpN0jmi6IG8NbMtuLXjzgFX0mPi1yto4Hr39odctXuZUQt?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1df29fdf-3d5b-47f8-2447-08dea6fd64c2 X-MS-Exchange-CrossTenant-AuthSource: CY8PR12MB8300.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Apr 2026 21:13:58.3457 (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: HwwCQtMAXsLlptAKPKt+FAViSZ7g2KGLsTxL7MKWigjwmxpH0c75J0JeIV0tEJDc4aUuxTFBy0WvfdU7y9W7Bg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6256 Content-Type: text/plain; charset="utf-8" Currently, bitreverse API is either declared based on CONFIG_HAVE_ARCH_BITREVERSE, wired to arch implementation, or if the arch has no bitreverse, based on generic implementation. So, regardless of CONFIG_BITREVERSE=3Dn, the corresponding API is always declared. If that happens, the functions become declared but not implemented, which is an error. The following patches of the series make it possible to have bitreverse API undeclared if CONFIG_BITREVERSE=3Dn, thus spotting the problem when building the tinyconfig: $ make -skj"$(nproc)" ARCH=3Ds390 CROSS_COMPILE=3Ds390-linux- mrproper t= inyconfig fs/select.o In file included from include/linux/crc32.h:6, from include/linux/etherdevice.h:23, from include/linux/if_vlan.h:11, from include/linux/filter.h:21, from include/net/xdp.h:10, from include/net/busy_poll.h:19, from fs/select.c:33: include/linux/etherdevice.h: In function 'eth_hw_addr_crc': include/linux/bitrev.h:16:20: error: implicit declaration of function 'g= eneric___bitrev32' [-Wimplicit-function-declaration] 16 | #define __bitrev32 generic___bitrev32 | ^~~~~~~~~~~~~~~~~~ include/linux/bitrev.h:67:9: note: in expansion of macro '__bitrev32' 67 | __bitrev32(__x); \ | ^~~~~~~~~~ include/linux/crc32.h:107:36: note: in expansion of macro 'bitrev32' 107 | #define ether_crc(length, data) bitrev32(crc32_le(~0, data, l= ength)) | ^~~~~~~~ include/linux/etherdevice.h:292:16: note: in expansion of macro 'ether_c= rc' 292 | return ether_crc(ETH_ALEN, ha->addr); | ^~~~~~~~~ make[5]: *** [scripts/Makefile.build:289: fs/select.o] Error 1 ... The current unconditionally enabled codebase doesn't use CRC32, neither bitrev functionality, and if generic___bitrev32 prototype is provided, the compilation and linkage phases are passed OK. The only header requiring the crc32 and bitreverse prototypes is include/linux/etherdevice.h. Thus, protect inclusion of corresponding headers in the etherdevice with CONFIG_CRC32, together with the only function depending on it. Reported-by: Nathan Chancellor Signed-off-by: Yury Norov --- include/linux/etherdevice.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/include/linux/etherdevice.h b/include/linux/etherdevice.h index df8f88f63a70..d35be27a91a5 100644 --- a/include/linux/etherdevice.h +++ b/include/linux/etherdevice.h @@ -20,7 +20,9 @@ #include #include #include +#ifdef CONFIG_CRC32 #include +#endif #include #include =20 @@ -281,6 +283,7 @@ static inline void eth_hw_addr_random(struct net_device= *dev) dev->addr_assign_type =3D NET_ADDR_RANDOM; } =20 +#ifdef CONFIG_CRC32 /** * eth_hw_addr_crc - Calculate CRC from netdev_hw_addr * @ha: pointer to hardware address @@ -291,6 +294,7 @@ static inline u32 eth_hw_addr_crc(struct netdev_hw_addr= *ha) { return ether_crc(ETH_ALEN, ha->addr); } +#endif =20 /** * ether_addr_copy - Copy an Ethernet address --=20 2.51.0 From nobody Tue Jun 16 15:54:20 2026 Received: from DM1PR04CU001.outbound.protection.outlook.com (mail-centralusazon11010018.outbound.protection.outlook.com [52.101.61.18]) (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 6ED473BC69C; Thu, 30 Apr 2026 21:14:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.61.18 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777583647; cv=fail; b=aHc87KUXRlfhAnpqYjoLOtiiPsX+awF8kr7ia88G7q/83YN7muzuN8+tPtdqpsqk2kdzXUWNntbkGR6WFk+vt5uoYoKJR/uRcm18+CXk8OotEARJr47OjcGtrNMF9MsHcDmhkmhJ9YFGDnCyt90uJsi6Acz28tnlBZtqw8tx0oQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777583647; c=relaxed/simple; bh=ZZ6SogvdX3RuwHuiSbSm8EXeGFVLg43DXgv5SXzLXJQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=AHvrkA6nTa5k+SLifLsl/1DIcRZ4mmD2y7lQyAFcTE6rhQL6jbPbfcMdYXBqiPkp1kSRmP0tklQ7P5wc391OTbmWnoTdG3KloaQpgK08C0ZmE3Xu3+fJwb1C5UR1V4JaTzZ7fZcknJ6gu8QqNf+CxJnUZqKd/WOzYhC/qoj75Ts= 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=b6cJrFKD; arc=fail smtp.client-ip=52.101.61.18 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="b6cJrFKD" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=avRTYxa5P9T+7VtkK8mV+r73zZgrFApJV2eDZE4hIRv9xWoXKyVQA1xx6CPIpTc946x7etCRk1+dqKhvuxldjl6TTCpGkYE9wgpSNlLKTtsp3kikJYQfxWjBUjBNRdPvk0DBln+0MVcMma75ZIoYHqCoZx5Z6m2albGJKUNis0QEHDaZSggYhLSe1yrlniCGcqDX+NSy6Nhxsr4474BILA2cYUiGjVhkY/5kFt8AvCeGsitkL4ffTMZxueDBN8VT8CHKqXrmZUHEbBJ5zF5LEBgNVnMeJmPz60pxCXhksK7skUIHg6JEDglcR7cBoHX2pUFFgLjfjR4FoTTKuG13cg== 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=RoJww6/Z1UU4ANdDeelHxtmtDjgOW1yfdaDOscA6NK0=; b=eSEV+BuqDezQRXNXKUqoEf3axpaXtTyKZ6iyDwE4pEi102nK4DaE6qrxxTQBl9KD03pBokpCNY75KNujLkUgIKfkhzvBkSHGE6gZvZM9faYnXRJwiuKa/WfOFtOUqF0MuL9AUl01JFa1JwcjXF9gfV8cWxDj/JlnedCUU9Se01M4i3DDMb89uz2ZG+TVJZVv7nsIohVh6yiyLWz+84uEZAqgAtLR/exmCeRtJWgDfW8So9NanrByNmzfYubk21fTI24o2ZW1+6rgriGbCocSuadkGM41JfR1pfHCAKt7ltlC5r0xs0GZpABcmbwFePF8X5hWPf6bEXWvkPP3MApGyQ== 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=RoJww6/Z1UU4ANdDeelHxtmtDjgOW1yfdaDOscA6NK0=; b=b6cJrFKD+A9AduRw70jWQ+7c0gEaHSzm3eNb3yHxoaNXD1nvkqLR0Rx+oCJiNzbZ71QHwLrITTVCBUvb01McCIomLoM2FT8IBu/snv/4KDaJ4Vdlanbszt21x5AydPGahVdU8Yn/r86R0Y6wVullu4wWs9AWbPIbKxJQJxLVUIv9uz4vV0JAplp0CsTXjRt1cnppDWF2MA2ftBEbZeuxx7rCvnvrKKgSWGSuWmed36UidswcSfS4Ag7Kg9f6s1Mw3t+0xHC5CiVtVL3fUHlmlNwuorAFi/Vewfb9W6CArZnUUcyxaRpSoHGQUzcHQYK6cgJ/u1ruQOZhSHDMPJfuyw== 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 DM4PR12MB6256.namprd12.prod.outlook.com (2603:10b6:8:a3::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.20; Thu, 30 Apr 2026 21:14:01 +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.20.9870.020; Thu, 30 Apr 2026 21:14:00 +0000 From: Yury Norov To: Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , Yury Norov , Rasmus Villemoes , Arnd Bergmann , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Andrew Morton , Alexei Starovoitov , Daniel Borkmann , Jesper Dangaard Brouer , John Fastabend , Stanislav Fomichev , Jinjie Ruan , linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, linux-arch@vger.kernel.org, netdev@vger.kernel.org, bpf@vger.kernel.org Cc: Yury Norov , David Laight Subject: [PATCH 2/6] lib/bitrev: Introduce GENERIC_BITREVERSE and cleanup Kconfig Date: Thu, 30 Apr 2026 17:13:46 -0400 Message-ID: <20260430211351.658193-3-ynorov@nvidia.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260430211351.658193-1-ynorov@nvidia.com> References: <20260430211351.658193-1-ynorov@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SJ0PR05CA0172.namprd05.prod.outlook.com (2603:10b6:a03:339::27) 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_|DM4PR12MB6256:EE_ X-MS-Office365-Filtering-Correlation-Id: 54d8eeef-b5b9-45c1-29d2-08dea6fd663e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|1800799024|10070799003|366016|18002099003|22082099003|56012099003|17096099003|921020; X-Microsoft-Antispam-Message-Info: /WickSFBeO9KcgPf+c5SXnevvyd02WF8qrpvk2YhMr2d/O4HbTrmz38KmMU+cyOj8hnTmRDK2cgDkTiSURjgxnrupCT3V/WduXxQYZmwczOzr79QrJdTdq9GrSXF6sdW47rMf7ZHH2aGNUAWXTtcyTMh7TYpbxEnUsST5bmsJ+hcjgftecxCQxwhC3PrSpmhOIt7c5XLxSTVm6iKrWd4Y2upyExxVwKe1aDY0V2O3il374gA60cCvQK7j7DRJilsdQhuwx3pPI6wP6nHlMQTz5NCp+TtcQlzILXKL5HfWoO46QVqtZ3jtgE8fC7T/mtcvwewmEnPpKG/YvbJnZTeVYx5qKkvDYdyZjzkB9eIsn7QgNDjxN/TLDivdBQs156dDP0cVd4SBp5xmIXXOQJTk+CDm8a6YXxqn2tLUBQYWK1SzyQxQSXwnHqWY1wd3Wq2x43+jaoioCt36ae1Tuz6SIKgno7qoqrLwrZmiFGcQhcpR/EWOaawVeuHgr82j8qMHTjZacvvCQHT4yh5BfsHMiyZLonPV6zYs8XtKP0WXn99hTO714JSTJl6ROXtDvRgzeVZd1V4N3l4+oqkyLILL1S9WxJ8sgQbEhrpv1W4vBPCsT2crenQ3aWDO0ka5RivAc9lJ90MNG/jNLAUjRcjE0WSwZ1KI3mRPHA+fZZ8XKgn6JZADHwi/9uLyZn0GyDaqj7ewi5RCszfK/XmxpeRRTP1NhhvyOGZegcG6EJ/K9M= 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)(7416014)(1800799024)(10070799003)(366016)(18002099003)(22082099003)(56012099003)(17096099003)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?+oVLIW2UNr98qlYqaYCNs/X5PU7jLVXIY9NOqrfufvb36xHK2d66c25x0LD+?= =?us-ascii?Q?8Cqw5kYzXFwp7UflPcrrONjofZQ72Xxud5WWXh3AT4msUjY6isfNra/Y9t5x?= =?us-ascii?Q?dsAnOf3DLOA1lkV/CYFpGzNJvCULy2ahbIp/Np6GMWlAiOlId9/ZLeqlMDMf?= =?us-ascii?Q?uDXhh7jVyibgQQKQOeD+VJrg+K9S9i+6CXhJpIHJNngwhgzpAECSLX6Pcq7/?= =?us-ascii?Q?xRp2ol5ZwLRJ50l06DQcpFd2xj7UaGE1KRGnrUBBZgOUX/cs3mPB4osKMT1F?= =?us-ascii?Q?Y6pwN/aFWQBAYNjQzfTboisZ7gzISgA40FxEfvwBGNUrcHpbUoPE6D9ysZ7t?= =?us-ascii?Q?exapYdpcGrv3OOU10U51MZhKv2uEJbvX5MKFggAbEy4Vvf+BpFwjAOPXutm2?= =?us-ascii?Q?uon56t9LBc+0b4KiPrJ80vq1JcStwj2Ur253S04rKtDOCNzzhP1sxc+WEhTe?= =?us-ascii?Q?4UjMfXYwrv1x5kPVlrgtDt55n4GxgTTyq0hnJwHtImOn6g8r3GPN/NuxRayR?= =?us-ascii?Q?fKFUHxbm+htEQub6gHIpOYtBOa+uHF88IN783/5HGm1NwsoGiL03db+dfNaP?= =?us-ascii?Q?uNGGb8xmGSxAF6xoWMHOei7bpvURIAEiADykN5ihQAxVwg+OpMss+8BfICfW?= =?us-ascii?Q?qK48d2gU0XIjtFCIEB9AtiH0VMaH36moboP77xSA5xBkEJ2O8rTahgylzsVY?= =?us-ascii?Q?L8e4XjX3eixHk5ejDdHbDB+8aygvioj5BI2AnAXPhY5I59epG0ufU7vPlYic?= =?us-ascii?Q?1c/pb9owHPbXFnDYTgvy88cLDs7z6jbSe+PKwe13ScEvrqzSx0FVSZ/mK7x3?= =?us-ascii?Q?gT/TbEfnt8VjLxy6QrNr/W1QJrF7rVa85YODiJuh7NbcPda75I3QUw+HBAw0?= =?us-ascii?Q?MIggAP0iLp30NNKjDLKhQnvu3XOJ++7m4rLJTWxrhxHVX1n0avshzmosC6fr?= =?us-ascii?Q?lZVgtda10EQMvED+jPvDHlOjRGR8uVzEp22Mj6Hhfz+nTrXtfGgpFWvHiOzC?= =?us-ascii?Q?q2KDqiJMxEZ7viZ4XG+q8NYDC017Ismf0yqGErVb/1ilNxwvY1M8FvwizHxf?= =?us-ascii?Q?YJJPU4NP51lpJSYzoQ3wW9ORVGGBJLzdr+ksSVhSTEiQ+KoZMf/3ZPG1255j?= =?us-ascii?Q?efrA39VqbPDNM2mNnojFz9zKKpjL0O8nUh9NM6T/glUtpRQh4CLj4v1f3Qlr?= =?us-ascii?Q?78aua7UMViXfgTpMVTGuXJZ0rA+i/58LOtB8KDzxNfh6HAAHgMgcePLh784/?= =?us-ascii?Q?8UHhZ6WEKZLhvZyyS+c/UZdxR/C8l6s74ljTkcm6Pleu7y++BOen41ebwbky?= =?us-ascii?Q?Kz3XoWEEKZroTPeLNASm/KzI7OKo/wvFk9f76xsffPCX4xqv5JZDpqxtsqij?= =?us-ascii?Q?aBK2WKmltQ/mWb3YvzuFz7JXzY6umRjL51D8CkeJb2m6QbVxQhGtJ2mI92bt?= =?us-ascii?Q?q5P7/Y9gqX1P7BR9ZLKD8SoPjC5+zq5+wHaiZk7MDb6yGU6rgqTzk5RuCO6i?= =?us-ascii?Q?gpUMn812PR2WMQyVdg3CWL4NS5OTUhsoC76S8k/KBpEl3FBlsLDknn4WOHDI?= =?us-ascii?Q?zMfiUfSDs37UZxxdUlH+6PmuKb9ba5mv4zhZzDOHXP9MrCGAv3i7k1NouYCJ?= =?us-ascii?Q?Lkc+wx+VCdjtEVdbtqaeSb9n1CgdBJwsr2bOdfInzwNKmiYUGLVESerPJFLA?= =?us-ascii?Q?db1j8bqZIHiAyj9qxM+2FZShHkWqLfjERw6H09XJfGZq+2NjCP+HAcoZwIh/?= =?us-ascii?Q?O47wCP1uZnfQ2+Bg10c9of24R/C9nNJJux2n49qxtRRDCUk/YcVy?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 54d8eeef-b5b9-45c1-29d2-08dea6fd663e X-MS-Exchange-CrossTenant-AuthSource: CY8PR12MB8300.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Apr 2026 21:14:00.8222 (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: gdn3lUTLm7ZSMZj01ZuM2bkj/QyHpneFTe3txlWuseY7Qs+JFpShmkWEdO9EUGKZP9s2A2greJWa8vkwBZq2gg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6256 Content-Type: text/plain; charset="utf-8" From: Jinjie Ruan Currently, the bit reversal lookup table is controlled by !HAVE_ARCH_BITREVERSE. This makes it difficult for architectures to provide a hardware-accelerated implementation while still falling back to the generic table for specific configurations. Introduce CONFIG_GENERIC_BITREVERSE to explicitly manage the generic lookup table implementation. By using 'def_bool !HAVE_ARCH_BITREVERSE' with a dependency on 'BITREVERSE', we ensure that: 1. The table is only compiled when needed. 2. The .config is not polluted with useless options when BITREVERSE is disabled. 3. Avoids bloating the .data section for architectures that have full hardware bit-reverse support and don't need the table. Update lib/bitrev.c to use CONFIG_GENERIC_BITREVERSE instead of checking the absence of HAVE_ARCH_BITREVERSE. This provides a cleaner interface for architectures like RISC-V that may want to selectively use the generic implementation as a fallback. Suggested-by: David Laight Suggested-by: Yury Norov Signed-off-by: Jinjie Ruan Signed-off-by: Yury Norov --- lib/Kconfig | 18 ++++++++++++++++++ lib/bitrev.c | 4 ++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/lib/Kconfig b/lib/Kconfig index 00a9509636c1..3ac12308eb76 100644 --- a/lib/Kconfig +++ b/lib/Kconfig @@ -62,6 +62,24 @@ config HAVE_ARCH_BITREVERSE This option enables the use of hardware bit-reversal instructions on architectures which support such operations. =20 +config GENERIC_BITREVERSE + def_bool !HAVE_ARCH_BITREVERSE + depends on BITREVERSE + help + This option provides the standard software-based bit reversal + implementation using a lookup table. + + Architecture-specific implementations (HAVE_ARCH_BITREVERSE) + and this generic version are not necessarily mutually exclusive + at the configuration level, but selecting this ensures that + the generic `bitrev8/16/32` functions are available when the + CPU does not provide native instructions (like RISC-V's ZBKB + extension). + + If you are an architecture maintainer and your CPU has native + bit-reversal instructions, you should select HAVE_ARCH_BITREVERSE + to skip this table-based implementation. + config ARCH_HAS_STRNCPY_FROM_USER bool =20 diff --git a/lib/bitrev.c b/lib/bitrev.c index 81b56e0a7f32..3a53ff67aeba 100644 --- a/lib/bitrev.c +++ b/lib/bitrev.c @@ -1,5 +1,5 @@ // SPDX-License-Identifier: GPL-2.0-only -#ifndef CONFIG_HAVE_ARCH_BITREVERSE +#ifdef CONFIG_GENERIC_BITREVERSE #include #include #include @@ -44,4 +44,4 @@ const u8 byte_rev_table[256] =3D { }; EXPORT_SYMBOL_GPL(byte_rev_table); =20 -#endif /* CONFIG_HAVE_ARCH_BITREVERSE */ +#endif /* CONFIG_GENERIC_BITREVERSE */ --=20 2.51.0 From nobody Tue Jun 16 15:54:20 2026 Received: from PH8PR06CU001.outbound.protection.outlook.com (mail-westus3azon11012007.outbound.protection.outlook.com [40.107.209.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 228793BE65F; Thu, 30 Apr 2026 21:14:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.209.7 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777583650; cv=fail; b=Ldt6BRw2kFLwFZMRCT5P0qCI86BCheFKHCEWkYo/G8VKn/qQ2X9lEKE/n6R+/k/IqSRuN7lOaNNAhOFeD4Jb3QwRPGEOPWXn1N31PSB+hKa2Zs+K7JJ9tz+rlaBeLPKqiTtJCRn+WuWImrdtAnEdl+fRTvg/aoV0QXAMDgZ3LRc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777583650; c=relaxed/simple; bh=ZT7ge4S3obsys8v8uvLIgVJbQ9KWebVmNGycjg0cHSk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=QA3XFv6ar+FFlrq3+DaDffgaFr0UpROO25Qk3GhJBh3GsfW3LqFxwdST8bmXbpxh7KS1jE21D/zMt7OotNvCz52q1C62IGQgcEPaFh35/EVnsLBQlem6l7Taw0sBlQeF7l08H5Zme+3hmZbP109qcYsmmiQ+rEvQpgZDc4r8qLE= 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=aTF0ZYRh; arc=fail smtp.client-ip=40.107.209.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="aTF0ZYRh" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=DV5Wyw4xXuwubJDcCDkfw1VsHVHWWSSaZWee0VbX+EVuFBlqIq46P1BF+UyeZQ6+X1ZdbTIzT44+oQYLZMKuOudXogWLUA0uxQ4U772WwqsG6M9PyFwwYePmkmB/m9xCUUGjQcFHLooI6xkQkSJ9PidbQshIK32lb7Ab/Ewk/sPxDQtFGe70OZ38lOvOzvrn+lBWvr8tWdqWz7YfqAp+krIxeS/o0Roj3Wu9bNWydvb0PK+dQKOO0r84T8AIknv0JxQQ1DRuhTCzhVwwF3rwTZKZIP0x4x6xeeErzAuMP5D+y4egmUr6YHh5si/pypzIkTEYR852qZjqfPhvrnPfkA== 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=clzXa7YsEYnPrpSEDOXtKhkycHCGDNwGiCylR+5MPrA=; b=dVCpT7Ee601TE+SN+9lLG5eUN0THlqBWH7EvGtR6Er9gIuT57JKeBxrvq5GYH4y0Ww7w+7FK5zSqIt4PmlUyKRLVYQ50l0z4KxmKv4YPPEf+cslPw8+aLEKaq7Olz0ZvBcOP3bCo9owhXWtjSxLdoW+KVKAcQPxGSXTm6LsWZ1+/VY0nkEgvGdv4PU4LClYVNiQMj3EfRQY1OVsmDEJqdptom+IAdObgkyUuADPNEIVayHqm63o6VVZG4CKINymtuj3O5nYNUgcHM0+iDVgjzkdVzsBBpU1rHiBMM/9sRNiTxVxM2yQvBEnfxIIipoQbJw4zXG2LB/REE7XuegWgjA== 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=clzXa7YsEYnPrpSEDOXtKhkycHCGDNwGiCylR+5MPrA=; b=aTF0ZYRhPPdQWlsyEihJo2jUoWy5FhIBdTb+yazb/RrdAFKggyX2/b30uCqzq5G2NvJEkky9qo22Dk2eu93/aMxzEZ7Z4AJwjl8RQd1ZG4bWlgItxBvpb9nLMlOaGXmeUvImVNT+J607//sxb3xsWoTMdoaMFR8+9Q+MLWlnkDPMp5o57yG3gEudpfdAr8HfCZAGBHr/VjuZiM30y7BYbZvF1EhDGBvydDmhgJbyKwLVW2SXhxwdtYRKGcPD97wTIaV+wtQIfl2SB9m0H1FwJjW6bGb+ERwynJytNFjwqQBN7ufSaHAgqp3ZFnmM0Zvng99B8U78dQ8Ss0ILz0kmtA== 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 DM4PR12MB6256.namprd12.prod.outlook.com (2603:10b6:8:a3::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.20; Thu, 30 Apr 2026 21:14:03 +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.20.9870.020; Thu, 30 Apr 2026 21:14:03 +0000 From: Yury Norov To: Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , Yury Norov , Rasmus Villemoes , Arnd Bergmann , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Andrew Morton , Alexei Starovoitov , Daniel Borkmann , Jesper Dangaard Brouer , John Fastabend , Stanislav Fomichev , Jinjie Ruan , linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, linux-arch@vger.kernel.org, netdev@vger.kernel.org, bpf@vger.kernel.org Cc: Yury Norov Subject: [PATCH 3/6] bitops: Define generic __bitrev8/16/32 for reuse Date: Thu, 30 Apr 2026 17:13:47 -0400 Message-ID: <20260430211351.658193-4-ynorov@nvidia.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260430211351.658193-1-ynorov@nvidia.com> References: <20260430211351.658193-1-ynorov@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SJ0PR05CA0173.namprd05.prod.outlook.com (2603:10b6:a03:339::28) 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_|DM4PR12MB6256:EE_ X-MS-Office365-Filtering-Correlation-Id: bc64bf9c-adc7-493f-5bd4-08dea6fd67dd X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|1800799024|10070799003|366016|18002099003|22082099003|56012099003|921020; X-Microsoft-Antispam-Message-Info: vqsJ+UnjPT9Ck5Bops7O7aUznEy6lfZgjDdGLQps6kNGPqzFd1JLcRGrLwH9p4LwqbTocxZpb842n9w9J5ja2P99qCrN7zEE2RBctHB8NI2Wve12JOrj8aR4dPO9wAdqWXrwfq1ZHkQ6IMA3oIWpv7zFfP9RYwaHOgblc7+CbfMTEOPK1ZUR43RfzO7CWRJ1qUuGomXmhDNETCBCZ2+hWLIiP5HbddEybCNIj5nbhOV9b7hOg0ee5YpZ9W+BMj7u8V2bz7jvppYFUkahSI05ikcbpATOoDqgeDKLS31JtA02lV9pwGO/qHmHtqmFJYKm2Dl4fsoAxh1DIC6Tl7753ZsH3S2VJ1VantrvhLy4+NuOA5jWWXJsZbK4S17rFKcTvVkS05oV761ZgNC5Kx/5K7WKuzUquapdjzz4/wbJ945O0KNjokE670pm6AcgBqlRX3+P0YNDt4fLbQ9QCJoQulSyz9aw6FzTPxxvDDAulEvWU26DVLFrvdK2UmD1AnrT9dB3Mp4z3Sekb5MV6+R0u+E2XDPcMi3sOpuPAMBn3r+VpQtsSDyJvZ+dMTbZIZLL4w5UqMYuKgy4dZJu2zXobPb11G623fKn/IFvLSRRx2YceJxSvMFMxW55I1yvugUD0abQm4Q+epEv3xOTYkadkEmDiwGPm07Bt0YfRLELhboh5O6I3tz0oY08+0VunguAHgvRXQebkzXnKfGJnKjN8m+DOMbdfFqjIhIDi6qrvZE= 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)(7416014)(1800799024)(10070799003)(366016)(18002099003)(22082099003)(56012099003)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?iqGjKfR0pelv85UykLTxXNpa1z7euajHkj1aDAnB+RqfktkiKRmmaRYcqoJQ?= =?us-ascii?Q?GNqLky60aUaOLJu7vV5j35mWiuEVCwdWptVaWVopdw8Pl9W+kTjchU8c8ljk?= =?us-ascii?Q?PityzpQbVjdGSm6w6vAN3vFNnL63fmIDDN2vD0Z40y4G6rsP3Iv+QVBRof/G?= =?us-ascii?Q?PqImz+ZU0ODXUHp2oxqP1LuhmRzCYjqnOxGAsNYnXg2GerwHsoF0E055GAYC?= =?us-ascii?Q?5WuOjCPQoMJIK6RV9+DUKCktMK5/5yOnOrXO5i9WpnF52o6ACGwR7JIQ9xd/?= =?us-ascii?Q?BG1zUa+ZFAPjjPr35+BC6X6SLZ6cjs3RKw0A42Z6/FSfb5xNOwgCYisy8Vqa?= =?us-ascii?Q?Qm436aEz1Yn7hPwJeb6A8FqUFTlHl1YV5RQst2f7AQ2Q+Zn6cC2tx9wJ2lMi?= =?us-ascii?Q?xfsSllQ/MgirvVdD290rN0wpiznVMT1p3YcOJeYRVqbN3JxEFfuSp7rInCym?= =?us-ascii?Q?iK6R8/Il6/lZ+ZH1dsiAV4GILKr/NBy7dCl+7FNOuXY8LezDcXVRPefYA7MB?= =?us-ascii?Q?6PI/eV798GwuHhqiOv3P8GJVeUR6LjNaKbuD/0KXqt0UJFKWM4IAzR6c2Dar?= =?us-ascii?Q?g3TefJPUoMeGgqC7EmnwsIsU8Fsrg8eIJNFXmJSvFlRbt1hai7cc/p33iNT/?= =?us-ascii?Q?IKOx1LrD0WomWsyDJNqTFUp/+A1VnH3pdG3E1K4hKhC5X1wVqPdFdlLDvgng?= =?us-ascii?Q?KQMDc2Hr3Np22mrzx93hpzoUq/J0AIC3KTBjhS/6CRXEz7q2S7JQ5+6vb07o?= =?us-ascii?Q?74cDAUfV9TUn7uS/kwRDmUybOGKlTqby0wWQQcDRy+X/fCrLFgbrZpERMBF+?= =?us-ascii?Q?V+kIaZ3qVxiEZEMOJlUdz2eIMWDkOJKh6ILGjAsODp9w+nyrRahBar8jG2aY?= =?us-ascii?Q?C65pjLVEQSj0toFfh3A5VyDn6uUYzoGBEblMv2KsSbg/bWA9ktqbsX3IboQN?= =?us-ascii?Q?mSniblRsp6oUnb3TArgxkqIUVZJZWKfLUVpMtFmEP+nGcdiKBKLgi/HEIGD5?= =?us-ascii?Q?PzXaVdx25CWaJF49lH/lxixvzKb5pSttlkNR1p+z1AVoQM7NgOD/CFbtBMG4?= =?us-ascii?Q?bce6frnrzihkcDAOrdZ+LNvIyKJaezWEJEdBOQ0eyLL8M4CYP/3OHxdO62GF?= =?us-ascii?Q?Sul15vmbqeekBipujLemZ6qdaRCN/OVktJ3PEfYVlaV1baR6ubM/VmaY7+re?= =?us-ascii?Q?MfZdOD3vzQvNBKYwmn1L/JqXLq8qgX1mE3Zn/qMDhfYQYYfIEm/P9OPOfAzN?= =?us-ascii?Q?IUwPnXylnAKLqOLC+umH5EWutcfoCPBlllo+4V7yw21wo+G+bkBZeODgmq5S?= =?us-ascii?Q?wtlHjLtup7nrIWLIQPF9JTPHM8g4W2yWWVADYi3DEQ4S5EOVtbckN/+11v7G?= =?us-ascii?Q?pdEWJgk3/EOrWmS7CQPwGT9TZM4ovRYKkWdCpwpJsDxNcHTf6952R2D9FhuP?= =?us-ascii?Q?hx36+t0i8eQS8ilnc24y8JbHHvEG0XqTYv7MbrqJy1Gh2goONP1F/beDxPvB?= =?us-ascii?Q?yYM/Fg5xUTOECcByAcsq/JJBm1fX+eVl914AdXJfSMR7MDk3fF4Jp0ugSQWD?= =?us-ascii?Q?iF2dx4vE79u4L6XbVZoUaX8dlf3I4Mf9nXl/qUL+DHRnBS14UsokwyXPlfTD?= =?us-ascii?Q?ADThR0LbmkYR445Zo7dHmV5b2lNhrVy7eubQHfLqTCGBqHF2+PnD0Updv2P8?= =?us-ascii?Q?hcokR6gqasp4VdV4LuG2qqyTnQ+46nIhzSAsoAVrc/49tcJQeQ2On1HKJ2VJ?= =?us-ascii?Q?OLMGcc8pY5w7C2kNjUCo5wB6G0G4/bB1HOGWpy5GVHH3iMd6IaQ5?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: bc64bf9c-adc7-493f-5bd4-08dea6fd67dd X-MS-Exchange-CrossTenant-AuthSource: CY8PR12MB8300.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Apr 2026 21:14:03.5689 (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: HzKFVA69z0Ilo4st1oJsko/L3IqbC878bmrzEsIGJOMDiFfkAZJkRrE6KxRp3XPir7dAwJ7dQdH29VgpvyS00Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6256 Content-Type: text/plain; charset="utf-8" From: Jinjie Ruan Define generic __bitrev8/16/32 using the implementation in , so they can be reused in , such as RISCV. Reviewed-by: Yury Norov Signed-off-by: Jinjie Ruan Signed-off-by: Yury Norov --- include/asm-generic/bitops/__bitrev.h | 25 +++++++++++++++++++++++++ include/linux/bitrev.h | 20 ++++---------------- 2 files changed, 29 insertions(+), 16 deletions(-) create mode 100644 include/asm-generic/bitops/__bitrev.h diff --git a/include/asm-generic/bitops/__bitrev.h b/include/asm-generic/bi= tops/__bitrev.h new file mode 100644 index 000000000000..f06af929678d --- /dev/null +++ b/include/asm-generic/bitops/__bitrev.h @@ -0,0 +1,25 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#ifndef _ASM_GENERIC_BITOPS___BITREV_H_ +#define _ASM_GENERIC_BITOPS___BITREV_H_ + +#ifdef CONFIG_GENERIC_BITREVERSE +#include + +extern u8 const byte_rev_table[256]; +static __always_inline __attribute_const__ u8 generic___bitrev8(u8 byte) +{ + return byte_rev_table[byte]; +} + +static __always_inline __attribute_const__ u16 generic___bitrev16(u16 x) +{ + return (generic___bitrev8(x & 0xff) << 8) | generic___bitrev8(x >> 8); +} + +static __always_inline __attribute_const__ u32 generic___bitrev32(u32 x) +{ + return (generic___bitrev16(x & 0xffff) << 16) | generic___bitrev16(x >> 1= 6); +} +#endif /* CONFIG_GENERIC_BITREVERSE */ + +#endif /* _ASM_GENERIC_BITOPS___BITREV_H_ */ diff --git a/include/linux/bitrev.h b/include/linux/bitrev.h index d35b8ec1c485..11620a70e776 100644 --- a/include/linux/bitrev.h +++ b/include/linux/bitrev.h @@ -12,22 +12,10 @@ #define __bitrev8 __arch_bitrev8 =20 #else -extern u8 const byte_rev_table[256]; -static inline u8 __bitrev8(u8 byte) -{ - return byte_rev_table[byte]; -} - -static inline u16 __bitrev16(u16 x) -{ - return (__bitrev8(x & 0xff) << 8) | __bitrev8(x >> 8); -} - -static inline u32 __bitrev32(u32 x) -{ - return (__bitrev16(x & 0xffff) << 16) | __bitrev16(x >> 16); -} - +#include +#define __bitrev32 generic___bitrev32 +#define __bitrev16 generic___bitrev16 +#define __bitrev8 generic___bitrev8 #endif /* CONFIG_HAVE_ARCH_BITREVERSE */ =20 #define __bitrev8x4(x) (__bitrev32(swab32(x))) --=20 2.51.0 From nobody Tue Jun 16 15:54:20 2026 Received: from PH0PR06CU001.outbound.protection.outlook.com (mail-westus3azon11011014.outbound.protection.outlook.com [40.107.208.14]) (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 5368F3B961E; Thu, 30 Apr 2026 21:14:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.208.14 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777583653; cv=fail; b=N4Th5za0PBPiItMfWE39SVY4lbDtDDaNz1+rMgXTcAPiAQB22owaq2qJmpNEobzXwPNpeCF09lsuHrQMPw/r+6ymgFDyAzRwXsIiWzH3/vplLRp+apkvhhfkQaM0US+M//tSZz7AM0aiA7hrRhhPFZe1InLyv5c9FjHTeIS8ZPw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777583653; c=relaxed/simple; bh=UaSQ/6ZZ46Z8wnPp666nn9prveAbtbIxdu+TEqjFaG4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=sMxzVYSHYog5jUcB4/C9ObDcq7gZadkZGsC6EV/NpRFyxoLI8GEGPOfxxwOH4OoD/tZhNtK/HRQqTZVrR5R6Oqa+Y+xwBUzN4mV6PL5DgLOfKBX761AUUeceQ4legKUNgSsIbmmu5u08NiKflW9+61HDItYykp8IfuUfjTUlTvM= 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=ZqKBUQ7V; arc=fail smtp.client-ip=40.107.208.14 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="ZqKBUQ7V" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=vMbaR4nwV5CftRGTfSSsiXCZqJ/yaAAZMnB0xrzvgDp3VXPa7RlY+0ZOjNGW7hZVGX2SgUDNWpDU01F4nPuVmd2VGdI8r8I4vsqwGkdWWQaVeUgFKaYmlhiWy5hMhvt7l3yhHxs6FQaFBXyRnuOvqdZI2cxmgTUMgaLLa5+T8PiRfHb5jn4z8qgahQwmH0nyVW3izM+hKg4EQoh8sMQ8UyMLxqsy3xHrAW7m62GofLslM4CX9IhnY+h4r5iuKhyo6j4KF1ZfOR5pguKac98iLhOuMsxOvWycScSPMFKc/xsa99E8VGPVwBnk8YK56A1BALUHiP2JuIczZhQOPmGV0Q== 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=gHFr6SBHfvsLMoS/kmKlG2oUCAWkwboh0l5fwbDmGlo=; b=e2BZS+yt1JqJRDFMGGhZrAU0k4lO9UpinOmW6zyPDsmAA0uctZvZnK1UCXeHsD4MnBcahVW/Mh1Ii0micbjGHMrx7sVEyYDMp8fKBHzJVdvmBqmc/ZPQoWyU2Z9PofpbcpYctJeTgT5Bw97/TMqTQ6cFMhR5cNbe2aXcTtrXlx8KbU9xK2kfGHexEBJdlgvUUSi5zf61n9f8ggGHD/rzOUIjlzdEf+KGsjELmlzs7dq6RUe/JRStw0LlYeoeV/QjSc5QedVjvmcTxtITUwlBrDmWaWhPx3tY6Gjgno301Oq4IhPyqDrCTNresWcx9IH4xH2VqyO2Iie9loW0wuybtg== 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=gHFr6SBHfvsLMoS/kmKlG2oUCAWkwboh0l5fwbDmGlo=; b=ZqKBUQ7VVafYMaKrTtF6cYCW+K0cDdlBOk+OZ59e+S/JDEl5CqTnkZEZnhQwUu38YHs2gtj4NNSpOsw6LTkQlQMHokr5/GIjx4Uwk2ciNd3pbNJP6wLyuwrBX/bNgNP1x4ZwTpXJh3216EU5zmE3dRCeWIFA5K5bPz4u4VFPk/+F2PUkCJBU2LTvtPZmdn8n2rlr+jUxqdSqRKU1TJvoxcB1K28YU4dmhsuRQwqmrUEwEQKROB50mrvv7rO6wk/iRDS4Vk1TP2/LM9JoMXBtHNx5TAA81b7/KdKtKH42/BzAw8T7LTYCLAnnRQOFBC7o6PtlmJ/gpYezAQc77IbFxw== 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 DM4PR12MB6256.namprd12.prod.outlook.com (2603:10b6:8:a3::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.20; Thu, 30 Apr 2026 21:14: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.20.9870.020; Thu, 30 Apr 2026 21:14:06 +0000 From: Yury Norov To: Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , Yury Norov , Rasmus Villemoes , Arnd Bergmann , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Andrew Morton , Alexei Starovoitov , Daniel Borkmann , Jesper Dangaard Brouer , John Fastabend , Stanislav Fomichev , Jinjie Ruan , linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, linux-arch@vger.kernel.org, netdev@vger.kernel.org, bpf@vger.kernel.org Cc: Yury Norov , David Laight Subject: [PATCH 4/6] arch/riscv: Add bitrev.h file to support rev8 and brev8 Date: Thu, 30 Apr 2026 17:13:48 -0400 Message-ID: <20260430211351.658193-5-ynorov@nvidia.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260430211351.658193-1-ynorov@nvidia.com> References: <20260430211351.658193-1-ynorov@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SJ0PR05CA0136.namprd05.prod.outlook.com (2603:10b6:a03:33d::21) 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_|DM4PR12MB6256:EE_ X-MS-Office365-Filtering-Correlation-Id: 6e4cf40c-251c-4f16-2038-08dea6fd69b4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|1800799024|10070799003|366016|18002099003|22082099003|56012099003|921020; X-Microsoft-Antispam-Message-Info: sjsU3DI2D+CNqq3eK98msH/sKGOg/+Dm2mWXvHcuBHdU6mAq9jtcjKhYd3s0mVU/zxnVGvTnPeUju5ZxHc7/le/vJ0kahCSePDgYL8S8ZH9cVhVc8bJFF75GcsAl3qr2F9Xv73h5+8hSr4QFCsBEHrm6HZJVwBh2x1EeouVjktweCIG2VTy2Zf0guMcDrO91VK7/zzZ3GCmOSYFnwW35fvjT2PjlC+CG/ERWftKteEiNWkqzTCe8cCFQbNFS+bjL8c77+rsiPAhv7QD7RnOInQ7mXkhWfmXhQ3YBb97C1GnxOJL3E6WPqhyWulz3owVI+G5CvO2TMOW7IGWe2q/d+DRruvwnU0SZFPHVPmfxR14JeigzfAH5Iga9nFekUEqooQOqCXuNixYhhYR001O72gLjvI/MqE2gtYyNqRBXC/Xpe65dFdKUC2Je5DlkbxDl79jEyvyxBkxcPIw0yqaO2ZuxCQRKhk9KSGBL3m67PKnsAZ4HWfNLbuAO4swY7Zniic8W5YwLKZEYGCdB0RUtur+Ha09x0AkAfsZ4drtNR/VeNmwVAdu+pMkvxqLWp/kbat3mMVsC1uss/tmr40pdH6Ursp449zPTX24uqKVuYF2p8fxssG1mc2yboTM5eOwkmfz7hbTFGioG+4LG6lCpmiZTMVXz3OqJX0EOLBw9sJSGs/FiDTM4crVKp+rhu/x5BHBh3AX4QfjRgHz1fGK2yYGOxLag0DCBWuJHkAgrGDCJnOCXIWaneDqu3krEXOZB 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)(7416014)(1800799024)(10070799003)(366016)(18002099003)(22082099003)(56012099003)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?AUDClg3RgiS7DfSoWPVlDNeH/YGILAyICspKKYERAiTIyyY8BaH/z2s05x1u?= =?us-ascii?Q?vwJ+LOQpRmaQMDAyN3HC4LzyhcMe4PDHtiiJaYYiDxGM5KMzJjoh8qKAi7D7?= =?us-ascii?Q?v3ugujxfbmvj6A+I95qRjRf8PFUCRupwhCjE8jv5HPsuu/PdN6R4nknpGPv/?= =?us-ascii?Q?EVQS3m8rvaxvCiFPOBx7xwLSHS0QpEtW71xrf+1j1AjVabsvotIbI2/JCWuJ?= =?us-ascii?Q?3MaXYqs1L6N6EprcUr4BECcOzD38kF3aw0BlFWvQ9WHxOvp9/HLeN42W+L/L?= =?us-ascii?Q?fzEGJpfv1azDUUwUq18MeUuag5KRQQ84egJ0i0x/a1EX+oCyroWSmb3YRFMI?= =?us-ascii?Q?pb0icwOY1Qy0eR7OIgzkNsztlLZgbduDaWw/ru1KxbhboVIYp5tH4AwpGmWT?= =?us-ascii?Q?ahW5Mz01kgQTpMJntlEfe3VgHPdrw0H/yKDkDEXjCR0fTQXfhGU1mM+eHcBQ?= =?us-ascii?Q?8ocA6uiRdWA0oqMoTUn5Qgoxkp9wW15UKhU0ms8Y9zNp255BJmzAsFwGpgbj?= =?us-ascii?Q?MnbArvfnLtJXH6POZZiehT4O6gTbQvsm4Dg+ceXjBY8P4ZLiJHt+2J0xZDB1?= =?us-ascii?Q?KcWbz+2RQBi9zJhdBzUBka7St3PiRAh+Qh5NQrh85HjIPqMCyLv7MAFPjraq?= =?us-ascii?Q?8gouAmU+XFJfrWj7XG8FUlDI+Ak6Zz/GcozCRtnyP4KPnOF+YaGAFmwemWSW?= =?us-ascii?Q?BE/Tqr35b+Je3KbiZUTpbI6AtKLpsXUKiRtAzCQpfSJ7TMUPeLOdaer2Ty0Y?= =?us-ascii?Q?eTrc2BJ/AsMAsp6xWlPfkEpFTta+ERUm8o8Pw3Jadrr1A4yLOvcE82CuvmXt?= =?us-ascii?Q?PqEHz1FdczHZuCEmmJnL7CC4VNNLyqFApf8CszlfoZrkTRnXTtK/gIpRh/Wu?= =?us-ascii?Q?Xbid5JpZUkJME+COumR74IpD75/haHtDJvOOGNDUAf+TGZedHlXncm+sOBxr?= =?us-ascii?Q?WxPX4owR7RxRPqLUjae5lLdU44yYkGfJF+nMuF8ZaQEKjgZ9oPnF3BznfMMw?= =?us-ascii?Q?vlzU77N6pXVzIx5VXyMGLFJtlZFE6VFbfFbocuBbyrylO9HD10JFqqnNztPO?= =?us-ascii?Q?kz8daI7WvO2KQ17yQvfNcbQXPLCOKjnsqIhj1w1TFs+ACqdsLJ6s26dqWvGQ?= =?us-ascii?Q?k2taT59i/PpDdTzID9fv4911OYByvKqVN1W7AG+3OW36kVOv/ahwuDHOXlL9?= =?us-ascii?Q?spvTrHmS3AvRzOPcARCem62K0mWSL71VHuXVZjGlaMMqvFQilLRHOEgCkxxI?= =?us-ascii?Q?RwkhqaMEEg+2IGRBrlLTA3iX5mHZtEKQk4P2oATA6JrzQo6MJ+7BtJgPCwww?= =?us-ascii?Q?HIRdrBZioc8WG20V6Amhv9rNURNggbtn6VCylPEqmcjg7hva2QdoeuuCFFGf?= =?us-ascii?Q?1WKxriZ1FwiEFu1j4a8NeWT+0F/UyYSFsjnhsHt0n/Li+UIY/UA+IPRePdeg?= =?us-ascii?Q?2wfmsAqGQagevUjWpMXTF/KMLunLIHOcJILbZZS64JHyv+M3Pb5BFCtCI/A7?= =?us-ascii?Q?N9aSbr6eLVcPaoPi+SdQ8YkrJN9Tq/9FOPPWaiA1YOv7AJuYb4fASdYRGyvG?= =?us-ascii?Q?dfun05DxnRWcA0hiNEaHjV8WtmITSMcgLx4oe5BQfhzmokajFQjaOi9/nTXb?= =?us-ascii?Q?/4O22z35JnbXsUmjNuDyxfmcWlFME06Eg7K13Oon1nbzDDYUlqSUFK7GVuGV?= =?us-ascii?Q?/tvG1SJ7/7D6zjIJ5LuzRTMKRvJqPkEumQbfAnTxEzQv+M4EGjU+SXp4YU7s?= =?us-ascii?Q?xTZbbScnZDJSxqJrdLexaA0g7OdmnAb35WC5TS43SG/zI8vOsZL2?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6e4cf40c-251c-4f16-2038-08dea6fd69b4 X-MS-Exchange-CrossTenant-AuthSource: CY8PR12MB8300.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Apr 2026 21:14:06.5935 (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: 50XE7QBow07/nMTncjf4MFTSmeSQPFs7WYowgPfwlTWB/a38d+dZImnVctscJgDzH4IkzI1tC6NfwIY1+DT/DA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6256 Content-Type: text/plain; charset="utf-8" From: Jinjie Ruan The RISC-V Bit-manipulation Extension for Cryptography (Zbkb) provides the 'brev8' instruction, which reverses the bits within each byte. Combined with the 'rev8' instruction (from Zbb or Zbkb), which reverses the byte order of a register, we can efficiently implement 16-bit, 32-bit, and (on RV64) 64-bit bit reversal. This is significantly faster than the default software table-lookup implementation in lib/bitrev.c, as it replaces memory accesses and multiple arithmetic operations with just two or three hardware instructions. Select HAVE_ARCH_BITREVERSE as well as GENERIC_BITREVERSE, and provide to utilize these instructions when the Zbkb extension is available at runtime via the alternatives mechanism. Link: https://docs.riscv.org/reference/isa/unpriv/b-st-ext.html Suggested-by: David Laight Signed-off-by: Jinjie Ruan Signed-off-by: Yury Norov --- arch/riscv/Kconfig | 2 ++ arch/riscv/include/asm/bitrev.h | 51 +++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 arch/riscv/include/asm/bitrev.h diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig index d235396c4514..d32309846fa3 100644 --- a/arch/riscv/Kconfig +++ b/arch/riscv/Kconfig @@ -104,6 +104,7 @@ config RISCV select FUNCTION_ALIGNMENT_8B if DYNAMIC_FTRACE_WITH_CALL_OPS select GENERIC_ARCH_TOPOLOGY select GENERIC_ATOMIC64 if !64BIT + select GENERIC_BITREVERSE select GENERIC_CLOCKEVENTS_BROADCAST if SMP select GENERIC_CPU_DEVICES select GENERIC_CPU_VULNERABILITIES @@ -128,6 +129,7 @@ config RISCV select HAS_IOPORT if MMU select HAVE_ALIGNED_STRUCT_PAGE select HAVE_ARCH_AUDITSYSCALL + select HAVE_ARCH_BITREVERSE if RISCV_ISA_ZBKB select HAVE_ARCH_HUGE_VMALLOC if HAVE_ARCH_HUGE_VMAP select HAVE_ARCH_HUGE_VMAP if MMU && 64BIT select HAVE_ARCH_JUMP_LABEL diff --git a/arch/riscv/include/asm/bitrev.h b/arch/riscv/include/asm/bitre= v.h new file mode 100644 index 000000000000..4b9b8d34cc3b --- /dev/null +++ b/arch/riscv/include/asm/bitrev.h @@ -0,0 +1,51 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#ifndef __ASM_BITREV_H +#define __ASM_BITREV_H + +#include +#include +#include +#include + +static __always_inline __attribute_const__ u32 __arch_bitrev32(u32 x) +{ + unsigned long result; + + if (!riscv_has_extension_likely(RISCV_ISA_EXT_ZBKB)) + return generic___bitrev32(x); + + asm volatile( + ".option push\n" + ".option arch,+zbkb\n" + "rev8 %0, %1\n" + "brev8 %0, %0\n" + ".option pop" + : "=3Dr" (result) : "r" ((long)x) + ); + + return result >> (__riscv_xlen - 32); +} + +static __always_inline __attribute_const__ u16 __arch_bitrev16(u16 x) +{ + return __arch_bitrev32(x) >> 16; +} + +static __always_inline __attribute_const__ u8 __arch_bitrev8(u8 x) +{ + unsigned long result; + + if (!riscv_has_extension_likely(RISCV_ISA_EXT_ZBKB)) + return generic___bitrev8(x); + + asm volatile( + ".option push\n" + ".option arch,+zbkb\n" + "brev8 %0, %1\n" + ".option pop" + : "=3Dr" (result) : "r" ((long)x) + ); + + return result; +} +#endif --=20 2.51.0 From nobody Tue Jun 16 15:54:20 2026 Received: from PH7PR06CU001.outbound.protection.outlook.com (mail-westus3azon11010063.outbound.protection.outlook.com [52.101.201.63]) (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 685373BBA1F; Thu, 30 Apr 2026 21:14:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.201.63 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777583656; cv=fail; b=Wz+E6n088DoGrwfhsMy7M3pwgdIxI2JfUcGIqVlGlNHfZEl1K4sZeCOD8QCgvy83rSJcr1SGeShDdcaziv/z6oC5vL1qPBJEsBEZzRk7qpizoJAslBwqvzNyCVIwkgPsLApin5NoCNz0FVmUlGybZnEnYWIqeDf+tNLPoEkGSvw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777583656; c=relaxed/simple; bh=epGCA23X940LrtNipz0pcIgE2Lbamw08hXPDFmRbrMg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=MdFntbxF3fWvtfPflqDiRY9NaXVESoJgGQlG7LZDnIDKk6qwPL+C17wZBynU0UYFQqQ1UI3Wkvd2YmgpJTVy82NW7lWW8w+EaWQNSjU6s20RMzgd4TzO34gbisZCTLWAzUdikgfJC8vRgBp58OL69MNAYvyOjJKfDXVkykzFPYM= 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=oLYD71wi; arc=fail smtp.client-ip=52.101.201.63 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="oLYD71wi" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=CiVD8d+/htcO/4FrZrihox4uiGrL/6JaQlzAVePWT4lDrwaondOyfmK+D7xCiHELaEkfrAxApk/UMgKjdPKVo/IQtyKJ3daD6Mz+/2Na94yUmLkohniI49/KR55HtTTWh3OPXwYL5gAVb1IllsH/ct8JxSieMjCIp/IZMEyahObSdPWCHapX1oKSr5HKZWIUbgYeHFFzolEto3dv1a4DtG/2k4EGkJh7jrjThrC0vep8KewUo9fokOHNOucpMWbl5BheiAMRo/JRmSJheRoRGMMlBrtNgTYI1jPVx/KOvbZdnCqt/p5e1I0/Ph+oJqAK8jUWQXK3wiIt9Sms2z67xg== 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=9feHIkST6Y5Vu5s0HfXTQL38kxSktYYVQYPnSoS1VGQ=; b=OP36/5K5Q6YM9ouknteSqXMQ+VTty69w2pJyee+r1dv1yIqfIuktPvORsdF0laFWYFyT+Loo8SiXlMRyXF6kaqw5qjqbiXMvOM0Pa1TwtQ0CWtP9BJfyekZOuXtGb8UkbKwFPZK24ZbdXaJQgWUnejqmP0th/7VF1waQgPfz4+zs7F8pgA/OXj9ao4Xnmwiec3D6H4Mdhin0exZu6xTtoMvHjbvSZXoo9AnrfpwSNPcwte3uMBhqAYfYHRwws4yM5/O77bCvy1k0L5k4d4lcVPhpTgbfKFc+JMwcE7gIq3F8uaRLQw6nva+L8S19SZPEB4XEK1+L2eDju4mJNKcuGQ== 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=9feHIkST6Y5Vu5s0HfXTQL38kxSktYYVQYPnSoS1VGQ=; b=oLYD71wi1GCtnbhfhVUEmMI5SK94JEWnjzIyVlZ5sISEu9C7e1b3L/lhw+/C+oBKgMYx/rlj2crNBQKLoEIxxruatsEVErgIPXdD5fo1tYBWXTjDQSc6kmImjfLIEer6mB+xXerjD14DeI3D/lNGM89lkeCJBw15nPXcjSaHcYg7ArSiUDHOrttdw1x1hhQ8FjQ5N0rFJzvpgkrU7lAP9zklzeXrYUIUDA93ATJgZ+izygnVkmdGFtOS6/wVV6vkhqcX7S8DD8ILbxKzzktPtkOe+cX6t2beeqViuNe10DVar9yj1G43CppUzpnlO7YnZn5uhGcujeAzJimg0NqN7w== 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 DM4PR12MB6256.namprd12.prod.outlook.com (2603:10b6:8:a3::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.20; Thu, 30 Apr 2026 21:14:09 +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.20.9870.020; Thu, 30 Apr 2026 21:14:09 +0000 From: Yury Norov To: Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , Yury Norov , Rasmus Villemoes , Arnd Bergmann , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Andrew Morton , Alexei Starovoitov , Daniel Borkmann , Jesper Dangaard Brouer , John Fastabend , Stanislav Fomichev , Jinjie Ruan , linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, linux-arch@vger.kernel.org, netdev@vger.kernel.org, bpf@vger.kernel.org Cc: Yury Norov Subject: [PATCH 5/6] lib: compile generic bitrev.c conditionally on GENERIC_BITREVERSE Date: Thu, 30 Apr 2026 17:13:49 -0400 Message-ID: <20260430211351.658193-6-ynorov@nvidia.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260430211351.658193-1-ynorov@nvidia.com> References: <20260430211351.658193-1-ynorov@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SJ0PR03CA0331.namprd03.prod.outlook.com (2603:10b6:a03:39c::6) 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_|DM4PR12MB6256:EE_ X-MS-Office365-Filtering-Correlation-Id: 98892ada-93a5-40d4-a536-08dea6fd6b48 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|1800799024|10070799003|366016|18002099003|22082099003|56012099003|921020; X-Microsoft-Antispam-Message-Info: XJz4+BPAuJUeyP1mM46ls8m4vXTLikHQKY8xLKOS+3p4xqmq3DjkqBY73wF/ArwGInPrGnjPRs28BecDakKuHIBD+374V7jbVOUk8j294DrnTRN7/odbNkWQxd+PFlCHH1YBzJDGDn18GyEsxAb4/IFyD0xqOBGWqQv6MwKO76LQLkyAAvwH59LVz+PZyQXLwFZAcnlqbj+oGQmiaftPxrds5g3rb7UeLHML4noyeYjHGKciW6mD2GAKV0OY07RhkZuXem5lL8QE9ZuqM4GoEaDogEvB39Nhn/1RHi6ATYfdVRBBwDloLlcc80sIEhJXJQaLaC7BazGWzn1zJldxqZ6zKLDCBg/hZDQUMYSe8dart6oQhpstLWip8+vyBkxV5RSjyoIDTBPon6TU5OmTsKHNid3n9hDluah/JJX/jtCrfjo9CqmLk9uNF0Tw5h2n9uzHQRaom/wSUzHIplcT9Lk28j2hwEFSaA8roCmkHM/PPqrMDvXd2ImTvrdI118l1Jux7CJIGUuxK+F+efAv1yYg33uHjVe/kZHzsK1MQcvhIVZ9vaGWhc5v1cDENTOOgiQOnvozkq6v1Tc2HePOZWhgCx5/R03LdE8Wx+AkcHaH4A1TAF5N+WKuSwmDmP085KR8BQp6ktLwMGQavaP5AgXQoEnCcKxAYjIMqx/StVjAPqOh+QGz/FlOuah4Wp9feO75HGEg/xa9IgBc02rJg5EjJjRkhBu+f6tL25+JgMU= 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)(7416014)(1800799024)(10070799003)(366016)(18002099003)(22082099003)(56012099003)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?jvvbYIko4Ttx256s5yp8gOgJ+Sb6JeS0aQUymhrC6lmCgrKsGFcF8RCVSymV?= =?us-ascii?Q?/0lzdWg25VjOBk+R0684/yLpsA5h3hgmswZu5/nM/02FEONf8k2YIvupIk8L?= =?us-ascii?Q?Ze4RjF3ygXE+hguKo9bdKfcfeYFahAw/o1CJfCtcwUTnyUdIUqzPnoT6mbRv?= =?us-ascii?Q?YR3Ai7uilZmGnU1VZdwyVnfd/CLAvlNQifHL9SYrz+RGPj9fncfUYfp6de92?= =?us-ascii?Q?JONHmVTE+7m90LqOVK9cnW6S1SBltUeSOTxkcpuA9+ymY6k2EKfWIgw3W+Z1?= =?us-ascii?Q?TdVKO8Dw1d6UKO6nZt4R3Y0gXNb13WEWLkQKZgpiNzzECWy8HMcA6MkfBInv?= =?us-ascii?Q?uaOy6YNrA97DrKvNc2yTi/YBrcElg8ONefIu2PL/4WOhSzr2pM9P4v4VfVn8?= =?us-ascii?Q?QDqLNle8FE3TK/WvoByXBn7qT26AHYoN+ObHZ/fteG9ApEnMeQhA6kB1eAC4?= =?us-ascii?Q?rI7RbCyea3qNB8ztPAjEph0m15yuQo4k4DKi2Xz41UjqE9/dFCe91wzjW6Ik?= =?us-ascii?Q?l3AxQrpH4HaBZNhpB6dQvmqZoiFpc6hb5nxBLUsMoJsRWN5qE+NHBE1aeLtV?= =?us-ascii?Q?yIBdghd17wNu40oM6hO1lhrPgEwlUwFSH2O+yvhARSMsuBko27VsCpBJOy0j?= =?us-ascii?Q?6f1Gh0JDMoxWsfx7VMcggleCibK92mE5gbz5p07SoELVdikbuG8j9SwuxlQ6?= =?us-ascii?Q?RubhoGYgAhRzGQ0qiJbPm2SdlXhjmEsK9roHy9Nu/j8/477Vv89o3P1txc/J?= =?us-ascii?Q?bB0stQ2VCCVzSPCEB5xSkbZRfjmbAUYdj/zVY+T78DVkm9UVKF2X1x6AcA+R?= =?us-ascii?Q?VbRUiJoRjIyTIsJeCpecrBI8L1g86C24nR5KjBGz4+JgwGNCP+Q6dBtHehha?= =?us-ascii?Q?Hw8OiWMFkc/5glq1O2aqWY1qZ5/ILO/qgzn3Fk79U0GOF7g1EHi4j5olgu8G?= =?us-ascii?Q?wSj/epOyJpHHyhhOLlf72ooeYRfGCkiAORMp4pa6mbq/+na7Oar6euOXF0tx?= =?us-ascii?Q?sKoftXeyKBretE2sw/024fy6/uewO5Am1dG72RcDpdZx8UdSm0MxsS2BWJdg?= =?us-ascii?Q?Bh3gUSfSjk2UAqc9gRDpsZsK5V8BD0ptBlS9wzug42PNiY075/MIkFA88yOc?= =?us-ascii?Q?hBNMXPYWpOCrWQBX0RG808wGt70+ZpBeNCDq/GJMSgFz8N+TudAytvdrcxS8?= =?us-ascii?Q?qHn07nE+4lVMH2jL9nRuY1QTPkQ0cJZZvgAGgs3EmGxGcqAiBjbwRK9UAbRp?= =?us-ascii?Q?Cf3KuA4303UwJtZzETumF8bepYIB4RVGiWZD6DCNuV+JYvVBoB0pDmwssXB/?= =?us-ascii?Q?hB3O1yCdNeiJDUiVG5HtMsTSt8MoBYa0knC+NEfKmZa4lC3IESylirJkquan?= =?us-ascii?Q?ZzcCYO5C4REZCJNZO/9C/nv5ZuAJ33fbo2CUWlRsxmXLqR9/PvSc5idn+YZi?= =?us-ascii?Q?+9OFUx+QmM808hLi5qpSW6Adsgr4QLrDpR9ZuA2S07XqTlc9EQGdMM0eK+r/?= =?us-ascii?Q?CYgd1j4qiqId28gHgAXkU+lzU4yq4PhI63meeq4EfNg0KeoZFyHynS/3JaC1?= =?us-ascii?Q?WZVEkd0FJbG11b0EGfOyVmbSlpgXNGXjygnRDzOHRwS/O8N+JdXPydTovCts?= =?us-ascii?Q?RpsD2C9MOqAiD/esGVu0OluhwCpEngMWluh5gWF/5dqCEagUg7buNmgLlAS9?= =?us-ascii?Q?pjDomW7jUwH3R20Tp+gUe8gKoWJ+wrckk0azuG3zKKqd0kzz1bFduJWkFT/W?= =?us-ascii?Q?nf/l0oqWqGtT5cAeYic+N2mE9h0pnEGq0JUE3lu/RJmUwRpt5Y6O?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 98892ada-93a5-40d4-a536-08dea6fd6b48 X-MS-Exchange-CrossTenant-AuthSource: CY8PR12MB8300.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Apr 2026 21:14:09.2796 (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: xghcYGoGuD0GCqOpMK8kA1wzCY6KJeDVx390ws7HlCTWXkdOGjtVrRlrNfXwgzMSaHUwcfzjhF2gXvPWwEPgLg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6256 Content-Type: text/plain; charset="utf-8" The file is compiled based on CONFIG_BITREVERSE=3Dy, but everything inside is protected with CONFIG_GENERIC_BITREVERSE. Make it simpler by switching the Makefile to compile lib/bitrev.c based on the proper config. Signed-off-by: Yury Norov --- lib/Makefile | 2 +- lib/bitrev.c | 3 --- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/lib/Makefile b/lib/Makefile index f33a24bf1c19..23e07d19d01c 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -145,7 +145,7 @@ obj-$(CONFIG_DEBUG_PREEMPT) +=3D smp_processor_id.o obj-$(CONFIG_LIST_HARDENED) +=3D list_debug.o obj-$(CONFIG_DEBUG_OBJECTS) +=3D debugobjects.o =20 -obj-$(CONFIG_BITREVERSE) +=3D bitrev.o +obj-$(CONFIG_GENERIC_BITREVERSE) +=3D bitrev.o obj-$(CONFIG_LINEAR_RANGES) +=3D linear_ranges.o obj-$(CONFIG_PACKING) +=3D packing.o obj-$(CONFIG_PACKING_KUNIT_TEST) +=3D packing_test.o diff --git a/lib/bitrev.c b/lib/bitrev.c index 3a53ff67aeba..05088231f31f 100644 --- a/lib/bitrev.c +++ b/lib/bitrev.c @@ -1,5 +1,4 @@ // SPDX-License-Identifier: GPL-2.0-only -#ifdef CONFIG_GENERIC_BITREVERSE #include #include #include @@ -43,5 +42,3 @@ const u8 byte_rev_table[256] =3D { 0x1f, 0x9f, 0x5f, 0xdf, 0x3f, 0xbf, 0x7f, 0xff, }; EXPORT_SYMBOL_GPL(byte_rev_table); - -#endif /* CONFIG_GENERIC_BITREVERSE */ --=20 2.51.0 From nobody Tue Jun 16 15:54:20 2026 Received: from PH7PR06CU001.outbound.protection.outlook.com (mail-westus3azon11010063.outbound.protection.outlook.com [52.101.201.63]) (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 CEC3C3C9ED0; Thu, 30 Apr 2026 21:14:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.201.63 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777583658; cv=fail; b=CzfUODw0m/V3R9SilSDaQI+XFejHUveiEURsgIn0E9t/KggaI7uizNsYRW17MUznGEq6nFLbFAH9WzmrF0qB+bVhZXpldKEigLJoE6eGMHWp51naf7eSugoWSRfRWpjnVDM9as8FQ4e1f/YPVprMQrywh4m10NyFIwZnvn2p1fs= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777583658; c=relaxed/simple; bh=rc5cqknl/CnoIlI1I1MMMBOTPMYV0wFK8+mmKSpeN/4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=lrDGyxf8ziKaYjrokKAYDMwNYjipyH3Ks+199SziXtmghBpR9nKfR3rz+pK8YFAp0DPCKDTgUH3TszAwwmEOMbocAfXJePWo0aIsGMXArcYfvf3dPHqZ4c1MvuqYyPQ846tfogu3XCv/2lgd3zmloYxhaZ1+y9XTWVQCKjOQzN4= 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=d5CI1ie8; arc=fail smtp.client-ip=52.101.201.63 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="d5CI1ie8" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=H7FUkxC/iPwOaXVi2Wp5EHX3qxkBVNqDFxuo866HmGtsOPp1nA7xuaa7qzNOR5zMIMjn0z/UdJsElGK0vibJNruahVvrJq7qnN3SBP51Xa/84vR4lmVZkYFO58gBs4dbmYS6IYR/+IwwYODsooNEyn+ikLrnae5bnssHAwm8EwaH7Zi/PiLrXPqRImhQJCcrpyGQ00zNYXR4YDY2kDC5yLVtDXich1EWzRwfEBOFQ55Al65xUpStj/VmZ/q98n1tRS8qg9J9jQO43E65qR8FS7FLIrJppMTiStG+KPIaIlQsU9S5G2leHIk3LQzopK5QZbh5dMrP0rqlP4rV4P35HA== 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=lN9OVRi+Y1hxu9mlQ1znXmrHFiq6XZWSfVQaDNPwdK4=; b=l5ron5ozc/P8LLaio72PJzRYrGh+Pi4qyXWB7ns4Wm3ZkdDzNSbokEttUgRgr5tLbSBk98CkmP0BgxvGfGeyYmUGTIQOJF8YRp86Pp3yf7j4FZDx85nsNNfMXZNxXuGLqZ8jUW2+jWK8ulZrd4t6zdwGTMP5DiunO5sofDguJnXG9INI3InpiMStGAbtwB3HdIk8GX9raRuv7s/h+9WomshRgSiWPJ592xU7qOJu1pQxtco2bVdOUpHXXcpXmdRc8Xo7XhZHaJ+1JAybvFp5aPfgwqACEjXfiExdqeD0yMZGjyIzVhcdOYKIlAuSpdjCPyZ9ajdL8xRjJ0di0ynJ7g== 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=lN9OVRi+Y1hxu9mlQ1znXmrHFiq6XZWSfVQaDNPwdK4=; b=d5CI1ie8jxpD/zs5oy+3KO3FQPB1CWdGFld4zv1c3l9XcewsccHEhvB21XYYaCgnMIsF9uraUIZMw5jFAR2GeuRL5BvP0Rp1CS/9V/24Qk8vFKJLoP2Csfg9zwqmQe7sc1Xx8c+JKBO70pyTB8QOzce0t8AMz9biyqz856wG8Bz73qjY+XaScG6l0YunG1Jk8XoINtp/GG5JkchU70Wa01qfsBBL2+1nQy3BWJlljr155mId7pA7pt9vwVKCguXpXrTA1Htd3KrsA+fx3ftwKcB+OX9Ecq/VfL2flddQ4bwovsjdVuhL+sJ5xd3rmbFcH+1JbiNH8CgaQ5v1w5e1dQ== 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 DM4PR12MB6256.namprd12.prod.outlook.com (2603:10b6:8:a3::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.20; Thu, 30 Apr 2026 21:14:12 +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.20.9870.020; Thu, 30 Apr 2026 21:14:12 +0000 From: Yury Norov To: Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , Yury Norov , Rasmus Villemoes , Arnd Bergmann , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Andrew Morton , Alexei Starovoitov , Daniel Borkmann , Jesper Dangaard Brouer , John Fastabend , Stanislav Fomichev , Jinjie Ruan , linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, linux-arch@vger.kernel.org, netdev@vger.kernel.org, bpf@vger.kernel.org Cc: Yury Norov Subject: [PATCH 6/6] MAINTAINERS: BITOPS: include bitrev.[ch] Date: Thu, 30 Apr 2026 17:13:50 -0400 Message-ID: <20260430211351.658193-7-ynorov@nvidia.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260430211351.658193-1-ynorov@nvidia.com> References: <20260430211351.658193-1-ynorov@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SJ0PR03CA0118.namprd03.prod.outlook.com (2603:10b6:a03:333::33) 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_|DM4PR12MB6256:EE_ X-MS-Office365-Filtering-Correlation-Id: 3db01636-b453-4882-9aae-08dea6fd6cf2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|1800799024|10070799003|366016|18002099003|22082099003|56012099003|921020; X-Microsoft-Antispam-Message-Info: HOIiDduRXX10Y7SclksQifcXHvsYAIXYRBTVmnWXnEywip5sFPlhNPiHbKsQkq10uz5kGB5w4c4nCsZ/Jtvbyj4RpCdCgf760BCUjBO47ib/z+6OFS1bJpv3b0CJ5t0SmuYotIWpVPADJWmX5xj3ZtJa0qbebIyjuqsMkZBFxPMhTGrnL3RcacJWpGR9VzIwRoXBAN2AqHyigEASwt4P4zeqGIkDcJjsU6pcMtsSSLk/u2krMgieVm39OLWVtPvek11hwdlKc8QjNYj71nAkNeRQg/18+WGgBQ9UHsDOeGwQ110t9KSFw35ZDbkrWb4BP95oFcvvyCMCP5b3aKeeao/9K1V/jQJ/9qFQCDQSbfiRP9DFVwpyqsLq2fo9bu24Styb0+dImslVe+DuwMSJC7JIZAmkHLCd+g+v9u4lLrnN1LUUs8lBl1xjmlM7FBy82r4DRd35RPgdHaX1Zksv/5c1gcowqXNt1EY3sZufWRVyU+p2+EC6dE7NstOnC7GNVjEzh/fb1a4sGd6TnDORapTnsIeHHHkLfsKzz/VcpXRDsGXSnjpjBJ27gwB7z7ytxILbqypbf9QQAKcz5SstjDvSXA6YVVxPRobony2WzB5sJAQh2z9aDQJGJ+ZPavGivXaH95TDvxwQiNw/McsYAcOpTx9oStFmH5B0KEWonciIL9AfoIme5t3hgnrEPAtXVhnDLWlMfUYQHtHV30fTGHexgNeftaQKZdZTSPXWfw0= 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)(7416014)(1800799024)(10070799003)(366016)(18002099003)(22082099003)(56012099003)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?lg7Z8mqCkGPjlp1IkKRVcE6BNshnyrd+6pHXDOIBZHaTgQZcCLdJYXFfbWSH?= =?us-ascii?Q?VGkWKtqOkjYZvtmq6iiZ/viB5huV6FIw0rXYgsDE7jtLV92LdwePQukGpJZA?= =?us-ascii?Q?NVniABUTiGfp3wtr1gvLsUOz3PkqifiUDNrvVtKd3us4o4ibOM/7B1fFfzmt?= =?us-ascii?Q?A6fgExyKC/4Oc2B9zFyxlFdRqbUGrK6/dXoirRTACJRsSMoxnYQXTCJ85kFK?= =?us-ascii?Q?ePP098FVmXNdJJaMcWE56afbjWPdqv4WU0eat5Tf6DUQ25eVU/U/dxyP6VTI?= =?us-ascii?Q?SyIb+6D2oxH1uHXics2K7swRdQlv0F0bPyLLy2wlc6ylcVR+tOrUal46gTEY?= =?us-ascii?Q?Ye9yvAxKoW3jyWyk9NQ1blFm91FY6fI+No7OrqoiIdcwpB/OMTErVAGGGGzt?= =?us-ascii?Q?M7hmJ6Eu3UEYdxgsWmpkAZrbAUesluXi2OBXnu1DtJcOwqVgpoV8zIV0Ee6Q?= =?us-ascii?Q?3r1M8i1zUlkIJ/8z6swEQdjb33dap/7kbikgzQtyo/xHzaTKgui5xdEBlkFT?= =?us-ascii?Q?J4gcgoiHUY2Iy8hI4YGg8ep/ua609J++I8ihYhDA2WYUUmYZ6sXc8tbnKyFk?= =?us-ascii?Q?L9d+4IRVnZbtnZd2PLrjPCf9HqYViRycRreNadzwCmB1Ap5FUfmSAwCNENwJ?= =?us-ascii?Q?auOAI3jli0b0t3dfYGdc8ORk1rtUyzlKTk5y/RXGD9MDg0ZmBRWtd7FZ8IBA?= =?us-ascii?Q?tm940X6eYtowJaeb9YAOJHjYi+Fks3E9GOJldgx1BVYdpJYtgBVRrXRmAlyI?= =?us-ascii?Q?8NHSlZI3uuNnZXgWMoXK82pH2s4x2/rJyRzrRwCRAcK7rNclykP3XwqlrJNB?= =?us-ascii?Q?HKZ0/jGMfSF9lQ7kTlc+WcZnpNTZ/8j8ST4IWUDEjguUHA7C8pEVoDHH9SMX?= =?us-ascii?Q?BtPpVJDPIOxrbXHQvj4tU7tXl59RsQQ85fwoXWI3TIEXizapA1dzqEf87dz/?= =?us-ascii?Q?XGX25w+bww176tP4imFLp3le2Ph/gQtJvE7zsjTzgbVgJ1Z3fQIYRjyfaZCj?= =?us-ascii?Q?U7st/9J0rXtjGPVM5IfJ//8XZx1jrZdVXtWclidsjtmaIE/BtaxYPvzOGkJq?= =?us-ascii?Q?f8U1Mz9GHokgaEGCnRCT2XVXsJMTfX9+5/d5xTGyOwHySue4pCzECV6zYFpT?= =?us-ascii?Q?LMFdLwJrnIlry/9qPw0+obbEECd7G0z9JXJME+0noOiLB5gk9h3ioiZVWLMS?= =?us-ascii?Q?g0h3+LvxQBRHIsPlMDZYguZvQ2XL7LOcO4t+F+4dfSE2zwLGz/XVDX1Vsx4G?= =?us-ascii?Q?I5O81iVonqGcRuNRWYWxA4jrfCo6NWfoiYV5LLqMZhgFMnzQ54+uWIsf9kjN?= =?us-ascii?Q?AiG/AFuR4omGsmgFqLAMMpr1gBV29hM5iL4ruLzpEumFWvzKy7tdIL4qHT+Z?= =?us-ascii?Q?h+66r8XCLYtjsGPZew9XhNtlYXEMnhR49sCWs2fAAz8eFbJ+FuxWeVGJvwI7?= =?us-ascii?Q?9mMC2/Eceb8Q1EzZIzr2se4vXF/3ZRNn+Tu4K9bpOZh6H3CH10refbk8mpDV?= =?us-ascii?Q?AWX86RCB1gK3UY5/XTMkAV3TTQvLKBRqXbfHlNvWCZAbndhygz39f78mMURS?= =?us-ascii?Q?LbGpmRlU8zYHkJS/74nsGx4tmHJoyskYQGVNUzJu9QlEBR7vthdBbU9Piss2?= =?us-ascii?Q?ildpN+vC463KeBcbWdLxQsv1iEnRZGUPPxm+NEzXWeuByFD2EZVaP3UE8rqR?= =?us-ascii?Q?4hBN5cSGC9foRcgUqwCkdMqq+tMviNxKGxAiRNoo7ZoQ2x7zJV8RDrAwObxM?= =?us-ascii?Q?S+qsRs9ib7u7X3eV25wUtxZOv/6hH7wzHcDqn5wdKCajX0EX+LJ9?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3db01636-b453-4882-9aae-08dea6fd6cf2 X-MS-Exchange-CrossTenant-AuthSource: CY8PR12MB8300.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Apr 2026 21:14:11.9841 (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: G2y6TQB78xO9VMNUmJLBswxApWc4ZhvOoQQDbYNeaRzhAgCBScAruEr5ro/2xRCK1y+caj3VrT3L+aNRnuN8+A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6256 Content-Type: text/plain; charset="utf-8" Arch bitrev API is covered in MAINTAINERS under the BITOPS entry, while generic bitrev is unmaintained. Move it under BITOPS too. Signed-off-by: Yury Norov --- MAINTAINERS | 2 ++ 1 file changed, 2 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index 27a073f53cea..b69db2a7031f 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -4549,7 +4549,9 @@ F: arch/*/lib/bitops.c F: include/asm-generic/bitops F: include/asm-generic/bitops.h F: include/linux/bitops.h +F: include/linux/bitrev.h F: include/linux/count_zeros.h +F: lib/bitrev.c F: lib/hweight.c F: lib/test_bitops.c F: lib/tests/bitops_kunit.c --=20 2.51.0