Received: by 2002:a05:7208:9594:b0:7e:5202:c8b4 with SMTP id gs20csp1815325rbb; Tue, 27 Feb 2024 01:54:46 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCV0jWz7I17Jf9A7WI1pA6tNQbs4FVIA1AXtBJr4ew5mRjHfXJMoWFN9Yw9mL25oqV1HIqNXfExsvJythfysQKdL1pH2FI6RyT778bL0Kg== X-Google-Smtp-Source: AGHT+IHljvukB05Ls9/pDs8/CAfByIPN1maftg5J6MI5b4ReBpSbeNRJZxkYuOP7UsOoVpC2oV7l X-Received: by 2002:a05:6a20:7187:b0:1a0:885e:9706 with SMTP id s7-20020a056a20718700b001a0885e9706mr1493294pzb.18.1709027685760; Tue, 27 Feb 2024 01:54:45 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1709027685; cv=pass; d=google.com; s=arc-20160816; b=E4zKDNBBKwB6qFbK2YXtwbbgMMG21pNtuvwq1IrTHtNn16357SuP+gV6uRT/nsENZe Wf5A1yE+6K4LVkxgVFEHq/ftNV3nEYfqK307AFmMnKtadF0gU6t6GRwp0xrX3e6yA1zN RpAhI50jR5fmc9SKICzyBstqiIPfDvV+NMlQpIF4IjjQI4gygTt8ErHFezgWulredMsX cBLYBgkgm7OWxVthM7yZhz/Xfy022qyQwf0H9T8IzZmS5VLmXjoJ28PWn9Z+C+QDlbj7 5u2XmYuuzHDYf418O+W6Mpdj1AKVhFdWRpeAERuWCFKcoIQcWivxDFQEU+KJylPAfeRV pFZA== 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=KI9zEsAZiIxG86OMNvEczrgh50gS8A/HaWkqPpZ48Ds=; fh=Yjxf5144J7FZj2cVHGsq25SCrIRx8thNjav8MkR2qJI=; b=t28vyJ/NtJoFdn8hYLdShinmnpc6zrZy3cj84P9NQVABDYL18vyb1+Voo+XQde/SvI chRRTaXbg0QfcH1mlKHEXAI9U4dC5tXnaQ7IS3fHWazXO2/bHokfyf53vAkC7FnIrU/z 4E1NEwRbn3XRqXcouML2Z/tK918dnWjWlrl+EVHwUg7AiDDuFG5JhvmIQ5ZHV2qT5xbc DCPqZJ72evumgIgL/6o84kruMaEb9ocw/RZdFMeiFr7nSkbBgiRk0XMKA9Q6yB7C8s28 RAOI7cbrb+VQPTcWu8pLt2Ob4BCChqXsIIYvGAZVVCU5oKa+qw4KwDdvTJqat5yi190T Ko/g==; 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-82957-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.48.161 as permitted sender) smtp.mailfrom="linux-kernel+bounces-82957-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Return-Path: Received: from sy.mirrors.kernel.org (sy.mirrors.kernel.org. [147.75.48.161]) by mx.google.com with ESMTPS id x2-20020a170902ec8200b001dcb17a9ef9si1167554plg.208.2024.02.27.01.54.45 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 27 Feb 2024 01:54:45 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-82957-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.48.161 as permitted sender) client-ip=147.75.48.161; 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-82957-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.48.161 as permitted sender) smtp.mailfrom="linux-kernel+bounces-82957-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 sy.mirrors.kernel.org (Postfix) with ESMTPS id E59C0B238C2 for ; Tue, 27 Feb 2024 09:28:59 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 1FC73136677; Tue, 27 Feb 2024 09:28:52 +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 09C12130E27; Tue, 27 Feb 2024 09:28:48 +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=1709026131; cv=none; b=mkidKuO/SnSIq554w6kBfhs4oAl4mSSV54HhTNCvHsh39DvinEbe5aOgpYZ7yMikyrCOZG4gjG2ACY26yc6NPZTRl7SxJ1ZQkqyO+V8Ivk0pDvZIrCXJJj5nSkQ1DKG2edL7BEnJtOk9dLuPMyx6KuPwAZqf5eYwJ8OCEYHMKpQ= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709026131; c=relaxed/simple; bh=1RjYEjC3tg/YdPzt49HYIWRUmSXGpg4jxTTNPMxee90=; h=Date:From:To:CC:Subject:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=VCJMuJb7hb/gAviO0wGCShc7FTkykB5JKZWHmUTk65b7/eGFCYxW9vCg325lofEaUFqHAk4LuJpO5p7atSc+ptzt52jJMBuIVvfN0gH4LXJ7wqw7PtPZjg52ARQfOW3j2ocSQI+LBkZ+SZlMMc2qb1LmGtcYgM2mawLCB5h5Ge0= 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.216]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4TkXBh6NgBz67bbM; Tue, 27 Feb 2024 17:25:00 +0800 (CST) Received: from lhrpeml500005.china.huawei.com (unknown [7.191.163.240]) by mail.maildlp.com (Postfix) with ESMTPS id 5B1CD1400CD; Tue, 27 Feb 2024 17:28:45 +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; Tue, 27 Feb 2024 09:28:44 +0000 Date: Tue, 27 Feb 2024 09:28:44 +0000 From: Jonathan Cameron To: "Rafael J. Wysocki" CC: Linux ACPI , LKML , Mika Westerberg , "Rafael J. Wysocki" , "Russell King (Oracle)" , Subject: Re: [PATCH v2 3/5] ACPI: scan: Make acpi_processor_add() check the device enabled bit Message-ID: <20240227092844.00006d49@Huawei.com> In-Reply-To: <3283809.44csPzL39Z@kreacher> References: <6021126.lOV4Wx5bFT@kreacher> <3283809.44csPzL39Z@kreacher> 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 Mon, 26 Feb 2024 17:40:52 +0100 "Rafael J. Wysocki" wrote: > From: Rafael J. Wysocki > > Modify acpi_processor_add() return an error if _STA returns the enabled > bit clear for the given processor device, so as to avoid using processors > that don't decode their resources, as per the ACPI specification. [1] > > Link: https://uefi.org/specs/ACPI/6.5/06_Device_Configuration.html#sta-device-status # [1] > Signed-off-by: Rafael J. Wysocki Sorry for lack of reply on discussion. Your follow up mails never reached my inbox for some reason so I just caught up on lore. I'll keep an eye on the archives to make sure I don't miss further discussion. Agreed that functional isn't relevant here so this patch is correct. Also agree that it would be nice to clarify the spec as you mentioned to say that bit 1 is reserved if bit 0 of _STA result is clear. Depending on interpretation it's either a clarification or a relaxation of current statements, so should be uncontroversial (famous last words ;) +CC kangkang so this is on his radar as an ACPI cleanup suggestion. For his reference, discussion is here: https://lore.kernel.org/linux-acpi/CAJZ5v0jjD=KN0pOuWZZ8DT5yHdu03KgOSHYe3wB7h2vafNa44w@mail.gmail.com/ Reviewed-by: Jonathan Cameron > --- > > v1 -> v2: > * Move acpi_device_is_enabled() to this patch. > * Change patch ordering. > * Do not check the "functional" _STA bit in acpi_device_is_present(). > > --- > drivers/acpi/acpi_processor.c | 3 +++ > drivers/acpi/internal.h | 1 + > drivers/acpi/scan.c | 5 +++++ > 3 files changed, 9 insertions(+) > > Index: linux-pm/drivers/acpi/internal.h > =================================================================== > --- linux-pm.orig/drivers/acpi/internal.h > +++ linux-pm/drivers/acpi/internal.h > @@ -121,6 +121,7 @@ int acpi_device_setup_files(struct acpi_ > void acpi_device_remove_files(struct acpi_device *dev); > void acpi_device_add_finalize(struct acpi_device *device); > void acpi_free_pnp_ids(struct acpi_device_pnp *pnp); > +bool acpi_device_is_enabled(const struct acpi_device *adev); > bool acpi_device_is_present(const struct acpi_device *adev); > bool acpi_device_is_battery(struct acpi_device *adev); > bool acpi_device_is_first_physical_node(struct acpi_device *adev, > Index: linux-pm/drivers/acpi/acpi_processor.c > =================================================================== > --- linux-pm.orig/drivers/acpi/acpi_processor.c > +++ linux-pm/drivers/acpi/acpi_processor.c > @@ -381,6 +381,9 @@ static int acpi_processor_add(struct acp > struct device *dev; > int result = 0; > > + if (!acpi_device_is_enabled(device)) > + return -ENODEV; > + > pr = kzalloc(sizeof(struct acpi_processor), GFP_KERNEL); > if (!pr) > return -ENOMEM; > Index: linux-pm/drivers/acpi/scan.c > =================================================================== > --- linux-pm.orig/drivers/acpi/scan.c > +++ linux-pm/drivers/acpi/scan.c > @@ -1945,6 +1945,11 @@ bool acpi_device_is_present(const struct > return adev->status.present || adev->status.functional; > } > > +bool acpi_device_is_enabled(const struct acpi_device *adev) > +{ > + return adev->status.present && adev->status.enabled; > +} > + > static bool acpi_scan_handler_matching(struct acpi_scan_handler *handler, > const char *idstr, > const struct acpi_device_id **matchid) > > >