From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.15]) (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 ACF0027F01E for ; Tue, 10 Mar 2026 22:36:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=198.175.65.15 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773182164; cv=fail; b=lFXvdF9qCjQ/6AFijXiyIw91aMezlsjnCxf/8/ZkPETxDdGX6DhZx2VllVjbbkwU2n7CING/PDaZ47rx3x5JsoQvW+ZHKMP/k6a6Liw2jNkHXreiN4joERirQIv2dq+NAXY6GYOw1iTA002OYND/67SwROE8SfwigpIPEd0FrPE= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773182164; c=relaxed/simple; bh=dpxcbOfbJvGkWc7PlmhRFy//RuvTaHztrzQbTJLQB9A=; h=Message-ID:Date:Subject:To:CC:References:From:In-Reply-To: Content-Type:MIME-Version; b=qqvXjmReyLAcrONSRBRddbVZK3U6DF/qcYwAEp46o2b8HUjGB1g4FxSailbs2rvk5GtjVgYa1vYVLvM0QHEQsh1ymeEC1PB9eut26ozFh874Bsq0c1x4c1xuTrUrg0W6Ae/0zxNsEqyAkfiHJ8E+R1Zxzo2jKQ9kg2xNQ0cALls= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=V1Qa7R/p; arc=fail smtp.client-ip=198.175.65.15 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="V1Qa7R/p" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1773182163; x=1804718163; h=message-id:date:subject:to:cc:references:from: in-reply-to:content-transfer-encoding:mime-version; bh=dpxcbOfbJvGkWc7PlmhRFy//RuvTaHztrzQbTJLQB9A=; b=V1Qa7R/pgj+1wgaeOQ5gr2ESggdaJxQh3m57/H8gfvwVBR8I58a8o0Lw kBSNWIf3i6noMf6UWwMf7XcNGjrdxAchsNhQWa1Ud4F0WjJw3sTnfXUbm nEb7rPzH5OpZIpeNglwu6wxXS1n9IMiM5ecnwln3IIiJhTfTWPf8Wj55p 0TQKHErXy/welvrZS4NgTotFPenoYynl747MQVLucWHN7kKrKDO6jst9b a5JlGqyTIRBSYLHF50gMPwjWTM2+HFkKJdBJ/ktk5TNLTezPG7MrXhNy4 vxMHFewUTiqBSoTzXnR+rnfEPIXF6x4BVGWzA+7+CcYwAYSyAjuUFvRl2 w==; X-CSE-ConnectionGUID: KE6RmF+qQ/isLXXYRuBrGA== X-CSE-MsgGUID: d4EVtVWJSeu01Dhqj1fOTw== X-IronPort-AV: E=McAfee;i="6800,10657,11725"; a="77848173" X-IronPort-AV: E=Sophos;i="6.23,113,1770624000"; d="scan'208";a="77848173" Received: from fmviesa006.fm.intel.com ([10.60.135.146]) by orvoesa107.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Mar 2026 15:35:58 -0700 X-CSE-ConnectionGUID: 3XwngAJxQY+dvpcNpAIx+w== X-CSE-MsgGUID: Dk3X0tNeQC2kqQsqb237sA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.23,113,1770624000"; d="scan'208";a="216584265" Received: from fmsmsx903.amr.corp.intel.com ([10.18.126.92]) by fmviesa006.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Mar 2026 15:35:57 -0700 Received: from FMSMSX903.amr.corp.intel.com (10.18.126.92) by fmsmsx903.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.37; Tue, 10 Mar 2026 15:35:56 -0700 Received: from fmsedg901.ED.cps.intel.com (10.1.192.143) by FMSMSX903.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.37 via Frontend Transport; Tue, 10 Mar 2026 15:35:56 -0700 Received: from DM1PR04CU001.outbound.protection.outlook.com (52.101.61.13) by edgegateway.intel.com (192.55.55.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.37; Tue, 10 Mar 2026 15:35:56 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=gaBLMfsEoIbuQQo9cThV5PoWESgsCKAcLN0qKweT5t8VUQcpCplY0ifvRF8i3BuQe0lhF/qY/bbrVAoy+ZmTNwS2AM0AU1cilLdnWT3mvWFVNHuEVacA/Qdzy0H4Mxcaiqk3bEac8tZMu17a0/pDDPOo3/DOELcub98h7blkjOamHl2kMiJhrjdPfehXUfSNFWY0bL3l+y/Ey7JxRhO/UKVLa0fFMH5fvOgmmbLvtRim8u9Y4sRk25lvdfulbIJ3Kxqmt8uV6C/SMqtH9YFYtyfDZcak1eGBLFaOiy07pGStwyyq7mmoqGxXF3FfXoQMD2A5xyrrym78Co97A3oTBA== 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=3zqrqeStgfMfLzsTl6u2uzW+TGqCyNPFAhocNlgzCM0=; b=DowaL8hvTCQVFLXTYCb6eSd7jRPqjYkvyDqMtJMPxUgS35j0WW0CSnE+BuMHXr0O6vUlVuATF7G5Y7qWBnPaphJGZZ+Gg3RLkxUXpuXiSiJNjzDeHWgPKdAVBd1Gtx9B4Hn4VpqdYyop3HeivNyjhcy9OiBnHper60TDlcAtUD8WKnRp4LRMe4wkrvR0/hBN1nh2IV9hz7dKdIV6jGMED9hYgwHrXNW45ATD+7akQ5k1ofLlDRPccmOsZ5kwXE86cmJDKy5Di6DjGvkljCrAJ9maHWG/gdpWDVU8FSO8OnWqgRAl+ITelnoztjBa++mUD6pjyWuEBpnMs3GMs8QTQw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; Received: from DS0PR11MB7997.namprd11.prod.outlook.com (2603:10b6:8:125::14) by BY1PR11MB8031.namprd11.prod.outlook.com (2603:10b6:a03:529::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.11; Tue, 10 Mar 2026 22:35:54 +0000 Received: from DS0PR11MB7997.namprd11.prod.outlook.com ([fe80::24fa:827f:6c5b:6246]) by DS0PR11MB7997.namprd11.prod.outlook.com ([fe80::24fa:827f:6c5b:6246%4]) with mapi id 15.20.9700.010; Tue, 10 Mar 2026 22:35:53 +0000 Message-ID: Date: Tue, 10 Mar 2026 15:35:51 -0700 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v9 2/3] x86/cpu: Check if feature string is non-zero Content-Language: en-US To: Maciej Wieczor-Retman , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , , "H. Peter Anvin" CC: Maciej Wieczor-Retman , References: <6443812f9a8a43986f37341d0db5074a2019e80a.1773165421.git.m.wieczorretman@pm.me> From: Sohil Mehta In-Reply-To: <6443812f9a8a43986f37341d0db5074a2019e80a.1773165421.git.m.wieczorretman@pm.me> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-ClientProxiedBy: SJ0PR03CA0240.namprd03.prod.outlook.com (2603:10b6:a03:39f::35) To DS0PR11MB7997.namprd11.prod.outlook.com (2603:10b6:8:125::14) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS0PR11MB7997:EE_|BY1PR11MB8031:EE_ X-MS-Office365-Filtering-Correlation-Id: 93848b3d-fb74-42ca-94e5-08de7ef56390 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024|18002099003|22082099003|56012099003; X-Microsoft-Antispam-Message-Info: Q/2jYTIGhXx0PxMkih0Y8h6uttCNi8N95u56K5ODiVrbCeZmldIQrmpFQEC33xMS0qy8M8Q+rp9s4YpxaKaV4nFp4P/LYCXnwbJ5EJWLWOvjtjiLJ49K+6K0REntrsqp9c+GgayXJddnqNvAovULoqL8SZsjW6N4b4WeTLLloiQKgI+9s8NeVKfE8FOn2+vz+aCzlSonQxEFyqq2NgU6ziEA4A7isM3Y6zy8cQcoIlVfT6m66rKSlnoDYCyhagQnp3p9I+0B/hVxh17dV2+4C0a7Qtz6ZGwHhAuPmPtVlWzm/GgRWmLZo3YrCEAQla2Jb2/fbZM4CrXr3aDTwk+ttpmZeX6ejyIuaRFYYjldfzNSJc+o5uegnN7ncpndf6bCzGqAPmUUndmMndJXvnw5wBbJhN+qG5L+9KE6caj/Mfd49sddCbjL1S+osS592fpbB7mxdrnDWlK0wkVieuQZzSCQd8KBUxtoRCavK2WEIJ5KAvmcq6oMZJiDjvQSJUJJ+1v//2LR5s+QfNp6VfCp2gyC/yiqDZMRIUUiqdj44bkyRFYt8dWUF+oUcTCNliYJRci1dMakQrPDW0fy4YOnQK+Tw6RC6ECErEgMxyQgYSbZMWazhyVCEbPd9SDWC42upOXz01VOuVMkDx886OqoJ2ef/pLqcxDH3BqG4KRkP/wWi8hYQ8uLkkHYB4dUgK2bFR7CaYCmpBUHQyyBm20dsU4c/rbWV5TYES/5EaKqm9Q= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR11MB7997.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?a1JHeEpRb0xzbExiL1dHMytpcHZhcTdYcW9rUDY3R2g2N25jU0pMR3FxVjds?= =?utf-8?B?ZWpMc0d0bDZyTHlLdWhKSGlwTnVENlQ0SGtUcVFVOU9haDNCa1RsOUpuTFJR?= =?utf-8?B?UUl1bnFWNE02Wm5acG1SRmNLWDBzbUlnejBHQTAycHA2a1h1bEZLcDF5SUsz?= =?utf-8?B?SENMOTF1Y0FVNmoyZllQZWNDVy94ejl2RnVoVFc2R1RQMkpJS2FwWDcxRldV?= =?utf-8?B?dTRpRzRkQUhzZysvMG1jN2RtUmsvUDFWVDY5S1N5dkdnakcxdjdzaTc3UXI1?= =?utf-8?B?YStKOGwrZDJpalZkWjd3Qys2V25mcnNVQjlqblNUWUdncDNjK212SHBoWlhp?= =?utf-8?B?bGJxcXJLcnRiZmQ3M2E2bkt5azk2KzhEZGQ5aC9ucEhJZ1haUFM2TEdMenkz?= =?utf-8?B?Tm5mak0zVE5TUjlFK2U3YmlXQkRvQVhQaGNYN1JSS000czgzeGN2QmxlTnEy?= =?utf-8?B?UDJwb3ZNbHBPVDZzVDRiQXhlVUQ1eEM2SHlQcGhOQkhNR1M3RzhnWHQ2aGZq?= =?utf-8?B?R2lwSkgzOFN1Y2Rra3h2SjZSaS9ZZmN2Ly9qZW1laE1NSncyVXNoNCs5MlRP?= =?utf-8?B?b3hpUGhmMnZENmQ4NGk5RmZ4ODRha3RoQ3Jqb2tob2JUNWdLcWxGYW9rU2JL?= =?utf-8?B?UDNNTGd4YnI1K0dBL08yYXZjMTVBYml0OVYxZkxoSmpnTmhIb0M3a3BzQjlQ?= =?utf-8?B?WFdjQVNTaVYzMmR4RERBVjc4SHpiK2dQMUtpeFFvYm9ORGQ2L2srbnBJcC9D?= =?utf-8?B?YnRRTHl5MjI5RzFHTFJzdW1FN1dJLzEwZGRGZnJwczBTd2ZtSHlScGZSSkIv?= =?utf-8?B?eTFXejE4VWVUTGkvclRyYmZ2WXNQVEQ0NnJRMldodDhLblBSNjJ6WUJjbG1O?= =?utf-8?B?TWhJQTV3eERaT29JaUp5QjVMblV3NGFlRkdvNmJmTWliem1QRm9WazZCUVN1?= =?utf-8?B?U3VRRlJEcm9jY2lWOTdkYndnZ1NtVUV2dC9keFlUbWM1SSszUEQyWWxPQUx4?= =?utf-8?B?WDB2STl3MnJBdUpqTFdBTk9ncXJKRlI5dnJKSjlJRkZVYjE2bEpTYlJhanph?= =?utf-8?B?SFVkb1lHOGR1R2Mwdjd2NXhCc29RVmNYYVorZUNaaENpQjJaa3hrMWNwQStT?= =?utf-8?B?aEQ5UU01UDRJM3VjUCtSTUo4K21lMXR4bVg0cGlpRzg3K0JSemZxMkRCRWRI?= =?utf-8?B?RUtJUGRvbFhhSWoyUkJWYjNydVFEeUMvTWZoQW5lZG1iU2tLL1NVKzVXRmZM?= =?utf-8?B?Wmh3ckw2aUovWUtIaUJDVXk5ajMzZUpWcFpVU1psbXRGRWk0dk5ZOUJEM0sy?= =?utf-8?B?ZlpISlM0d01iWkx2akxwNlQ1RWxvQVdub2lNTXBONWNVT1Q0NE9pT3ZaOTFN?= =?utf-8?B?VWdyWDNIc3NrTkhtV25PaW9UVG1PZmRXOXJzYkhYUnVoZ1ZqK0Q2dmswa0gv?= =?utf-8?B?U3RtTHhNc09iOGpkeTUybjduQXFpaTBtbzFKdUpzMmRZc2t1Q3JBNWlvZWc5?= =?utf-8?B?NGM3aDNlMXZXNEV3K2dDVDROaDM0UlFXOVg2WkZSTmlEc3ZpQlR2c3VhVWJX?= =?utf-8?B?TTdTQU5BWmxxY0grRUpZQmRPcHZNRW5mTUxBVlUvMWYrcHJ2a1BBNS84N0w3?= =?utf-8?B?Si95NjB2d2hvOW5KUWk4aEM4dVJ6czRSNVFubmVOWitoNXhHOEkxWnZZQUdB?= =?utf-8?B?RWxWMGZOT1l5WFdLa0FlWGNnL2ZFTTg0cHdjYzBhMjgrdHBzSmk5S21tMENj?= =?utf-8?B?MnVMQXpDS2xuUSs5VG5VRk5VcFJxNWx0WGJSUklnUHhnQ3NjM1dYaXNHcWJV?= =?utf-8?B?bEtHdzZ1QnRJQ3ZDVitRbXZvWVp0SmRGTWt6cUJ1anpYaFV5ci94OHRIQldN?= =?utf-8?B?KzJycEQvcE42ck9zb3pJY1V6WUljUVJLM3hINmF2M2ZjU01YR1pCSHdkK09j?= =?utf-8?B?eXRxeE5vV3A3WE9mbDNHTmxsVUxYVGtDMnhGdTNzallhTXl6RHdEeXRCMkxS?= =?utf-8?B?R0xXY1RGbExTT0c5RGlEWTN3RHBWUlE1V0tWU1huWmE0N0sxWWxVMGdtcWN4?= =?utf-8?B?dDBDWjFvczU1L08xZTdUcFZKN3phelpNUS9rWEpnZWNaVGhkWjZveUQzSFdO?= =?utf-8?B?UFRCNFU5aDZQUlAvbDRXZEFtRzROcHZSNU4xOHkwSmdLSkdrTk9Mc3BUMTc0?= =?utf-8?B?cFR6ckhWc3FJVFlrWE9WMnJ2ejRFaU41THFLb29jenBRR0ZycTJpYXh3R1dS?= =?utf-8?B?cjdnL29RWFkvMzE5YXdOUWl0c0pDWXhsUUlCRFlUZzlFNnpkNDNLN0NNTml2?= =?utf-8?B?emVRQkhJQmZISlZUWFQvQnBuRDhhRjVYUWgrWTdvNVpSNUZYQ3FMZz09?= X-Exchange-RoutingPolicyChecked: f9l6iV5T8ClbN1TC/lz1y99KrPWA16lFGpHufDMQ2vr3xkyhhEf52t42VC/IJQ0+FIcFX5V6VwVOX0XLCGFU9VIVrkOOKxTjI1RcCG40SfUTPjr1DIwn2uWjy4dZi+4XoVTUnE21V1yVy+BUdxwl/U+lW3Jz58x6O3ZMWCIHzO2B6wJItCjL5txZozGrk5Ae0mtMP6AS9KM5KITxsk52cZMEj0jtRHeS3gFVegr2DaG0Xl00NLftSHhDlJj6llRxaIREt0fDFJTYtwBHQt3S5JYsiEKswvehj0Wfki6zhWNWBW9PYiN8eg7nDjwJ3mXX6NeyR3pf7QEMoPV3OmwRaA== X-MS-Exchange-CrossTenant-Network-Message-Id: 93848b3d-fb74-42ca-94e5-08de7ef56390 X-MS-Exchange-CrossTenant-AuthSource: DS0PR11MB7997.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2026 22:35:53.7432 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: W3Ejmm1kISDeZ+QEUJDHkx7mOldusC9gB7P2lDqNRDqJFApNzWpsHJLRew/sN3FnGR6Bo8XdLv0DF7DvjE6B0g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR11MB8031 X-OriginatorOrg: intel.com On 3/10/2026 11:03 AM, Maciej Wieczor-Retman wrote: > From: Maciej Wieczor-Retman > > In filter_cpuid_features, x86_cap_flags[] is read, but it's not verified filter_cpuid_features() > whether the string is non-zero which could lead to unwanted output. > > In two more places there are open coded paths that try to retrieve a > feature string, and if there isn't one, the feature word and bit are > returned instead. How about wording the next sentence as: Add a common helper to fix filter_cpuid_features() as well as clean up the open coded cases. > While correcting filter_cpuid_features() with a helper > it's trivial to also clean up these open coded cases. > > Signed-off-by: Maciej Wieczor-Retman > --- > diff --git a/arch/x86/include/asm/cpu.h b/arch/x86/include/asm/cpu.h > index ad235dda1ded..93e8ad2786bf 100644 > --- a/arch/x86/include/asm/cpu.h > +++ b/arch/x86/include/asm/cpu.h > @@ -9,6 +9,8 @@ > #include > #include > > +#define X86_CAP_BUF_SIZE 16 > + > #ifndef CONFIG_SMP > #define cpu_physical_id(cpu) boot_cpu_physical_apicid > #define cpu_acpi_id(cpu) 0 > @@ -67,4 +69,6 @@ int intel_microcode_sanity_check(void *mc, bool print_err, int hdr_type); > > extern struct cpumask cpus_stop_mask; > > +const char *x86_cap_name(unsigned int bit, char *buf); > + These declarations - X86_CAP_BUF_SIZE and x86_cap_name() are better suited to asm/cpufeature.h instead of asm/cpu.h. Also, it would make more sense to have the #define closer to the function declaration. Maybe, right above it? > #endif /* _ASM_X86_CPU_H */ ... > > +/* > + * Return the feature "name" if available, otherwise return the > + * X86_FEATURE_* numerals to make it easier to identify the feature. > + */ Should we add a sentence here to say that all callers must pass a buffer of size X86_CAP_BUF_SIZE. > +const char *x86_cap_name(unsigned int bit, char *buf) > +{ > + unsigned int word = bit >> 5; > + const char *name = NULL; > + > + if (likely(word < NCAPINTS)) > + name = x86_cap_flags[bit]; > + else if (likely(word < NCAPINTS + NBUGINTS)) > + name = x86_bug_flags[bit - 32 * NCAPINTS]; > + Can we get rid of the two likely() annotations here? Is x86_cap_name() called from any performance critical path? > + if (name) > + return name; > + > + snprintf(buf, X86_CAP_BUF_SIZE, "%u:%u", word, bit & 31); > + return buf; > +} > + > /* > * This does the hard work of actually picking apart the CPU stuff... > */