From patchwork Mon Jul 17 23:15:11 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Gleixner X-Patchwork-Id: 121672 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:c923:0:b0:3e4:2afc:c1 with SMTP id j3csp1406413vqt; Mon, 17 Jul 2023 16:38:06 -0700 (PDT) X-Google-Smtp-Source: APBJJlHoMRFAtiVxLmIIdEy8R5hpc3CPU7Fn+6Dy/NnmW6px1wIQD7Qk/2OBg1riqt+tbqzkms9m X-Received: by 2002:a05:6808:171c:b0:3a3:4314:8dc0 with SMTP id bc28-20020a056808171c00b003a343148dc0mr12174096oib.5.1689637086176; Mon, 17 Jul 2023 16:38:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689637086; cv=none; d=google.com; s=arc-20160816; b=KcWEH5rp4Ox6aWBaNN0V4wpmI1MEZxKS9/vzH2O+dVjtcxeGvYjUf11GB4IYjiTs+q T3/oeN6ypHCmWO3Ywk8fjZJg+CIyGCbO6UHcdx5BmgZF0HCodQCXe1K5wYs725QSkxX3 CwZd9y7iuOKzn35plotCIGv2HfV6qVD/H0nvp1SyKozA6/C75kgNcHEOFvhvHwL5yrtD q4n058mhENtv/PMvSQiKOKTEOWUCwKCgYWx+GX1Kw9cBCz20APKtP8pFe/P12I1tu8Vt ZDkyDGm7npRV6O6qSsE2eGF9RrOYl+Bz3OrNkzmdBRecganaARBGm3hj4v+qreq5mmKg ucSw== 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=KOrCgxfZUWOEP5kQU9kDQX721qeaGgb7AagTW/GicUQ=; fh=MJzvnywV9/WrN/ASipmGkNx/7jKFHnq83nsgXe/obdc=; b=SQ/KsIgQoIto4cC7Rb23w0AGnmPYOvqKzJgRTqHNycvwvZLJiDxpHHM/DRooFz2hPH jRZjl3vInbABE6OKj065/KQPqWclr/LoIM75RPHOmOOyGWGKuwlKtNBkaBNbUELtruj6 IAvQwtedfR61iiIaTgw1eAgMFFYzPhFUgx3NMgfrQeciwbAOAaN7CtkQd7PDlGOGfDp2 56kQqvB9URQ3NpKz2+O1mmhRyVAGmu5M0I1bKRdj2Z4fHv8fJGFyxe9AE1TolZWX8wms mHQ4Fqgbl9wvewLydlgH8upSy/9EPjV2naWyGJby5KOJJF12LgY5xRJvrdSgAHx6xqVP JO4w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linutronix.de header.s=2020 header.b=oiRhFEFF; 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: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id j184-20020a638bc1000000b0055c7f16bb29si549736pge.143.2023.07.17.16.37.53; Mon, 17 Jul 2023 16:38:06 -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=oiRhFEFF; 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 S231452AbjGQXQn (ORCPT + 99 others); Mon, 17 Jul 2023 19:16:43 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36382 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231459AbjGQXQk (ORCPT ); Mon, 17 Jul 2023 19:16:40 -0400 Received: from galois.linutronix.de (Galois.linutronix.de [IPv6:2a0a:51c0:0:12e:550::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0E67619B3 for ; Mon, 17 Jul 2023 16:15:51 -0700 (PDT) Message-ID: <20230717223224.504601096@linutronix.de> DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1689635712; 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=KOrCgxfZUWOEP5kQU9kDQX721qeaGgb7AagTW/GicUQ=; b=oiRhFEFFvGuOGsKWDiQ8THEq6of5+8aMxDRz8+YOj50I8rOP8AY970wOn35phqd76f38XD 8zFZw3BC4E+ZRTJpTr258Pf6glz18bevFmz9K6hBj8mpl+QBFT1gSk4iufxaN9carsBtW5 Y9hPPM2z54hgpT/d95k7+tP8iAenhd3Zu24DrOkb4wMhbk71PFHTUeaAQHx9cMzZ1ScpzO +vonEO4uHaQTiCsl6RtjECwQNpDVscxUFX9mv5tM7A1TvJmY9NGwsttjuzZyNEnnMhNsdZ +cZpTde91cpythj/IUHK3pJ0alWpYsPvUwPplg6p/kTdR+rYnQmi2MFL3FPH8w== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1689635712; 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=KOrCgxfZUWOEP5kQU9kDQX721qeaGgb7AagTW/GicUQ=; b=Nc/fnigbZfoKzY8HMkUzD6HHp5XpCEeUqCsfekUtoDmN4YGLGQMvvszhGWqLGWAXsaq1Ai 5HwnoT74tFmHmJAQ== From: Thomas Gleixner To: LKML Cc: x86@kernel.org, Linus Torvalds , Andrew Cooper , Tom Lendacky , Paolo Bonzini , Wei Liu , Arjan van de Ven , Juergen Gross Subject: [patch 24/58] x86/apic/32: Remove pointless default_acpi_madt_oem_check() References: <20230717223049.327865981@linutronix.de> MIME-Version: 1.0 Date: Tue, 18 Jul 2023 01:15:11 +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 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1771712897084216249 X-GMAIL-MSGID: 1771712897084216249 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 --- 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; -}