From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from PH0PR06CU001.outbound.protection.outlook.com (mail-westus3azon11011046.outbound.protection.outlook.com [40.107.208.46]) (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 6BFE6316199 for ; Fri, 9 Jan 2026 18:26:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.208.46 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767983195; cv=fail; b=W0bjFdN7OytbfesbjOM8qpOzckx97c5vBIJ9TW6yOPJ4UQCYa/ONSbB3+i9aaB08kjdcH7MHf7WvVSa5uC0MLkUURLzN0kxUJOM3MzCuaYuu3yevT2q0DFqixGB/DV0Bp9DXvpzHD4rNlx/WKlHfoJcI1RDEFxqRUVBEyjoxpgM= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767983195; c=relaxed/simple; bh=CqvBRSna5pyibY8Os1fN0lcQQsezVcJaRFJd2YFt5Ko=; h=Date:From:To:Cc:Subject:Message-ID:References:Content-Type: Content-Disposition:In-Reply-To:MIME-Version; b=pTYWTrnyu1T7U/Jx9xEAqxmNfNZYHQj4fGXz0+plLIT1XuRL8SHC+1DbFcm1yjs3LBCX77FdwfOL+N5fE9R79zSQPyUOyxyxl/abOn9648ZQw2P6Nn9MigqeYpOUQtu+f8kvsf7ecIIs8w3fDTQs9LvbzvQ2drC7imhdj1CoOnw= 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=rsq+1GuX; arc=fail smtp.client-ip=40.107.208.46 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="rsq+1GuX" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=FkxJVc3kb2Ki+5PDc7LFUl/OfoMlx3EDAZb5HcqaZQOH9iC/4HivS2t23J7T1rcYHWXn3bDuc39uOIJPasC6AEyJyRm/9wFwpiV8QWg1mF8TE2mN6JafJu91hjB+Q4UAaf/CPXVLJrPBhR2BwOi5lYunJ0bho3yz74jT+euAlAajvFp/sc+4z3Mmy7drU/ob0P3LdcEfzlRRBcduEtXHlfmPnzPtmcvdyZKSr4ZJOkwH4j8+t5jdlbcC6NWfJFbO6kBtCLRQMEuFCahh2AzMrAmc6/qjpDR1AypuAhdpuEb0EbG+mdXigLclOmJ07P3ZpMK5dB7kEr/kJBDn3RRp/w== 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=wt9TmjbTIhSlz1yZApmHdVums+ZLRW9MSOAX+UkNJZ4=; b=TqePfktSpC8joJjp1oX73KS6a4NoONydopXHGCMu28TJNrF/3HFzRlBC2EHIzGs2eRJRTu7+QgKSCBwzdunp0C0ShpyKMkRsFJ0wAZdpclmeMCkDffARDkERrZUhHtobE0gjH6YVtP4R994D1cIAJfBcnN8dSm/W2+U1m6mduLNYMiY+P20rpB7/BsJPhEbcJ/x2ZJ2eUoRWa//Du93vcoFtdFUH4te4zF40ONktYp8Y+VbiK0DOQHKOwEYuN8kCaJ+V9ipudaW9wadaLmAPBciKF9yYHgU1vWN4TbHYprulM1HQyh1tJ0jtuFoB8iuT2GeGlI6i8ZCBx2oSH0Jnkg== 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=wt9TmjbTIhSlz1yZApmHdVums+ZLRW9MSOAX+UkNJZ4=; b=rsq+1GuXXFhyF5bMX4ecFVdPy4DvOP/RK/vNr3j7y13bjlhV210igNyURQjz2lXfzzzTFOKd5dY1i7YQbnC+5BemiFq/LCSbKpAWtbQCA1t3AMtXM3eCl7c6qXG+F7SO02We7l6BJe1AQ8UZmXTR9wOqxcf1Q6CzupVVNfMC7ojFhAl2tQCGk96Fqi1Ojk18eKRuQpI7X7bnOBTsxFMOQ3gRkQHHIEeli9h9DV+fvvP27xMyoriP6SBmfhdQuhoUOZo/UJvXnEedIzxCP2Inv/JLWeXfg/JRln4nW8514C4cQSjqAs2KKQ2UeOHmwEJlZ4MCngiLlCfoGFfkKkYkkg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from PH0PR12MB8800.namprd12.prod.outlook.com (2603:10b6:510:26f::12) by IA4PR12MB9833.namprd12.prod.outlook.com (2603:10b6:208:55b::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9499.4; Fri, 9 Jan 2026 18:26:31 +0000 Received: from PH0PR12MB8800.namprd12.prod.outlook.com ([fe80::bdb6:e12f:18b6:2b77]) by PH0PR12MB8800.namprd12.prod.outlook.com ([fe80::bdb6:e12f:18b6:2b77%5]) with mapi id 15.20.9499.003; Fri, 9 Jan 2026 18:26:31 +0000 Date: Fri, 9 Jan 2026 13:26:30 -0500 From: Yury Norov To: Petr Tesarik Cc: Yury Norov , Rasmus Villemoes , Richard Henderson , Matt Turner , Magnus Lindholm , Vineet Gupta , Geert Uytterhoeven , "Maciej W. Rozycki" , Thomas Bogendoerfer , Madhavan Srinivasan , Michael Ellerman , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Chris Zankel , Max Filippov , Patrik Jakobsson , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Robin Murphy , Joerg Roedel , Will Deacon , Jakub Kicinski , Andrew Lunn , "David S. Miller" , Eric Dumazet , Paolo Abeni , Oliver Neukum , Arnd Bergmann , Kuan-Wei Chiu , Andrew Morton , Marcel Holtmann , Johan Hedberg , Luiz Augusto von Dentz , Pablo Neira Ayuso , Florian Westphal , linux-kernel@vger.kernel.org Subject: Re: [RFC PATCH 1/2] bits: introduce ffs_val() Message-ID: References: <9767487fcab7dbe7a7282a48a492171629eb935b.1767975412.git.ptesarik@suse.com> <20260109184614.7b3b9bb3@mordecai> Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20260109184614.7b3b9bb3@mordecai> X-ClientProxiedBy: BN0PR02CA0001.namprd02.prod.outlook.com (2603:10b6:408:e4::6) To PH0PR12MB8800.namprd12.prod.outlook.com (2603:10b6:510:26f::12) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH0PR12MB8800:EE_|IA4PR12MB9833:EE_ X-MS-Office365-Filtering-Correlation-Id: cd28a450-61f6-49fb-4210-08de4fac9cbd X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|10070799003|376014|366016|7416014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?Mlc1VHJpd2k3K3NPUUlyYlZ0dk9HNnBMZVc0Nmh3ZHZ0cTN1bkJKaW1uano4?= =?utf-8?B?ZEY0c09TNmtqZm13OHhtTW9IWVBzMDNFUndIRU1laWhPdXBLWXhISDZ0SUxE?= =?utf-8?B?RWN5VFUzS05OcE10QWdNK2t0NmkvektjN0M1Z2hCZlViWDY2RzdqamtrdzdR?= =?utf-8?B?clNXa204ZWtsNXpDNjJ5S050Y0YwUCtlNnFFWWhaSjhRQis0SFo5bjJoZVcx?= =?utf-8?B?NjNsQUVML3REc3RQUUI5eGpBaHd4OTBKTCtuSU9YR0JtcnQ1aVNCTWZZaFBi?= =?utf-8?B?eUMzOE40a3ZuNFF4ZEVLQlhqUnZkSmZleDdwRHJVL05NREI0MDB5czI5eUhT?= =?utf-8?B?WUpNN1RORDRTTXlqUkRSSWYrOVd6Z0hrWnl0YWhPRUM0N1l0US9FTHJGOFFD?= =?utf-8?B?c0VRbE5OaHhUNlVrZW8xaWV4cE50MFpaZ3d3all4cmsra0ZBN1hOWGZWRFdJ?= =?utf-8?B?b3VocFpCa3QwMHJGY2lrMGVFaVZiMG1ZS3p5SE5CWEJxODdDTng5NEE0bTNt?= =?utf-8?B?SzlpWDZ0SmxKL2UxYm1UazZOK2t4cVVjNStDZkthWnlmenZyVGF2OHNsSzBG?= =?utf-8?B?MWNvT21vZEZtT1hxWDRKdDUzeFZaSkVtRi9ZWXVoNFFjUUk2RjBkclY2MmhB?= =?utf-8?B?R0R5WDV5UzJLWVpyaHlhYWswamg1Vjh5dVdtZHdQb1MySUVrM2JMM2ZXNm9S?= =?utf-8?B?NTB3MVI5b2pRNFg5bTBleEFOL1NaVVJjbjNzTm55OUhXSjVvL3BtbXZZVHRO?= =?utf-8?B?aDZlb0NFd3plYlZJWWl1Z0xVVndDNkZPK3pIL1FjckNqRmtzUks2Y1Q1bDBy?= =?utf-8?B?c2VFNW9wY2pMU2hRQzBCUjB3d2Vtd0doMHBtMDBWOE8wQjc4amx3bVVRK2xS?= =?utf-8?B?OTlXT0tXUGlmVFA0d2o0N3JSeCt0VVB0NnI3WktSdXNnei9rSWVLT1dGbnVh?= =?utf-8?B?QUJncTNSN25kSWdIdDQ5TUVvQVp1clJyOGl2aStpbGU5V2M0TzMyNzNuZVlF?= =?utf-8?B?dFNGVERxSmM5aHE5VVJTR2g4UnQ4ZHZjaXNzMW9hTnhlSFhsL0dsYzJjUUhO?= =?utf-8?B?cmQ0NFpLd1g3THJpaXFLZUkxRmptOXFRdUF4RUFsZ1NaWnNTSW5KTDVIOXZ4?= =?utf-8?B?NHozK0wyQWhVaDV6ZEJjQWJPanVZb0V1Nmw2L3JTNWttd0dFYzhGdzFHclFC?= =?utf-8?B?M3UxdVZXRlhycFhCMGgwQ3ZnUWRPSEVHcHN5OEdxMGtkV3NPNmpRZzNZWXVi?= =?utf-8?B?V2pSUjEyTzJjMzF5eW5jMHhnQlVudzFvWTAxbzZxY3VLUmZ1WGtSa2pTUTVR?= =?utf-8?B?Umc2cW40bTRJV2ViNnNkT3ZOcFZ2WHllREFzdTNDR0FLQ24wSk4xVE4yVjdL?= =?utf-8?B?b3AxM3RVUEgxbGRabzdGNkt0TzhXQ3QvRnZuT0ZQLzdoT2VxL0xiNVl6bHNP?= =?utf-8?B?UkpWeXE2OTdGM1dtcUpjb2dKb3ptano0U0F6UUNwTGZJVEVNUE1aWCtXdUNu?= =?utf-8?B?ZWhqdk9RTG5meDR1NlpNZkpsWFl0L2d1SHNIZ3N1cWczZVZWUFM0aVJaS0Jw?= =?utf-8?B?N1ZZUEJxWSs4blg0R3VkZVluOVI2MklkZW5ZdjBQN1poY21EUWZNNktzenZC?= =?utf-8?B?eU5VWHFzYmpWdnVMazc1eHpDVmdOdlllbUxCQ3FSUHBZOXYrbk9QZ2l3dkNF?= =?utf-8?B?c0hIY3ladHk2OHdkSVdkallHdWptelZ1ZWlOU243WnArTHlqbER6WXNhb04y?= =?utf-8?B?V2tOR1pHNXZGbmRlMW4yYURibnVUM090YlhkMW1jcHVNSVZnbDRJYjdNQ1dr?= =?utf-8?B?N2p3cDdkamF2c2c2RnVzV044dGt3bE4rMFlhVjFUN0lUSERVekhnOW16ZGlr?= =?utf-8?B?a1EyNjBaRTQvZHcyRUJUWGVwT1RPeURlZlhZVkM1NVpaeGNHYk5RUVZIOTV5?= =?utf-8?Q?E9lsxiuOAjLLDhgFaaJLwMTi+fOIlncD?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR12MB8800.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(10070799003)(376014)(366016)(7416014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?K3dKOUdyOXBsc3crdzVMa3Z0UG9BdlFJWDMwS2dGanJES1lNU3JUcE1jOFgr?= =?utf-8?B?ZUFvNWdMd3RMNEZqeGF1ZEMyaVh5dEMvS0xQWE9zb3FlZ3d5a2twWGJNQUxq?= =?utf-8?B?UHBYeXBmZjBqQUpDSjNuRFpOMnl4ZGUvY2JsVEJjdFhjL3F6KzNJTXRvVGxx?= =?utf-8?B?ZWliM1JKOWZsR3JtYkdOMHdQeDJyWUtoYU9LSFlrQ043Smp1ZVFRUjVHeVp6?= =?utf-8?B?bEY0N1F2V1BTUHhyVFV0ejJMU2QyQWpML2RIWk8rdUw0ekVGMkpPTEFrYVdw?= =?utf-8?B?M3BBV0RSeXllWmhnUUI2T3p2aGc1ZHY5V3dTckRQdFduZDZRSVR0V0cya05Q?= =?utf-8?B?cytiWUJKVVd0ZkVGRzJHNUxXWlpPc29FVjhLRW5TZmZaOWp2VU5nRjhIaFJq?= =?utf-8?B?M3p6Q1ZFTHVtWXFjbSs4ZVd6eXU2V2h2N0NRa2JXdlJSUDRPcHF5Qk8xNWJ0?= =?utf-8?B?cWpLMmthWVRlT1l1ckplY3lscDRTV04yMGo3NU91dWtScHNwd25pUWhJVXdy?= =?utf-8?B?bDhMZ0NYU0VuaFFQSWZIT21vc25LelAyT2k2bDlmbnN1aHBNRTdGT0RIdGVt?= =?utf-8?B?aGcwb0l2MEdlc09HenhTVXVrbXJMNTVUZWdBUUR2cUNTaFNqWXE1eFphS1NP?= =?utf-8?B?bEpNVmFEYVV4THkrWG85MTY5bGRCOTBBa2dIUkVIZlFCQUJMangxZlJIdUlz?= =?utf-8?B?aktpdDUvQWg4Nk15R3ZLV3ZZVmVZTTlWV282NU9tN0xYS2NzVkRZWlFlNEZ6?= =?utf-8?B?R3krd3ZFQS9Rdk1zeVpqTzNtSFpUbDBITkZLa2piUnQzSHk2ZGx2dTFGN1l2?= =?utf-8?B?WmRXUDAvUWQxKzNVNE9nUmV0bVI3b2JzakdFSEN4b3FTV2lCTnVtd3ltVUpk?= =?utf-8?B?SytLWE8zbG1aUkxXSHIwc3A0SS9wMUlXVnd5OVhiWEw2ODlzSlpvbGgvRDJ6?= =?utf-8?B?T3hBWXVKMTRrMnJGTUpMVyt6MzY5djNQcnhXcy9zbkZSclJnMmxVMXp2N2w3?= =?utf-8?B?c3lZdDlTMWxOSEprTjYxeEUxejZKSDMzUUFrVXlxUHRxWHlld1hQTWxFZTl3?= =?utf-8?B?ZXdxZ2VqeWJRN2JiOTdnOVdjMlB6M2x5SGE0aG1tRE5zZm9pZXFqNFErVVEz?= =?utf-8?B?N2pzZjg3ZUJiUUtFRVpDbXIvbFRGNTNjdUE2SXFrdlFkRk05QWJqdDQrZ0t1?= =?utf-8?B?Y1VORTN0NkgreVZ1dDNyd09wZ0hkQllTQzRsSldENzA2VVFMaFZlUVNoQ3Fz?= =?utf-8?B?SG44eTNaQXJmMVdkSGhyVW5tRk1idjZvTmNJS1k3Mnhiem05ZDlrOVRlVWFH?= =?utf-8?B?MmZxdU10UmliVk5kRWUwc2gzT0F1NDNnbmR0Zlp1NUF1R3J2TzVFUmRzRW5q?= =?utf-8?B?Sk5NTHRBbnFPSkdBZEU1ajREaGNUQURtZ3JKbjF6NnNGK3R2RmJvQ3JGMURw?= =?utf-8?B?aFI4TlNjcVVPYnJDaUhqNEFZWERuaFpkby9iMU9GU3J0Yzh6TXEzaFUyaWhF?= =?utf-8?B?dExXRW1yK3lTZ3c4ZEF5RDE5emJpZk5ZWHdPeUtHU3hpS0dHRGJVM3RCWGJx?= =?utf-8?B?a01BNU0zWEVULzNwOUw0S2JUTk9wOUwwQ3R5RSs1OFFRRWMzNVpGYUJCVTFy?= =?utf-8?B?ejluL2lHalVISGRHR0JiYjIvMVl6cC95SkVQdGdYcG5XY1J2RmZBU2dqNWZW?= =?utf-8?B?OTZYc29Tc0FpcEI3R2o3NmpscFltSmp2QzByS3ArQjRpTlNuWjlFY3Y3cURi?= =?utf-8?B?L3ZwWVN5cm9JVzBVY2lFRGFodVF4SEYyb3JXWVR0bWx1NG4xampXcURvdlli?= =?utf-8?B?MFJvbVovVmZwODNnZUpVNE1vVUZXTkRYYTc2UVd5blhHWUY0UFZwS1krbEJL?= =?utf-8?B?UTVJTzB2T3NiaWh5QTFSV3E2cDhiQVZCdjlhdStCL1AreU5GR0pRQUNsQ2hi?= =?utf-8?B?V3hMMytzRzVBR3B1N0w0bUFOdGtMNXBDRFpmaVgrKzNaMmduNzJHdVJPNTFG?= =?utf-8?B?WG5FaWlCTjllc1E4QWQ1S1B1U1llcFFMdWVEbmd3VTBjaDR5end5aFZub0Ur?= =?utf-8?B?NXE0bk81U3dnamhxbUg1TjhnQzBuN09vVE44VE5BekkrZEQySi9FdndBVU1M?= =?utf-8?B?NlNZRDZlNjEreUd0SVNBU05MQ0VoZlZGUUhVOWNaOUhveDhiOGRwTVpyQWgw?= =?utf-8?B?U0FTOEZVclFyT1FkMGNJcXV4WmgxQTBtUmlMRGY0M0U2TC9aUmYyL0xaRVA5?= =?utf-8?B?T3A0SDhZMEtSY2F5eGcyMEJBaVdUUEw2MjB1OGRZMCtwK3lweFlMR2wxUUVu?= =?utf-8?B?MGtMMk9uWHU1YU9WMDE3akxmVHhoU2F4VlFtUElGZzNQNWUwaWJGbWp3aHBx?= =?utf-8?Q?hzDLhG+sb9iUgw/CHCweEHNpmA6Wg/isg99Ea4xffCLaP?= X-MS-Exchange-AntiSpam-MessageData-1: FSX4hPTDVzMlKw== X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: cd28a450-61f6-49fb-4210-08de4fac9cbd X-MS-Exchange-CrossTenant-AuthSource: PH0PR12MB8800.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jan 2026 18:26:31.6856 (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: ilsGzG8HAFh9c//VnOXI1lf5Dau+x3aYfEmAi73pH5WRr2Huk0NsbLZBFHYc0uQPN8B1PbwDFtFpCy8JGVY6LA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA4PR12MB9833 > > No need for a separate header. Just put int straight in bitops.h. > > Well, is a bit heavy, so I was afraid of spoiling > build times if I include it from , but if you say > it's fine, yes, why not, let's put it into bitops.h somewhere before > #include . Unless you have strong performance numbers, let's keep it in the bitops.h > > > +/** > > > + * ffs_val - find the value of the first set bit > > > > By definition, the value of 1st set bit is 1, just like any other set > > bit. :) > > I'm struggling with suitable wording. The trouble is that "find first > set bit" is generally understood as find the bit _position_. Maybe I > should say _isolate_ the bit, or something like that. > > > > + * @x: the value to search > > > + * > > > + * Unlike ffs(), which returns a bit position, ffs_val() returns the bit > > > + * value itself. > > > + * > > > + * Returns: > > > + * least significant non-zero bit, 0 if all bits are zero > > > + */ > > > +#define ffs_val(x) \ > > > +({ \ > > > + const typeof(x) val__ = (x); \ > > > > const auto? Also, are you sure it works OK with unsigned types? No > > warnings? Maybe add a test? > > The "const auto" is good idea. Regarding unsigned types, indeed, the > result of applying unary minus to any non-zero value is out of bounds > of an unsigned type. However, the C standard has this much to say: > "C’s unsigned integer types are ‘‘modulo’’ in the LIA−1 sense in that > overflows or out-of-bounds results silently wrap." > > Besides, this patch series does not change anything, it merely puts the > arithmetic inside a macro. > > > > + val__ & -val__; \ > > > +}) > > > > This macro returns in fact a mask containing LSB only, so I'd suggest > > to choose a name like lsb_mask(). > > Mask is a terrible word, because it doesn't say if the masked bit is > set or clear. Even if I limit myself to the Linux kernel, it's used for > both in different contexts. > > What about isolate_lsb()? In bitops world, something_mask() has a very clear meaning. Consider GENMASK(), BITMAP_FIRST_BYTE_MASK(), __BF_FIELD_CHECK_MASK(), and so on. lsb_mask(), or LSB_MASK() if you prefer, is just right. > The only issue is that LSB may also refer to least-significant BYTE. :-( It will never mean byte because it hosts in bitops.h, not byteops.h > > This is also a replacement of BIT(ffs()), GENMASK(ffs(), 0) constructions. > > Can you check the kernel, and convert those patterns too? I found at least > > one in drivers/clk/nxp/clk-lpc32xx.c:lpc32xx_clk_div_quirk(). > > Yes, there's a lot of places under drivers/ that can benefit from this > macro. I didn't want to spam everyone with this RFC, as we iron out the > details. I'm even unsure about the correct process to get such a change > into the kernel. If you don't want to fix every driver, it's OK. But please keep core kernel clean. > > Thanks for the review and suggestions! > > Petr T