Received: by 2002:a05:6358:701b:b0:131:369:b2a3 with SMTP id 27csp3121385rwo; Mon, 24 Jul 2023 06:38:32 -0700 (PDT) X-Google-Smtp-Source: APBJJlE2FWlViQaWxPljEfug3JDpXu0on7GA5porKohFE4+AJ9/k+mZ7Xtg8PXsO/96UpBo+sheW X-Received: by 2002:a50:ec94:0:b0:518:7a3b:e9fb with SMTP id e20-20020a50ec94000000b005187a3be9fbmr9191318edr.19.1690205912403; Mon, 24 Jul 2023 06:38:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1690205912; cv=none; d=google.com; s=arc-20160816; b=mEisVhw70UFvwDaYW/xErP4kJRh5z0fs4Nsgc3TYLJ8ONfBg82VHi1Z78CPmOi8tpU 5zQDqU1B7tTISTxeZKceiqLzTFedC28pxOrldiGMVR3PTZ6Jj7om5zVbO/UGkj0H3Dy/ bDS+6AHGR9bq6Sx0iiuOfhrYLgLZjFZR+d9TgKSc5FTd35yGLlPutSb8gYszcSoMSJD1 1dBUvD+WbRQvgl0E5h8t5FHSOMd9Ggs7S/d7L4nuZcFnnUpayyBW1xdVep1yS0F2njlH DIv3a2duuLikZcvFb6P9Sb53w6kstraWMqlqnzip7kOISONVWQKcDhK85mYNRPTy1ulH lwEA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:date:mime-version:references:subject:cc:to:from :dkim-signature:dkim-signature:message-id; bh=XBWDLku2nyQ5/5bJqq7OR3c/AtCppUf/8w42TtOLQ9Q=; fh=mE3iieUIZLcDfOLIULj9X6/p0bMDPZGFSVRsnyRUnTc=; b=GVMiFpFJmNTFHEH9oyXrddWTBs8uZ+oOO1aYQrAxrB/mXpc3BTQXmAO/YbilqBf7tF LtEABPzYVHxjO/TmeKxBGlWPq3/9RAz+5ko1blJYMjlvzxbgtCGxQGW4bZu4oSfTdA3v W0sfaioNuXuQa7zk3zNdqQce4jd/dBmxAP1wqpWScoei0xmjOVv2hDp82htbFnymStwX DXfL0PvQh2L2IEcHPshLTfVipdtco/955AiIjjWTPI2j9Q6+fxC+WeKLQntYiED3XvXz LSDOoXYMP1hC773v3y168q1S25zonL2tiOYS3zMxjtJwquSN8n/quU2ga9J8fOAhBm8w +ssg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linutronix.de header.s=2020 header.b=Rn1RuI4o; dkim=neutral (no key) header.i=@linutronix.de header.s=2020e; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=linutronix.de Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id f8-20020a056402150800b005222c703a3bsi1501873edw.690.2023.07.24.06.38.07; Mon, 24 Jul 2023 06:38:32 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linutronix.de header.s=2020 header.b=Rn1RuI4o; dkim=neutral (no key) header.i=@linutronix.de header.s=2020e; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=linutronix.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231575AbjGXNfq (ORCPT + 99 others); Mon, 24 Jul 2023 09:35:46 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37412 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231442AbjGXNfV (ORCPT ); Mon, 24 Jul 2023 09:35:21 -0400 Received: from galois.linutronix.de (Galois.linutronix.de [IPv6:2a0a:51c0:0:12e:550::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2CBF21B8 for ; Mon, 24 Jul 2023 06:34:47 -0700 (PDT) Message-ID: <20230724132046.033563977@linutronix.de> DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1690205666; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: references:references; bh=XBWDLku2nyQ5/5bJqq7OR3c/AtCppUf/8w42TtOLQ9Q=; b=Rn1RuI4ok1LNKdo0pSoUsJ8vum8dDf3MJB+pYApITyqT958xUvvroeGHufqwRLSKxfhh1u Pdjp9hDei1bguhaBx4/cPfR1yZbwSPQViCqOgse4llUuagbergyIxZy7MV4evoqlri88Os z35ZOOZlL3jm0jJxibuToAWWurEGpQgOIy55xe3GPcMMZSMq/Fn9ij3feKTHLcQdQ+W3ov bc9BBe7xGuVleG2MwLJvG6DM4bqG9ewg+LHD82lPcXJVjtYsbkT3NXkJ/pmbkfjsoHToeX uW9jqRgjkVQjXyPwjIkfVcoTEyaJO2xgpw6sLYZEbJS7knotbe8bNNdGMYNT+Q== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1690205666; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: references:references; bh=XBWDLku2nyQ5/5bJqq7OR3c/AtCppUf/8w42TtOLQ9Q=; b=TjfLjKbPKwED1Fu6tWBWhB/ljvQL/gtk/WYYh2A0OslVlfyEN2Sl+5rSrftEab67kKAs07 HeXhXzsjVSl3O8Bw== From: Thomas Gleixner To: LKML Cc: x86@kernel.org, Andrew Cooper , Tom Lendacky , Paolo Bonzini , Wei Liu , Arjan van de Ven , Juergen Gross , Michael Kelley , Peter Keresztes Schmidt , "Peter Zijlstra (Intel)" Subject: [patch V2 24/58] x86/apic/32: Remove pointless default_acpi_madt_oem_check() References: <20230724131206.500814398@linutronix.de> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Date: Mon, 24 Jul 2023 15:34:25 +0200 (CEST) X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 32bit there is no APIC implementing the acpi_madt_oem_check() except XEN PV, but that does not matter at all. generic_apic_probe() runs before ACPI tables are parsed. This selects the XEN APIC if there is no command line override because the XEN APIC driver is the first to be probed. If there is a command line override then the XEN PV driver won't be selected in the MADT OEM check either. As there is no other MADT check implemented for 32bit APICs, this whole excercise is a NOOP and can be removed. Signed-off-by: Thomas Gleixner Acked-by: Peter Zijlstra (Intel) --- arch/x86/include/asm/apic.h | 4 +++- arch/x86/kernel/apic/bigsmp_32.c | 1 - arch/x86/kernel/apic/probe_32.c | 22 ---------------------- 3 files changed, 3 insertions(+), 24 deletions(-) --- a/arch/x86/include/asm/apic.h +++ b/arch/x86/include/asm/apic.h @@ -459,10 +459,12 @@ static inline unsigned int read_apic_id( #ifdef CONFIG_X86_64 typedef int (*wakeup_cpu_handler)(int apicid, unsigned long start_eip); extern void acpi_wake_cpu_handler_update(wakeup_cpu_handler handler); +extern int default_acpi_madt_oem_check(char *, char *); +#else +static inline int default_acpi_madt_oem_check(char *a, char *b) { return 0; } #endif extern int default_apic_id_valid(u32 apicid); -extern int default_acpi_madt_oem_check(char *, char *); extern void default_setup_apic_routing(void); extern u32 apic_default_calc_apicid(unsigned int cpu); --- a/arch/x86/kernel/apic/bigsmp_32.c +++ b/arch/x86/kernel/apic/bigsmp_32.c @@ -112,7 +112,6 @@ static struct apic apic_bigsmp __ro_afte .name = "bigsmp", .probe = probe_bigsmp, - .acpi_madt_oem_check = NULL, .apic_id_valid = default_apic_id_valid, .apic_id_registered = bigsmp_apic_id_registered, --- a/arch/x86/kernel/apic/probe_32.c +++ b/arch/x86/kernel/apic/probe_32.c @@ -60,7 +60,6 @@ static struct apic apic_default __ro_aft .name = "default", .probe = probe_default, - .acpi_madt_oem_check = NULL, .apic_id_valid = default_apic_id_valid, .apic_id_registered = default_apic_id_registered, @@ -176,24 +175,3 @@ void __init generic_apic_probe(void) } printk(KERN_INFO "Using APIC driver %s\n", apic->name); } - -/* This function can switch the APIC even after the initial ->probe() */ -int __init default_acpi_madt_oem_check(char *oem_id, char *oem_table_id) -{ - struct apic **drv; - - for (drv = __apicdrivers; drv < __apicdrivers_end; drv++) { - if (!(*drv)->acpi_madt_oem_check) - continue; - if (!(*drv)->acpi_madt_oem_check(oem_id, oem_table_id)) - continue; - - if (!cmdline_apic) { - apic = *drv; - printk(KERN_INFO "Switched to APIC driver `%s'.\n", - apic->name); - } - return 1; - } - return 0; -}