From patchwork Mon Aug 14 08:53:59 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Gleixner X-Patchwork-Id: 135311 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b824:0:b0:3f2:4152:657d with SMTP id z4csp2644195vqi; Mon, 14 Aug 2023 03:20:40 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFzikwiAA6kwi/pyc7c1uOXT2pjfa8Xia3N3rqkzMFIKqAn6ZXY/xlRfRxbtRk374C73k85 X-Received: by 2002:a05:6a21:47c6:b0:140:2805:6cc9 with SMTP id as6-20020a056a2147c600b0014028056cc9mr10709969pzc.57.1692008440012; Mon, 14 Aug 2023 03:20:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1692008440; cv=none; d=google.com; s=arc-20160816; b=k+4OnYV4b7hTyiUfSj4XX1q4rn8fYmT5fGsJUAaVOzXsnYEYIjMGci80/P9LU1W5YU RtBRk5r5izPShZDGl/D9/+rCZ/zT2U3pWAley1m7B7Bun0iyXNlbL5Ry5QBDJnf4Ij3b Pfrx6iRWLST55K3lzvvfi8aCOmMfj46O39trjk3EUzKyQnSb5dyPGuHUWsrvZhBM71ul KngsNr4eCpbPLMgRJTM7Gojr6IvRmGyuVYQBGPMCXYl5ge/uy74JjW7jBWTTNP7juVa+ 13zttNwNwkKflj7RQESIqdrV4f45OzTUWmnu3PSkoonhd95aY0g7/x76Lus4HVJMEbZI UeRw== 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=ziamZBTASNl2sFH0KVh93VbhwlbtdBcXmYqEKL7Hxj8=; fh=vmKIJtcbtoHWhyuxI4oEq8r1SWZ2V9Rrbp1Orw2DxqA=; b=Um86XkQQKLpbQLsaQCK1gUIu6ucL1QZORHWoRE1d4vJY//SZqTXvRta9ECus4bS5Po Gr8P9XXLvd01IdFcccMXm6aZndt/4Ye2pG9w64Bhn7ooZfc97E+0OLphGKNNwiOX/BQ3 X/2OdQ23V8xoQlWx8yQSyOgLHNZpN2g8Fc52XK3M+YKg7Y7BNV90OmQVD58wrfBBWKX1 5hD0bSVeTnbrxF5o3wuYcgGiuPoLHXa4vaTDAswU0RXlqc6HcO2nN0ec+XnQ7QSBGGiN h40rcn9Bd30v9nCbUbwF59kM0aRR4I5t/ftyXsXssK7N9SJ2MGHWEtHaq+P1VSOOL+H+ cRIQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linutronix.de header.s=2020 header.b=PkLkFohf; dkim=neutral (no key) header.i=@linutronix.de header.b=zJryGnTm; 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 s10-20020a056a00194a00b0068050054196si8027505pfk.299.2023.08.14.03.20.26; Mon, 14 Aug 2023 03:20:39 -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=PkLkFohf; dkim=neutral (no key) header.i=@linutronix.de header.b=zJryGnTm; 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 S235062AbjHNIy6 (ORCPT + 99 others); Mon, 14 Aug 2023 04:54:58 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40840 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234953AbjHNIyB (ORCPT ); Mon, 14 Aug 2023 04:54:01 -0400 Received: from galois.linutronix.de (Galois.linutronix.de [193.142.43.55]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 115D410B for ; Mon, 14 Aug 2023 01:54:01 -0700 (PDT) Message-ID: <20230814085112.981956102@linutronix.de> DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1692003239; 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=ziamZBTASNl2sFH0KVh93VbhwlbtdBcXmYqEKL7Hxj8=; b=PkLkFohf/fNeia304l0kzv2sDu58RFwyXCVX+0jc6tXfoUML77STHzaHuSGg+AGmVf6Lhl UcFIMj8t/rAgvoTtpsne2tgW25VmugdPfAIRI9LVbzPVsGOslt9s3YTOcG2Ddr1WlNckcq rIu3/Puska9uROKnyK4EJgt+0uMDdeXzJf19ONpIO6jxNEPkDrxjOXrBQjRDTjEhNo2sQW N2RS2t/pJNeUMbUHxX625za+MMIehlYcLfYR6FWinsZ8hABpg7icJw06GuIUmMl8mVxMR2 956EY/v8rQPFFXh1Zooet/v9khJmwra+r6UTszKT+KSBAbNHMQ3UV2A2ygP+OQ== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1692003239; 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=ziamZBTASNl2sFH0KVh93VbhwlbtdBcXmYqEKL7Hxj8=; b=zJryGnTmfF3L9cjCLZ68mnFRcqCDoPeoE6qMJ3u+7F/JEb4Jxxg8g33HZjFaCkHkB8dLzI rIXesLfQuvjeP8Cg== 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 , Wei Liu , Pu Wen , Qiuxu Zhuo , Sohil Mehta Subject: [patch V4 16/41] x86/apic: Use u32 for check_apicid_used() References: <20230814085006.593997112@linutronix.de> MIME-Version: 1.0 Date: Mon, 14 Aug 2023 10:53:59 +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 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: 1774199442303488120 X-GMAIL-MSGID: 1774199442303488120 APIC IDs are used with random data types u16, u32, int, unsigned int, unsigned long. Make it all consistently use u32 because that reflects the hardware register width and move the default implementation to local.h as there are no users outside the apic directory. Signed-off-by: Thomas Gleixner Tested-by: Juergen Gross Tested-by: Sohil Mehta Tested-by: Michael Kelley Reviewed-by: Arjan van de Ven --- arch/x86/include/asm/apic.h | 3 +-- arch/x86/kernel/apic/apic_common.c | 2 +- arch/x86/kernel/apic/apic_flat_64.c | 2 -- arch/x86/kernel/apic/apic_noop.c | 2 ++ arch/x86/kernel/apic/bigsmp_32.c | 2 +- arch/x86/kernel/apic/local.h | 1 + 6 files changed, 6 insertions(+), 6 deletions(-) --- a/arch/x86/include/asm/apic.h +++ b/arch/x86/include/asm/apic.h @@ -292,7 +292,7 @@ struct apic { int (*acpi_madt_oem_check)(char *oem_id, char *oem_table_id); bool (*apic_id_registered)(void); - bool (*check_apicid_used)(physid_mask_t *map, int apicid); + bool (*check_apicid_used)(physid_mask_t *map, u32 apicid); void (*init_apic_ldr)(void); void (*ioapic_phys_id_map)(physid_mask_t *phys_map, physid_mask_t *retmap); int (*cpu_present_to_apicid)(int mps_cpu); @@ -538,7 +538,6 @@ extern int default_apic_id_valid(u32 api extern u32 apic_default_calc_apicid(unsigned int cpu); extern u32 apic_flat_calc_apicid(unsigned int cpu); -extern bool default_check_apicid_used(physid_mask_t *map, int apicid); extern void default_ioapic_phys_id_map(physid_mask_t *phys_map, physid_mask_t *retmap); extern int default_cpu_present_to_apicid(int mps_cpu); --- a/arch/x86/kernel/apic/apic_common.c +++ b/arch/x86/kernel/apic/apic_common.c @@ -18,7 +18,7 @@ u32 apic_flat_calc_apicid(unsigned int c return 1U << cpu; } -bool default_check_apicid_used(physid_mask_t *map, int apicid) +bool default_check_apicid_used(physid_mask_t *map, u32 apicid) { return physid_isset(apicid, *map); } --- a/arch/x86/kernel/apic/apic_flat_64.c +++ b/arch/x86/kernel/apic/apic_flat_64.c @@ -158,8 +158,6 @@ static struct apic apic_physflat __ro_af .disable_esr = 0, - .check_apicid_used = NULL, - .ioapic_phys_id_map = NULL, .cpu_present_to_apicid = default_cpu_present_to_apicid, .phys_pkg_id = flat_phys_pkg_id, --- a/arch/x86/kernel/apic/apic_noop.c +++ b/arch/x86/kernel/apic/apic_noop.c @@ -18,6 +18,8 @@ #include +#include "local.h" + static void noop_send_IPI(int cpu, int vector) { } static void noop_send_IPI_mask(const struct cpumask *cpumask, int vector) { } static void noop_send_IPI_mask_allbutself(const struct cpumask *cpumask, int vector) { } --- a/arch/x86/kernel/apic/bigsmp_32.c +++ b/arch/x86/kernel/apic/bigsmp_32.c @@ -18,7 +18,7 @@ static unsigned bigsmp_get_apic_id(unsig return (x >> 24) & 0xFF; } -static bool bigsmp_check_apicid_used(physid_mask_t *map, int apicid) +static bool bigsmp_check_apicid_used(physid_mask_t *map, u32 apicid) { return false; } --- a/arch/x86/kernel/apic/local.h +++ b/arch/x86/kernel/apic/local.h @@ -64,6 +64,7 @@ void default_send_IPI_all(int vector); void default_send_IPI_self(int vector); bool default_apic_id_registered(void); +bool default_check_apicid_used(physid_mask_t *map, u32 apicid); #ifdef CONFIG_X86_32 void default_send_IPI_mask_sequence_logical(const struct cpumask *mask, int vector);