Received: by 2002:a89:48b:0:b0:1f5:f2ab:c469 with SMTP id a11csp571920lqd; Wed, 24 Apr 2024 10:19:17 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCU5uvbm1fPfmh2u+2kY3ZTLGbRpdLYBbM4zMvbsiuL+K+ya0KlLeUGtaABly33/Dd246ycrR/2JfW7PDlIQp7sK36FA9jp0kH0rjWpKHw== X-Google-Smtp-Source: AGHT+IEU3ydqGJjBuC6mXMnFvnomeU5QvtC1+jClpdJwOQPxYXCAF8r0IaFj/VeGUBYD/569pfHL X-Received: by 2002:a17:906:3b09:b0:a55:b581:dca8 with SMTP id g9-20020a1709063b0900b00a55b581dca8mr2109967ejf.38.1713979157520; Wed, 24 Apr 2024 10:19:17 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1713979157; cv=pass; d=google.com; s=arc-20160816; b=au9x/qGo3KArBOlTmWbKiUW5EtMahweY3vo3JjKzjz4boTIp04kbpG7zXA7buby+9Y rWGeb7pVzadLiYDjYhpMwZ8VwN01X/T5iX1PEh/lYET5hqnnSGFTFRqHAVtXqWvxhCPo D4+Ul0B1+1jyCg1M4VRhzp9HYntm60UtaGCemPoJAChfO5N6jzI0idzzVAJbaoXoQlzq ivN1VrzoZcJUIoD+11XNTMWfZ8T1IGjJRIVUTaAbozxuw8Ylq74Kv5O5czPcw2TChTTc JMNu+YTATQu8kGG8wQ86l3RgYQTk7ln7guHwCcKA62afwAuKMWM1ShRenpPWHfq4qsYj kX6Q== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:organization:references :in-reply-to:message-id:subject:cc:to:from:date; bh=eLSLPPVdGjXpDC8KRpScRuSmOhvXL3Y9f3wb0IfrP3g=; fh=16AikNBTrDi3MWggNJ/F51o2IFJ4CPUqIgTMYqIDNIQ=; b=OLdmGnmMme3gJHyibyzFqLzOQ5VdBTGK46h/Kyo9aO1yIRQQp5EmD3Du9rFxa48Pfh WGDaMAEyLs8RB4WS7rh7Ojw2JLykzMJH8ve+lRqllzS6Y9xfwO64OWAUQU5L67d7dqAQ AjS4uDBaA78n5uUVP/tWvUCiDimaXZv6eV5GAZfEq8bH9u1N/sZBKZyZ1vvNomr7MUcT NnTe4POkWeRbZSassNir7suzqdx1XmqWTcgKVpRc6C7YvZXHZoTRgYxKw8rGuRwWmopk xUzQWvL7JQGgdj2OUNzRpZn8chyDVE3PK6NMlSZJjSCUolJ1Q6oDt2QooXrs+KbqI9uo sFkg==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; arc=pass (i=1 spf=pass spfdomain=huawei.com dmarc=pass fromdomain=huawei.com); spf=pass (google.com: domain of linux-kernel+bounces-157376-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-157376-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Return-Path: Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [2604:1380:4601:e00::3]) by mx.google.com with ESMTPS id v24-20020a170906181800b00a526aff86afsi8459379eje.186.2024.04.24.10.19.17 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Apr 2024 10:19:17 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-157376-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) client-ip=2604:1380:4601:e00::3; Authentication-Results: mx.google.com; arc=pass (i=1 spf=pass spfdomain=huawei.com dmarc=pass fromdomain=huawei.com); spf=pass (google.com: domain of linux-kernel+bounces-157376-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-157376-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id 03F4D1F25565 for ; Wed, 24 Apr 2024 17:19:17 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id CE23416D4D1; Wed, 24 Apr 2024 17:19:05 +0000 (UTC) Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) (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 DB228161326; Wed, 24 Apr 2024 17:19:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.176.79.56 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713979145; cv=none; b=B6JRQdCs4N0/nGCe2Hl5Qjrg4gEda73B2cqzp5OeFYQO444Y9AYh+cMQ4q4+adzJoXxzIU49vu7oMoJfZh7qKPbvC/kyzYcGi6rN3/6rcNNmCGtnddBpRc90Ioy53Mf1qzCgO4qcRTD02keQnJQJxQ4z+KJqNu1fBTuQr9ftcgA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713979145; c=relaxed/simple; bh=BCrtxFaK5T02MtCXr6aEAaVrhNkNdyl/HwxjkUTvu8I=; h=Date:From:To:CC:Subject:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=VfPP/GR0mZiQVAfd2ELPIf09pqMkC509LoOELJL4nekbMJP12n7rjHx6s5cHSmLrasdbdBoNsUr9FvqONxGqkbeZ5MzibVyqvE60OzSDuE0nVg8BIYNknZ9Agbg8cWAtt6MXlUTZOmsBBA33eWrS+cG2K00fspW1dpkSSLLfuOQ= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=Huawei.com; spf=pass smtp.mailfrom=huawei.com; arc=none smtp.client-ip=185.176.79.56 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=Huawei.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=huawei.com Received: from mail.maildlp.com (unknown [172.18.186.231]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4VPlyX1jGBz6K65n; Thu, 25 Apr 2024 01:16:36 +0800 (CST) Received: from lhrpeml500005.china.huawei.com (unknown [7.191.163.240]) by mail.maildlp.com (Postfix) with ESMTPS id 0E35E140A70; Thu, 25 Apr 2024 01:18:59 +0800 (CST) Received: from localhost (10.202.227.76) by lhrpeml500005.china.huawei.com (7.191.163.240) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.35; Wed, 24 Apr 2024 18:18:58 +0100 Date: Wed, 24 Apr 2024 18:18:57 +0100 From: Jonathan Cameron To: Hanjun Guo CC: Thomas Gleixner , Peter Zijlstra , , , , , , , , , Russell King , "Rafael J . Wysocki" , Miguel Luis , "James Morse" , Salil Mehta , Jean-Philippe Brucker , Catalin Marinas , Will Deacon , Ingo Molnar , Borislav Petkov , Dave Hansen , , , Subject: Re: [PATCH v7 04/16] ACPI: processor: Move checks and availability of acpi_processor earlier Message-ID: <20240424181857.00000e0f@Huawei.com> In-Reply-To: <0cfc4e2d-65ab-0040-2c7d-fad83f32455b@huawei.com> References: <20240418135412.14730-1-Jonathan.Cameron@huawei.com> <20240418135412.14730-5-Jonathan.Cameron@huawei.com> <0cfc4e2d-65ab-0040-2c7d-fad83f32455b@huawei.com> Organization: Huawei Technologies Research and Development (UK) Ltd. X-Mailer: Claws Mail 4.1.0 (GTK 3.24.33; x86_64-w64-mingw32) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit X-ClientProxiedBy: lhrpeml100002.china.huawei.com (7.191.160.241) To lhrpeml500005.china.huawei.com (7.191.163.240) On Tue, 23 Apr 2024 19:53:34 +0800 Hanjun Guo wrote: > > @@ -232,6 +263,7 @@ static int acpi_processor_get_info(struct acpi_device *device) > > acpi_status status = AE_OK; > > static int cpu0_initialized; > > unsigned long long value; > > + int ret; > > > > acpi_processor_errata(); > > > > @@ -316,10 +348,12 @@ static int acpi_processor_get_info(struct acpi_device *device) > > * because cpuid <-> apicid mapping is persistent now. > > */ > > if (invalid_logical_cpuid(pr->id) || !cpu_present(pr->id)) { > > - int ret = acpi_processor_hotadd_init(pr); > > + ret = acpi_processor_hotadd_init(pr, device); > > > > if (ret) > > - return ret; > > + goto err; > > + } else { > > + acpi_processor_set_per_cpu(pr, device); > > } > > > > /* > > @@ -357,6 +391,10 @@ static int acpi_processor_get_info(struct acpi_device *device) > > arch_fix_phys_package_id(pr->id, value); > > > > return 0; > > + > > +err: > > + per_cpu(processors, pr->id) = NULL; > > ... > > > + return ret; > > } > > > > /* > > @@ -365,8 +403,6 @@ static int acpi_processor_get_info(struct acpi_device *device) > > * (cpu_data(cpu)) values, like CPU feature flags, family, model, etc. > > * Such things have to be put in and set up by the processor driver's .probe(). > > */ > > -static DEFINE_PER_CPU(void *, processor_device_array); > > - > > static int acpi_processor_add(struct acpi_device *device, > > const struct acpi_device_id *id) > > { > > @@ -395,28 +431,6 @@ static int acpi_processor_add(struct acpi_device *device, > > if (result) /* Processor is not physically present or unavailable */ > > return 0; > > > > - BUG_ON(pr->id >= nr_cpu_ids); > > - > > - /* > > - * Buggy BIOS check. > > - * ACPI id of processors can be reported wrongly by the BIOS. > > - * Don't trust it blindly > > - */ > > - if (per_cpu(processor_device_array, pr->id) != NULL && > > - per_cpu(processor_device_array, pr->id) != device) { > > - dev_warn(&device->dev, > > - "BIOS reported wrong ACPI id %d for the processor\n", > > - pr->id); > > - /* Give up, but do not abort the namespace scan. */ > > - goto err; > > - } > > - /* > > - * processor_device_array is not cleared on errors to allow buggy BIOS > > - * checks. > > - */ > > - per_cpu(processor_device_array, pr->id) = device; > > - per_cpu(processors, pr->id) = pr; > > Nit: seems we need to remove the duplicated > per_cpu(processors, pr->id) = NULL; in acpi_processor_add(): > > --- a/drivers/acpi/acpi_processor.c > +++ b/drivers/acpi/acpi_processor.c > @@ -446,7 +446,6 @@ static int acpi_processor_add(struct acpi_device > *device, > err: > free_cpumask_var(pr->throttling.shared_cpu_map); > device->driver_data = NULL; > - per_cpu(processors, pr->id) = NULL; I don't follow. This path is used if processor_get_info() succeeded and we later fail. I don't see where the the duplication is? > err_free_pr: > kfree(pr); > return result; > > Thanks > Hanjun