From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
To: Gavin Shan <gshan@redhat.com>
Cc: Thomas Gleixner <tglx@linutronix.de>,
Peter Zijlstra <peterz@infradead.org>, <linux-pm@vger.kernel.org>,
<loongarch@lists.linux.dev>, <linux-acpi@vger.kernel.org>,
<linux-arch@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
<linux-arm-kernel@lists.infradead.org>, <kvmarm@lists.linux.dev>,
<x86@kernel.org>, Russell King <linux@armlinux.org.uk>,
"Rafael J . Wysocki" <rafael@kernel.org>,
Miguel Luis <miguel.luis@oracle.com>,
James Morse <james.morse@arm.com>,
Salil Mehta <salil.mehta@huawei.com>,
"Jean-Philippe Brucker" <jean-philippe@linaro.org>,
Catalin Marinas <catalin.marinas@arm.com>,
Will Deacon <will@kernel.org>, Marc Zyngier <maz@kernel.org>,
Hanjun Guo <guohanjun@huawei.com>, Ingo Molnar <mingo@redhat.com>,
Borislav Petkov <bp@alien8.de>,
Dave Hansen <dave.hansen@linux.intel.com>, <linuxarm@huawei.com>,
<justin.he@arm.com>, <jianyong.wu@arm.com>,
Lorenzo Pieralisi <lpieralisi@kernel.org>,
"Sudeep Holla" <sudeep.holla@arm.com>
Subject: Re: [PATCH v8 05/16] ACPI: processor: Add acpi_get_processor_handle() helper
Date: Tue, 30 Apr 2024 12:07:14 +0100 [thread overview]
Message-ID: <20240430120714.00007ee3@huawei.com> (raw)
In-Reply-To: <63f7c71a-fa01-4604-8fc6-9f52b5b31d6b@redhat.com>
On Tue, 30 Apr 2024 14:26:06 +1000
Gavin Shan <gshan@redhat.com> wrote:
> On 4/26/24 23:51, Jonathan Cameron wrote:
> > If CONFIG_ACPI_PROCESSOR provide a helper to retrieve the
> > acpi_handle for a given CPU allowing access to methods
> > in DSDT.
> >
> > Tested-by: Miguel Luis <miguel.luis@oracle.com>
> > Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> >
> > ---
> > v8: Code simplification suggested by Rafael.
> > Fixup ;; spotted by Gavin
> > ---
> > drivers/acpi/acpi_processor.c | 11 +++++++++++
> > include/linux/acpi.h | 7 +++++++
> > 2 files changed, 18 insertions(+)
> >
>
> Reviewed-by: Gavin Shan <gshan@redhat.com>
>
Thanks,
> > diff --git a/drivers/acpi/acpi_processor.c b/drivers/acpi/acpi_processor.c
> > index 3b180e21f325..ecc2721fecae 100644
> > --- a/drivers/acpi/acpi_processor.c
> > +++ b/drivers/acpi/acpi_processor.c
> > @@ -35,6 +35,17 @@ EXPORT_PER_CPU_SYMBOL(processors);
> > struct acpi_processor_errata errata __read_mostly;
> > EXPORT_SYMBOL_GPL(errata);
> >
> > +acpi_handle acpi_get_processor_handle(int cpu)
> > +{
> > + struct acpi_processor *pr;
> > +
> > + pr = per_cpu(processors, cpu);
> > + if (pr)
> > + return pr->handle;
> > +
> > + return NULL;
> > +}
> > +
>
> Maybe it's worthy to have more check here, something like below.
> However, it's also fine without the extra check.
We could harden this, but for now the call sites are only
int arch_(un)register_cpu() so if we get there with either
of these failing something went very wrong.
Maybe if it gets used more widely this defense would be wise.
Jonathan
>
> if (cpu >= nr_cpu_ids || !cpu_possible(cpu))
> return NULL;
>
> > static int acpi_processor_errata_piix4(struct pci_dev *dev)
> > {
> > u8 value1 = 0;
> > diff --git a/include/linux/acpi.h b/include/linux/acpi.h
> > index 34829f2c517a..9844a3f9c4e5 100644
> > --- a/include/linux/acpi.h
> > +++ b/include/linux/acpi.h
> > @@ -309,6 +309,8 @@ int acpi_map_cpu(acpi_handle handle, phys_cpuid_t physid, u32 acpi_id,
> > int acpi_unmap_cpu(int cpu);
> > #endif /* CONFIG_ACPI_HOTPLUG_CPU */
> >
> > +acpi_handle acpi_get_processor_handle(int cpu);
> > +
> > #ifdef CONFIG_ACPI_HOTPLUG_IOAPIC
> > int acpi_get_ioapic_id(acpi_handle handle, u32 gsi_base, u64 *phys_addr);
> > #endif
> > @@ -1077,6 +1079,11 @@ static inline bool acpi_sleep_state_supported(u8 sleep_state)
> > return false;
> > }
> >
> > +static inline acpi_handle acpi_get_processor_handle(int cpu)
> > +{
> > + return NULL;
> > +}
> > +
> > #endif /* !CONFIG_ACPI */
> >
> > extern void arch_post_acpi_subsys_init(void);
>
> Thanks,
> Gavin
>
WARNING: multiple messages have this Message-ID (diff)
From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
To: Gavin Shan <gshan@redhat.com>
Cc: Thomas Gleixner <tglx@linutronix.de>,
Peter Zijlstra <peterz@infradead.org>, <linux-pm@vger.kernel.org>,
<loongarch@lists.linux.dev>, <linux-acpi@vger.kernel.org>,
<linux-arch@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
<linux-arm-kernel@lists.infradead.org>, <kvmarm@lists.linux.dev>,
<x86@kernel.org>, Russell King <linux@armlinux.org.uk>,
"Rafael J . Wysocki" <rafael@kernel.org>,
Miguel Luis <miguel.luis@oracle.com>,
James Morse <james.morse@arm.com>,
Salil Mehta <salil.mehta@huawei.com>,
"Jean-Philippe Brucker" <jean-philippe@linaro.org>,
Catalin Marinas <catalin.marinas@arm.com>,
Will Deacon <will@kernel.org>, Marc Zyngier <maz@kernel.org>,
Hanjun Guo <guohanjun@huawei.com>, Ingo Molnar <mingo@redhat.com>,
Borislav Petkov <bp@alien8.de>,
Dave Hansen <dave.hansen@linux.intel.com>, <linuxarm@huawei.com>,
<justin.he@arm.com>, <jianyong.wu@arm.com>,
Lorenzo Pieralisi <lpieralisi@kernel.org>,
"Sudeep Holla" <sudeep.holla@arm.com>
Subject: Re: [PATCH v8 05/16] ACPI: processor: Add acpi_get_processor_handle() helper
Date: Tue, 30 Apr 2024 12:07:14 +0100 [thread overview]
Message-ID: <20240430120714.00007ee3@huawei.com> (raw)
In-Reply-To: <63f7c71a-fa01-4604-8fc6-9f52b5b31d6b@redhat.com>
On Tue, 30 Apr 2024 14:26:06 +1000
Gavin Shan <gshan@redhat.com> wrote:
> On 4/26/24 23:51, Jonathan Cameron wrote:
> > If CONFIG_ACPI_PROCESSOR provide a helper to retrieve the
> > acpi_handle for a given CPU allowing access to methods
> > in DSDT.
> >
> > Tested-by: Miguel Luis <miguel.luis@oracle.com>
> > Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> >
> > ---
> > v8: Code simplification suggested by Rafael.
> > Fixup ;; spotted by Gavin
> > ---
> > drivers/acpi/acpi_processor.c | 11 +++++++++++
> > include/linux/acpi.h | 7 +++++++
> > 2 files changed, 18 insertions(+)
> >
>
> Reviewed-by: Gavin Shan <gshan@redhat.com>
>
Thanks,
> > diff --git a/drivers/acpi/acpi_processor.c b/drivers/acpi/acpi_processor.c
> > index 3b180e21f325..ecc2721fecae 100644
> > --- a/drivers/acpi/acpi_processor.c
> > +++ b/drivers/acpi/acpi_processor.c
> > @@ -35,6 +35,17 @@ EXPORT_PER_CPU_SYMBOL(processors);
> > struct acpi_processor_errata errata __read_mostly;
> > EXPORT_SYMBOL_GPL(errata);
> >
> > +acpi_handle acpi_get_processor_handle(int cpu)
> > +{
> > + struct acpi_processor *pr;
> > +
> > + pr = per_cpu(processors, cpu);
> > + if (pr)
> > + return pr->handle;
> > +
> > + return NULL;
> > +}
> > +
>
> Maybe it's worthy to have more check here, something like below.
> However, it's also fine without the extra check.
We could harden this, but for now the call sites are only
int arch_(un)register_cpu() so if we get there with either
of these failing something went very wrong.
Maybe if it gets used more widely this defense would be wise.
Jonathan
>
> if (cpu >= nr_cpu_ids || !cpu_possible(cpu))
> return NULL;
>
> > static int acpi_processor_errata_piix4(struct pci_dev *dev)
> > {
> > u8 value1 = 0;
> > diff --git a/include/linux/acpi.h b/include/linux/acpi.h
> > index 34829f2c517a..9844a3f9c4e5 100644
> > --- a/include/linux/acpi.h
> > +++ b/include/linux/acpi.h
> > @@ -309,6 +309,8 @@ int acpi_map_cpu(acpi_handle handle, phys_cpuid_t physid, u32 acpi_id,
> > int acpi_unmap_cpu(int cpu);
> > #endif /* CONFIG_ACPI_HOTPLUG_CPU */
> >
> > +acpi_handle acpi_get_processor_handle(int cpu);
> > +
> > #ifdef CONFIG_ACPI_HOTPLUG_IOAPIC
> > int acpi_get_ioapic_id(acpi_handle handle, u32 gsi_base, u64 *phys_addr);
> > #endif
> > @@ -1077,6 +1079,11 @@ static inline bool acpi_sleep_state_supported(u8 sleep_state)
> > return false;
> > }
> >
> > +static inline acpi_handle acpi_get_processor_handle(int cpu)
> > +{
> > + return NULL;
> > +}
> > +
> > #endif /* !CONFIG_ACPI */
> >
> > extern void arch_post_acpi_subsys_init(void);
>
> Thanks,
> Gavin
>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2024-04-30 11:07 UTC|newest]
Thread overview: 82+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-26 13:51 [PATCH v8 00/16] ACPI/arm64: add support for virtual cpu hotplug Jonathan Cameron
2024-04-26 13:51 ` Jonathan Cameron
2024-04-26 13:51 ` [PATCH v8 01/16] ACPI: processor: Simplify initial onlining to use same path for cold and hotplug Jonathan Cameron
2024-04-26 13:51 ` Jonathan Cameron
2024-04-26 16:05 ` Miguel Luis
2024-04-26 16:05 ` Miguel Luis
2024-04-26 17:21 ` Miguel Luis
2024-04-26 17:21 ` Miguel Luis
2024-04-26 17:49 ` Jonathan Cameron
2024-04-26 17:49 ` Jonathan Cameron
2024-04-26 17:57 ` Rafael J. Wysocki
2024-04-26 17:57 ` Rafael J. Wysocki
2024-04-26 18:09 ` Jonathan Cameron
2024-04-26 18:09 ` Jonathan Cameron
2024-04-26 13:51 ` [PATCH v8 02/16] cpu: Do not warn on arch_register_cpu() returning -EPROBE_DEFER Jonathan Cameron
2024-04-26 13:51 ` Jonathan Cameron
2024-04-26 13:51 ` [PATCH v8 03/16] ACPI: processor: Drop duplicated check on _STA (enabled + present) Jonathan Cameron
2024-04-26 13:51 ` Jonathan Cameron
2024-04-26 13:51 ` [PATCH v8 04/16] ACPI: processor: Move checks and availability of acpi_processor earlier Jonathan Cameron
2024-04-26 13:51 ` Jonathan Cameron
2024-04-30 4:17 ` Gavin Shan
2024-04-30 4:17 ` Gavin Shan
2024-04-30 9:28 ` Jonathan Cameron
2024-04-30 9:28 ` Jonathan Cameron
2024-04-30 10:12 ` Rafael J. Wysocki
2024-04-30 10:12 ` Rafael J. Wysocki
2024-04-30 10:13 ` Jonathan Cameron
2024-04-30 10:13 ` Jonathan Cameron
2024-04-30 10:17 ` Rafael J. Wysocki
2024-04-30 10:17 ` Rafael J. Wysocki
2024-04-30 10:45 ` Jonathan Cameron
2024-04-30 10:45 ` Jonathan Cameron
2024-04-30 10:47 ` Rafael J. Wysocki
2024-04-30 10:47 ` Rafael J. Wysocki
2024-04-30 13:42 ` Jonathan Cameron
2024-04-30 13:42 ` Jonathan Cameron
2024-04-26 13:51 ` [PATCH v8 05/16] ACPI: processor: Add acpi_get_processor_handle() helper Jonathan Cameron
2024-04-26 13:51 ` Jonathan Cameron
2024-04-30 4:26 ` Gavin Shan
2024-04-30 4:26 ` Gavin Shan
2024-04-30 11:07 ` Jonathan Cameron [this message]
2024-04-30 11:07 ` Jonathan Cameron
2024-04-26 13:51 ` [PATCH v8 06/16] ACPI: processor: Register deferred CPUs from acpi_processor_get_info() Jonathan Cameron
2024-04-26 13:51 ` Jonathan Cameron
2024-04-26 13:51 ` [PATCH v8 07/16] ACPI: scan: switch to flags for acpi_scan_check_and_detach() Jonathan Cameron
2024-04-26 13:51 ` Jonathan Cameron
2024-04-26 13:51 ` [PATCH v8 08/16] ACPI: Add post_eject to struct acpi_scan_handler for cpu hotplug Jonathan Cameron
2024-04-26 13:51 ` Jonathan Cameron
2024-04-26 13:51 ` [PATCH v8 09/16] arm64: acpi: Move get_cpu_for_acpi_id() to a header Jonathan Cameron
2024-04-26 13:51 ` Jonathan Cameron
2024-04-30 16:37 ` Lorenzo Pieralisi
2024-04-30 16:37 ` Lorenzo Pieralisi
2024-04-26 13:51 ` [PATCH v8 10/16] irqchip/gic-v3: Don't return errors from gic_acpi_match_gicc() Jonathan Cameron
2024-04-26 13:51 ` Jonathan Cameron
2024-04-26 15:14 ` Marc Zyngier
2024-04-26 15:14 ` Marc Zyngier
2024-04-26 13:51 ` [PATCH v8 11/16] irqchip/gic-v3: Add support for ACPI's disabled but 'online capable' CPUs Jonathan Cameron
2024-04-26 13:51 ` Jonathan Cameron
2024-04-26 16:26 ` Marc Zyngier
2024-04-26 16:26 ` Marc Zyngier
2024-04-26 18:28 ` Jonathan Cameron
2024-04-26 18:28 ` Jonathan Cameron
2024-04-28 11:28 ` Marc Zyngier
2024-04-28 11:28 ` Marc Zyngier
2024-04-29 9:21 ` Jonathan Cameron
2024-04-29 9:21 ` Jonathan Cameron
2024-04-30 12:15 ` Jonathan Cameron
2024-04-30 12:15 ` Jonathan Cameron
2024-04-26 13:51 ` [PATCH v8 12/16] arm64: psci: Ignore DENIED CPUs Jonathan Cameron
2024-04-26 13:51 ` Jonathan Cameron
2024-04-30 4:29 ` Gavin Shan
2024-04-30 4:29 ` Gavin Shan
2024-04-26 13:51 ` [PATCH v8 13/16] arm64: arch_register_cpu() variant to check if an ACPI handle is now available Jonathan Cameron
2024-04-26 13:51 ` Jonathan Cameron
2024-04-30 4:31 ` Gavin Shan
2024-04-30 4:31 ` Gavin Shan
2024-04-26 13:51 ` [PATCH v8 14/16] arm64: Kconfig: Enable hotplug CPU on arm64 if ACPI_PROCESSOR is enabled Jonathan Cameron
2024-04-26 13:51 ` Jonathan Cameron
2024-04-26 13:51 ` [PATCH v8 15/16] arm64: document virtual CPU hotplug's expectations Jonathan Cameron
2024-04-26 13:51 ` Jonathan Cameron
2024-04-26 13:51 ` [PATCH v8 16/16] cpumask: Add enabled cpumask for present CPUs that can be brought online Jonathan Cameron
2024-04-26 13:51 ` Jonathan Cameron
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240430120714.00007ee3@huawei.com \
--to=jonathan.cameron@huawei.com \
--cc=bp@alien8.de \
--cc=catalin.marinas@arm.com \
--cc=dave.hansen@linux.intel.com \
--cc=gshan@redhat.com \
--cc=guohanjun@huawei.com \
--cc=james.morse@arm.com \
--cc=jean-philippe@linaro.org \
--cc=jianyong.wu@arm.com \
--cc=justin.he@arm.com \
--cc=kvmarm@lists.linux.dev \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-arch@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=linuxarm@huawei.com \
--cc=loongarch@lists.linux.dev \
--cc=lpieralisi@kernel.org \
--cc=maz@kernel.org \
--cc=miguel.luis@oracle.com \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=rafael@kernel.org \
--cc=salil.mehta@huawei.com \
--cc=sudeep.holla@arm.com \
--cc=tglx@linutronix.de \
--cc=will@kernel.org \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.