From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.12]) (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 707B22E06ED for ; Tue, 10 Mar 2026 06:23:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=192.198.163.12 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773123813; cv=fail; b=cGzfNUA71P8N1RuHxArmAFY8DF1A0ZTiK/MasUxJMT8SUIy5HSE/WwzjshhsQDFUShUDDuEnZvO0aag0eSirmOaFkxpMFwIJQ4CgS7wqnzWVD9sCZO2Qe+LQYTk8EBMicNxmRaK4/BLOw5XQlcBfJ4UISJoBg3WbZwyYDU657QU= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773123813; c=relaxed/simple; bh=CDfj585Y46JaG7deV5xuCjOZd/j7Ly3ThrjcRV4vQ0I=; h=Message-ID:Date:Subject:To:CC:References:From:In-Reply-To: Content-Type:MIME-Version; b=WSAIcX/mTWuVZ8Z/2ag6xCstX0GkWLf0LP7n5y5eeXcUQiOapNgom7YJJcUKT8a33MujSTUuCm8SS/iNtyUpmpBOrTWXH7Y7iaBqGcq8hJIGQyeh+f0+DIPKhLIokVmzwNc63je1GXLjjnyqwcicblcKRRg4M9jXFc6Nuv2EVYs= 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=duU+K6Rr; arc=fail smtp.client-ip=192.198.163.12 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="duU+K6Rr" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1773123812; x=1804659812; h=message-id:date:subject:to:cc:references:from: in-reply-to:content-transfer-encoding:mime-version; bh=CDfj585Y46JaG7deV5xuCjOZd/j7Ly3ThrjcRV4vQ0I=; b=duU+K6Rrv1V4sg0L/cDKBSCuIL0QOsZymr6L2EFYAPNDxVIdau103plc V5gpMyBTwrrIK3kI/WzMfO1/MWl0Rbv49uuajl46RHN3qvA4/AFXb5rPn U8GxZyK2+hvBMBdLXGPSOGs7HWtPpbb/qA6uVgQbi2cFIsSJlrbgteodU PFJZCx/ss0gdSfZIV82gliEQ5d+cS/EF27YHxbUeIemSMtWIgaPWi1QBC Vw63Swb6FhraIxPMdtgG1mZyOFU4ZU8GoYc+dCPuE/aIC0BqSZgUTBzzk VnxsdL+0VtHaMjWau/l0x/VyRaiPBU0TUQhAkts921yo+xlmOWeYadHzI A==; X-CSE-ConnectionGUID: ULIu/LcvSpKw5VH7JGDK+g== X-CSE-MsgGUID: Oi3A5nUkTqGdGlYrOdOQ4A== X-IronPort-AV: E=McAfee;i="6800,10657,11724"; a="78038123" X-IronPort-AV: E=Sophos;i="6.23,111,1770624000"; d="scan'208";a="78038123" Received: from fmviesa008.fm.intel.com ([10.60.135.148]) by fmvoesa106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Mar 2026 23:23:32 -0700 X-CSE-ConnectionGUID: jnHs5bjSRQ6znAwrZSG/Dw== X-CSE-MsgGUID: KtKuTkhaToSKch/L3m+uOQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.23,111,1770624000"; d="scan'208";a="218003376" Received: from fmsmsx901.amr.corp.intel.com ([10.18.126.90]) by fmviesa008.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Mar 2026 23:23:32 -0700 Received: from FMSMSX903.amr.corp.intel.com (10.18.126.92) by fmsmsx901.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.37; Mon, 9 Mar 2026 23:23:31 -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; Mon, 9 Mar 2026 23:23:31 -0700 Received: from PH8PR06CU001.outbound.protection.outlook.com (40.107.209.54) 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; Mon, 9 Mar 2026 23:23:31 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=vEOEIUqUT8oojm+RJVWBngYB7sIA8ZoL4L3S0Jh8xQ2ppsxY02Szf3uo2h2pk2gclkBNCUCOQJCJora0pWdyi7nqSUb713W69awnLHvZMYfUBDWnT6WdHf6Jbs/UA5/91bAw4TPrmf4gXWiJc5f7TBQ5xroQwdttgYdvNdVSU75Cgfb3lynaBsljh4XG9uQuFbOZYLNd7D2HqytV+62FNEs78HtzY7d74MOMr7z/PDsWR5ZaMf1NXXVqtKLFJsxXxZMz7g/BfHoQjtZKjMMZoD6pLO17ItZ8NuOtOd43ZiKP83AKkyaCRFTBw8evpsjMByPvKoj7784cpEeuAdQ3Tw== 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=5obuEIGXICS8Mgywx+qg+55FXqRqYwbL6nb8rPEKcI8=; b=CPh3lAs/MoYk058YcYJ+rbTH7pSZyJk/1fC4YfDTQ7IikQbuGWMa0YDlfSe87tcCQUw03tWy5boejogy0ZEXw0f5oOKpzkEjkhO88a/HrjOZlCZmsa0qXhssN21G8tBoDL6MC/JHIUKjI8+5OxCWlQTWwHw9pf6v00Q3IP1iOTM4PC6T4aqDNPCaEzAjcptv75GOWHZdwqVCKzJc43i5rsjWdx0gjHn69nhrmNDeMmAzwj1SJ8gnd8dz0PEmqXc843gN9+4UQJW7n5jx1S7kuqKBTRv96tIqqH0dweuz89ohEY2nodU01ZkJwU35tRse9P6iM/9vE69U+I6RfSmUpQ== 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 DM3PPFD320E2257.namprd11.prod.outlook.com (2603:10b6:f:fc00::f51) 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 06:23:29 +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 06:23:29 +0000 Message-ID: <6b177541-91bc-4db9-b073-c5551d9e0bc1@intel.com> Date: Mon, 9 Mar 2026 23:23:26 -0700 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v8 2/3] x86/cpu: Check if feature string is non-zero Content-Language: en-US To: Maciej Wieczor-Retman CC: Maciej Wieczor-Retman , , Thomas Gleixner , "Ingo Molnar" , Borislav Petkov , Dave Hansen , , "H. Peter Anvin" References: From: Sohil Mehta In-Reply-To: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-ClientProxiedBy: SJ0PR13CA0127.namprd13.prod.outlook.com (2603:10b6:a03:2c6::12) 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_|DM3PPFD320E2257:EE_ X-MS-Office365-Filtering-Correlation-Id: 67d0e1a5-eb86-479d-f7c8-08de7e6d8b95 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024; X-Microsoft-Antispam-Message-Info: qdh/UhBRP2m7SwwqW3lN9WvfqyYQ5H18DHUqGC3rIYYLPzrDIoAlHS0TErKIvh2/i/OcjEmxg9GDkJpU/+TKi+BbKeBVWC5sALrd/7o0y7//9mDg5VpPtdv7z6xshjubTg081puujWpu3T01CFFml73kRWHMiBmxKfFKKHqhOP5LTPMibo8LGsD1gMSV/vFZg8FMZHZYy/rwS28c0RagJW+GOdfwCVmD9cK1U3TUgQgx8m7RXkq1uLL1VUI3MG9U5RGk4/EyGFL1B78kBzO2tmeH0d+Za0ylP432bBKrhmMT2OrG8sAmOCHlI1zgcB+PM2UloUP59tzpEiV9TCktPzkIm6xc81sfJogiIhvRoa0yCg+jOUZMZWnm7WSxZmu3kHYt8yK+hDzb5RvRDGTxwgKkb1oTukWz08n8VyFJmO1GJ/gUcLBE7YtULgz+HqnWVODzImhmzIwXb3veT4/zBr08iMxUVIUZN5/MBWwpnY5XSowU8nVcnyclSL3blHzjz+HOlW/EYPEfUuaE8CgOQS1r/zqti5Oo/XDmZbj6heE0iRh+vckdl/wgfQlx8enlfjuEzZNL9EhMJrTx/TNN/P+iFm/4bIPqtTKfWZD8lZlgkiviOgEhp/Jvv0jQ1l0caCL19OFPy4OBCcU7YqKoqbFwtRGMGyG4PD9xxk1bgErqGvqv/k5KUfeARIz20lYOG6IpJ61uxVeATjp2WMF+1/YbFIGgbKs6BNa8x5lvZJ0= 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);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?NVl1NXdnZ0FOZmZ2cjBvaG5vaFRKSWdNU0QzT0xac0txUmdDTXFHUXNUNnI5?= =?utf-8?B?U3J1SzNGMXdFU242ZWpWUG5oNEpBVmtnRDJzM093MUtSQWxCcHFSWjl2eHJy?= =?utf-8?B?bWR0UElJYTZSNkIxZzY0c2ozbXpjNnJEeXZyenZsNXJIRGoyRU52WXJ2bHll?= =?utf-8?B?YkFPNDFiRUhBM0R2T05OSXkxZkdIMWw3VTN0QjZCOHdrblczM2Faczl3aXJo?= =?utf-8?B?aDFGZnhmUER5WmtXMVFkU3ZjdlFzZEZwS2dPZFhDNVpLTlJjSG5xd1IwNDBV?= =?utf-8?B?cnVYMUpFeWJwU2xwWUgyNmFuVU1heVdocVJ0TS9CL1oxb1VSNkZOc3E2MVpo?= =?utf-8?B?My94OHlVRVZINW9JeEt3S3d3bi82MDg3TFRWZENFYXI3SUpSaHhhd3ZySnJj?= =?utf-8?B?WFMreUNxQjBlcDZtMHBqWGF1QVkwOGhjMC9uTTQ0OTJxQmJ0SFVmTWdkbHph?= =?utf-8?B?ZzY1TzNuWEdsK3dlTEI0STJNejl6QjhRSW9PYk8wUDhhYkpEQi92MnNRZ1Az?= =?utf-8?B?QXZSR1c1QXUya1VkcTVaVUpjeFdzWk5GZDZsQUVLVnpYZU90bDdEY3JkSDRy?= =?utf-8?B?MWgzTE91OTdDbFY4MGJNZldvbnBiRWFYR3p4UjZuYlI5V25oMk12NnozV0Vh?= =?utf-8?B?ckxpWXF3enYxWG1hSGIzdWh1U2U1OFVLcE9xVlp2MXN5SVZRRFRZTDFSR2pP?= =?utf-8?B?Nm5kZXpKUlY4Y1k2ZXgweDN1bkhtNmJXVHR6TGVlTGNPREwyWjEwY1F3Njl0?= =?utf-8?B?UUtHSWY1RTRmdS9xVXVWK2FMck9iT0tUdFFhU2s5bEpyVDlzeks0Ujh2N3JY?= =?utf-8?B?RzVXWnNHc3lnNGJJbFd4RkdERTF2MFdmVWE4SVIyNDVuTisyZzF0Znd1WnhI?= =?utf-8?B?ZEV1bUVsNFI4WWFYSmI0Rzc3QXVFVGoxU0RGY21MZTVMZmQ0WmJ0RHJFNG9T?= =?utf-8?B?eGFmVnFyYXhoS2p0RmEwTmJYK2dPR3E5dzNtNkF2SW5qRTdsY0M3S2lKbWts?= =?utf-8?B?SjNIMit6S1BJZGRhOGlEVmk0Y1dSU3NZR1I2aUl3cHg0UDhNaEZrV09Fd25T?= =?utf-8?B?TWNJWXpkc1B5bjlRcnhFaHJyTWtiSHZsdXpJVUp5NFIya1RxV0VmYXM2SHNG?= =?utf-8?B?bjhsaGpZcGVuSnZsamljVnF4RVVGNHBsTDJ4cTdxbk5yOElVT3pmWWJVbEdF?= =?utf-8?B?STFxOWNDRktPRVhacU56RWxpU2pERVYwTys3M01oZFl5RFdpZVk5MXpHTHk0?= =?utf-8?B?ZzhtQkRHSFJLemhwN3JVRnduMDJ0UHkyOVkvRitrejIwd3luSXo3aWdGK3J3?= =?utf-8?B?UFRZRzFjdVpjWm40TUtZWXRxK0pidG9CaWdHSzEzZURYY25YRk9MWlhWeUc4?= =?utf-8?B?cFJHR1M0S0oyZzRROC9qbUJPM29JMzdkVUJuMzNmOXdYVVB4NEg4K3VCUTVL?= =?utf-8?B?SzE4RWRnb1I3RDRaemtxQjFEVGxXZGdrK1kwZ2x0MlBqdjVKVEF0MTE4YTBG?= =?utf-8?B?RmJiRHF5ZEN6b3NPVk43elFHbUZVdlpjdGdzZ3ZkMXBTOGs2a2hrTlp6Y1hD?= =?utf-8?B?MFc1Z2ZWR3pqUHNuUExsMXdnMkRoZzdMUXJIc2JSVEdianliTVR6cnhmSGNM?= =?utf-8?B?RWh6RE1kSzRUdjk5VkxpY0gzbFhwb2wrcGdoYlBIUzg5QzBsTUc3TWRyM2Zl?= =?utf-8?B?VkVnVTBFd01KQzBJR253N3p5NkZTR0YyMDNac3cyajhoTzZKbXcwV1dnWEw0?= =?utf-8?B?cVU1UjV4ZGtqeTB4WktxVi95U25JWmI5VVdZRHhHNWZJanN5cDNYaGtXSFhY?= =?utf-8?B?UDMyZVY0ZkNpYzdCWmd5alZPME5YVEpYZFlUbTE0amVqdkVUclQ1Rng2OERr?= =?utf-8?B?SlJlempNWU1IdjBjSG8zZ1h6bHN1L0V4TTRMRnFkdnpUMHNmMzNFc2NGeTBE?= =?utf-8?B?MVBINEJ0cXhYTkdVWGVIUTVtWlAvSGIvVXRGcys2RVU5T3BOQVQzYzVteUdS?= =?utf-8?B?YytVL1NNSkVZbXlPclNFLzRXUHJrakRMeVMxVDNvbGhtNWYzMlhpb3JCV3Rp?= =?utf-8?B?N1g1NU1CM3AzL2NhRTcwTXRvNng5em1OQ0crMGZ3L0JGNFhtRUlGODJyay9X?= =?utf-8?B?bmd0NVV4RTJXZWk1cHZvbE4rOW44VVlQem0yZ1hOL0JRd0s4c0Rpa1NmQzlV?= =?utf-8?B?M3Q3bnpRVHR6ZG1GLzVUV0twSFpUWkxOWHNLaXhQbE85V21MejJtcWlxOFBO?= =?utf-8?B?aDdEbVg4VTMzQjlEd2ZKaDhHSi85VnhQTWlaSDJNNFpNMDgwaW55emRUQXc4?= =?utf-8?B?RnlXV0VBZWhYeEtPUWZ1a2JYTUFMRHVKbHBveU9NWDJpMWJWZ1liZz09?= X-Exchange-RoutingPolicyChecked: j2OWTNFM00IfMMcGy4c2HRW0zK0ak7E77ZlqAR2cw+WqAIJt58dw4tTDtUFzmwu+ml9hTdySBHe1gBBo6NRSHPbye6WBu9TLOS2fcMyDAFo5oyyEEjfzDnBwsAGPjc54B08Fx8dpi311n7em8OAJGOJ0UeBb0IAzQUoWK2WMMObYZzg9V90ZDM0a9OKZHvOQkViqxEkS2SsCKCwC3DRSzF2gnbdySqgIWxGh/No7ZGqxgeH7gegT46EKUwejaKfO1A0VEE85SyaoBayrz7thbPWsdDX3bt7IzFhmqsWtTUaWupmZB23GoQBSGx2Kd2J3v3x3jsWZc5sIPaoQtstDlw== X-MS-Exchange-CrossTenant-Network-Message-Id: 67d0e1a5-eb86-479d-f7c8-08de7e6d8b95 X-MS-Exchange-CrossTenant-AuthSource: DS0PR11MB7997.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2026 06:23:29.3088 (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: RHulvF1IWxwVFASbCHqymEWA3dMFMOus6plknAN1iNdYYKgB6HVSb3L+fa2iCH/cJxJ0sO1R6Ughp0Yh9WdYmg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM3PPFD320E2257 X-OriginatorOrg: intel.com On 3/2/2026 7:25 AM, Maciej Wieczor-Retman wrote: > diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c > index 9aa11224a038..b60269174d95 100644 > --- a/arch/x86/kernel/cpu/common.c > +++ b/arch/x86/kernel/cpu/common.c > @@ -675,6 +675,7 @@ cpuid_dependent_features[] = { > static void filter_cpuid_features(struct cpuinfo_x86 *c, bool warn) > { > const struct cpuid_dependent_feature *df; > + char feature_buf[16]; > The usage of number 16 isn't intuitive here. Might be useful to use a macro here. See below.. > for (df = cpuid_dependent_features; df->feature; df++) { > > @@ -697,7 +698,7 @@ static void filter_cpuid_features(struct cpuinfo_x86 *c, bool warn) > continue; > > pr_warn("CPU: CPU feature %s disabled, no CPUID level 0x%x\n", > - x86_cap_flags[df->feature], df->level); > + x86_cap_name(df->feature, feature_buf), df->level); > } > } > > @@ -1634,6 +1635,7 @@ static inline bool parse_set_clear_cpuid(char *arg, bool set) > > while (arg) { > bool found __maybe_unused = false; > + char name_buf[16]; > unsigned int bit; > > opt = strsep(&arg, ","); > @@ -1654,10 +1656,7 @@ static inline bool parse_set_clear_cpuid(char *arg, bool set) > setup_clear_cpu_cap(bit); > } > /* empty-string, i.e., ""-defined feature flags */ > - if (!x86_cap_flags[bit]) > - pr_cont(" %d:%d\n", bit >> 5, bit & 31); > - else > - pr_cont(" %s\n", x86_cap_flags[bit]); > + pr_cont(" %s\n", x86_cap_name(bit, name_buf)); > > taint++; > } > @@ -1980,6 +1979,23 @@ static void generic_identify(struct cpuinfo_x86 *c) > #endif > } > It would be useful to have a comment here because the function is called from multiple files. You can probably reuse the one from the deleted x86_feature_name(). /* * Return the feature "name" if available, otherwise return * the X86_FEATURE_* numerals to make it easier to identify * the feature. */ > +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]; > + > + if (name) > + return name; > + > + snprintf(buf, 16, "%u:%u", word, bit & 31); The buffer size of 16 is expected to be in sync with the callers and easy to mess up. Also, the callers wouldn't know that it needs to be 16 because of this snprintf(). Should we have a simple define for it? Maybe something like, #define X86_CAP_BUF_SIZE 16 > + return buf; > +} > + > /* > * This does the hard work of actually picking apart the CPU stuff... > */ > diff --git a/arch/x86/kernel/cpu/cpuid-deps.c b/arch/x86/kernel/cpu/cpuid-deps.c > index 146f6f8b0650..dfd79b06ab7b 100644 > --- a/arch/x86/kernel/cpu/cpuid-deps.c > +++ b/arch/x86/kernel/cpu/cpuid-deps.c > @@ -2,6 +2,7 @@ > #include > #include > #include Nit: You can consider adding a newline here. > +#include > #include >