Received: by 2002:a05:6359:6284:b0:131:369:b2a3 with SMTP id se4csp3048747rwb; Mon, 7 Aug 2023 07:32:18 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGIriw5tHPAuvy2pvRFiZ6AZ7g7asYHFbObza3U19MSms2q/bFV8zuZYeKeiF4ep2SEtPZ3 X-Received: by 2002:a17:903:2281:b0:1bb:c5b5:8353 with SMTP id b1-20020a170903228100b001bbc5b58353mr8491793plh.4.1691418738238; Mon, 07 Aug 2023 07:32:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1691418738; cv=none; d=google.com; s=arc-20160816; b=1EZwNatCvUlUkHvDREHv6HIXvsgmmb46bgkfH1LAo6Y/fVxacTpVILeOeRr0fVg/S1 mjHxPCaL2aGoR2iaBn7V7gJBmNBBPIvbXFYVmwWFYCVh/XTRH5o52hNwSRcljVnd95iT H+06JoNbjKRVXnd58wm0pNPfHBF7MZf7GORs6KvCy7VGrahzQkflRdECim772hNvgX2x nz5o8tvy+TU1M0y5LfWOqfqVqUK729v05Vt4BWfA6LWPt3yvjSSkvdjQ1rNv6jrZ6lpz HB8bEfpZKNLZ4sVjhnrImx8SVy8nAum/4aYwbPfv8nR1YzhMMG78mH5BvUsRKSXGSoot 0lnA== 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=X3MHNyfBXHRhCX+hsuUai8tmF+yG5iARhPCZvhjm+2M=; fh=/92WVKYrcN3rA268QXyKzVtm/UtxHeI2lnbU295XDiQ=; b=r1keEA0mrvtHRJMoY9Ab5JP6FaF539ZVYvZ3fuOFTivUxhUPt1FvGEazfU0fKInjeE LKLxGXDcsmutLTGLMSaqrhMgMCdPMeiiVhUJ0MZr8RJ1yNkJhdXNsUIa0ZTRdOiQ9Clj QgSAvhcrLoUcJSnvLIw8EeiYn4pRLMJ6naeAAPMlB1lTfbPVn+y0H4z7c8WhQaqoR+kt 12cVc4aAyr4RRbhxg235wyeiMG2P3z5LTz/GXuHutwccu6HZjz8fc9bDEUTCu2G5ODqZ zp0aw4vtknqw+n7olfBTImWb0hap4IlBqW2qXy5JWnKFUxKvrX7SDeeKsfPz9ROh8Ncd jCEg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linutronix.de header.s=2020 header.b=DXXMbB2H; 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 q18-20020a170902dad200b001bc634f4d75si2809592plx.612.2023.08.07.07.32.05; Mon, 07 Aug 2023 07:32:18 -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=DXXMbB2H; 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 S232118AbjHGNyH (ORCPT + 99 others); Mon, 7 Aug 2023 09:54:07 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41280 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234709AbjHGNxV (ORCPT ); Mon, 7 Aug 2023 09:53: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 51A7310EF for ; Mon, 7 Aug 2023 06:53:08 -0700 (PDT) Message-ID: <20230807135027.534633642@linutronix.de> DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1691416386; 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=X3MHNyfBXHRhCX+hsuUai8tmF+yG5iARhPCZvhjm+2M=; b=DXXMbB2Ho7x5WE9SUSWUdchy2gfXzWq0UFOCFSaDvrDoTN2KL57RtE5fjtCI11M3E7jC3g soyHA2R3toj+lboJxDLPjyXRtxJF08H8lDWGlGExuAb22DdZaVI23TiEmablAYUhnQHTFM aMeslJnt1Jx9y9rB9BC4wZp6bvEuTxZlQ4avYoDQhAwzwBlv3v5y6wDs9KYG6S/bSLbNM9 ZYsZdAfXr9yqbj3qM4xbJB/5R8cJb6LIFjmzxtJZ7gmnsndtoiaGdpWcB+RU/h9pVjBXlG j/aR6ykPmdJErusxeHiPiXHZoJH27MskEf8G3MB72OqH5rUitJCYW6tHII09CQ== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1691416386; 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=X3MHNyfBXHRhCX+hsuUai8tmF+yG5iARhPCZvhjm+2M=; b=3SCvDxL2pthhEffENN4YrI6PMPhCiJmnKafwaOimCLKSKOTr+6Rzcf5jftcH2d0qi7fZ2Y YRNhFQ1RUweR4BAg== From: Thomas Gleixner To: LKML Cc: x86@kernel.org, Tom Lendacky , Andrew Cooper , Arjan van de Ven , Huang Rui , Juergen Gross , Dimitri Sivanich , Michael Kelley , Sohil Mehta , K Prateek Nayak , Kan Liang , Zhang Rui , "Paul E. McKenney" , Feng Tang , Andy Shevchenko Subject: [patch 21/53] x86/apic: Remove yet another dubious callback References: <20230807130108.853357011@linutronix.de> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Date: Mon, 7 Aug 2023 15:53:06 +0200 (CEST) X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS 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 Paranoia is not wrong, but having an APIC callback which is in most implementations a complete NOOP and in one actually looking whether the APICID of an upcoming CPU has been registered. The same APICID which was used to bring the CPU out of wait for startup. That's paranoia for the paranoia sake. Remove the voodoo. Signed-off-by: Thomas Gleixner --- arch/x86/include/asm/apic.h | 1 - arch/x86/kernel/apic/apic.c | 3 --- arch/x86/kernel/apic/apic_common.c | 5 ----- arch/x86/kernel/apic/apic_flat_64.c | 2 -- arch/x86/kernel/apic/local.h | 2 -- arch/x86/kernel/apic/probe_32.c | 1 - 6 files changed, 14 deletions(-) --- a/arch/x86/include/asm/apic.h +++ b/arch/x86/include/asm/apic.h @@ -290,7 +290,6 @@ struct apic { /* Probe, setup and smpboot functions */ int (*probe)(void); int (*acpi_madt_oem_check)(char *oem_id, char *oem_table_id); - bool (*apic_id_registered)(void); void (*init_apic_ldr)(void); u32 (*cpu_present_to_apicid)(int mps_cpu); --- a/arch/x86/kernel/apic/apic.c +++ b/arch/x86/kernel/apic/apic.c @@ -1538,9 +1538,6 @@ static void setup_local_APIC(void) apic_write(APIC_ESR, 0); } #endif - /* Validate that the APIC is registered if required */ - BUG_ON(apic->apic_id_registered && !apic->apic_id_registered()); - /* * Intel recommends to set DFR, LDR and TPR before enabling * an APIC. See e.g. "AP-388 82489DX User's Manual" (Intel --- a/arch/x86/kernel/apic/apic_common.c +++ b/arch/x86/kernel/apic/apic_common.c @@ -27,11 +27,6 @@ u32 default_cpu_present_to_apicid(int mp } EXPORT_SYMBOL_GPL(default_cpu_present_to_apicid); -bool default_apic_id_registered(void) -{ - return test_bit(read_apic_id(), phys_cpu_present_map); -} - /* * Set up the logical destination ID when the APIC operates in logical * destination mode. --- a/arch/x86/kernel/apic/apic_flat_64.c +++ b/arch/x86/kernel/apic/apic_flat_64.c @@ -70,7 +70,6 @@ static struct apic apic_flat __ro_after_ .name = "flat", .probe = flat_probe, .acpi_madt_oem_check = flat_acpi_madt_oem_check, - .apic_id_registered = default_apic_id_registered, .delivery_mode = APIC_DELIVERY_MODE_FIXED, .dest_mode_logical = true, @@ -139,7 +138,6 @@ static struct apic apic_physflat __ro_af .name = "physical flat", .probe = physflat_probe, .acpi_madt_oem_check = physflat_acpi_madt_oem_check, - .apic_id_registered = default_apic_id_registered, .delivery_mode = APIC_DELIVERY_MODE_FIXED, .dest_mode_logical = false, --- a/arch/x86/kernel/apic/local.h +++ b/arch/x86/kernel/apic/local.h @@ -61,8 +61,6 @@ void default_send_IPI_allbutself(int vec void default_send_IPI_all(int vector); void default_send_IPI_self(int vector); -bool default_apic_id_registered(void); - #ifdef CONFIG_X86_32 void default_send_IPI_mask_sequence_logical(const struct cpumask *mask, int vector); void default_send_IPI_mask_allbutself_logical(const struct cpumask *mask, int vector); --- a/arch/x86/kernel/apic/probe_32.c +++ b/arch/x86/kernel/apic/probe_32.c @@ -38,7 +38,6 @@ static struct apic apic_default __ro_aft .name = "default", .probe = probe_default, - .apic_id_registered = default_apic_id_registered, .delivery_mode = APIC_DELIVERY_MODE_FIXED, .dest_mode_logical = true,