From: Hanjun Guo <hanjun.guo@linaro.org>
To: Arnd Bergmann <arnd@arndb.de>
Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>,
Catalin Marinas <catalin.marinas@arm.com>,
Will Deacon <will.deacon@arm.com>,
Russell King - ARM Linux <linux@arm.linux.org.uk>,
linux-acpi@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
Grant Likely <grant.likely@linaro.org>,
Matthew Garrett <mjg59@srcf.ucam.org>,
Olof Johansson <olof@lixom.net>,
Linus Walleij <linus.walleij@linaro.org>,
Bjorn Helgaas <bhelgaas@google.com>,
Rob Herring <robh@kernel.org>,
Mark Rutland <mark.rutland@arm.com>,
patches@linaro.org, linux-kernel@vger.kernel.org,
linaro-kernel@lists.linaro.org, linaro-acpi@lists.linaro.org,
Charles.Garcia-Tobin@arm.com
Subject: Re: [PATCH 09/20] ARM64 / ACPI: Implement core functions for parsing MADT table
Date: Mon, 20 Jan 2014 16:49:00 +0800 [thread overview]
Message-ID: <52DCE2FC.30003@linaro.org> (raw)
In-Reply-To: <201401171512.42850.arnd@arndb.de>
On 2014-1-17 22:12, Arnd Bergmann wrote:
> On Friday 17 January 2014, Hanjun Guo wrote:
>>
>> +/*
>> + * Local interrupt controller address,
>> + * GIC cpu interface base address on ARM/ARM64
>> + */
>> +static u64 acpi_lapic_addr __initdata;
>
> If it's cpu local, don't you need more than one address to support SMP?
Good point, thanks for pointing this out. I have a question, do we really
have some SoCs without banked registers?
I ask this question because we can do something for GIC cpu interface
with per cpu offset, but ACPI do NOT support per cpu offset for GIC
distributor.
> Also, the variable appears to be write-only.
Actually not, it will be used for GIC initialization.
>
>> +#define BAD_MADT_ENTRY(entry, end) ( \
>> + (!entry) || (unsigned long)entry + sizeof(*entry) > end || \
>> + ((struct acpi_subtable_header *)entry)->length < sizeof(*entry))
>> +
>
> Better make this an inline function.
>
>> +static int __init
>> +acpi_parse_gic(struct acpi_subtable_header *header, const unsigned long end)
>> +{
>> + struct acpi_madt_generic_interrupt *processor = NULL;
>> +
>> + processor = (struct acpi_madt_generic_interrupt *)header;
>
> You don't need the initialization in the first line when you write to the
> variable before reading it. Same in the other functions.
Ok, I will update them all in next version.
Thanks
hanjun
WARNING: multiple messages have this Message-ID (diff)
From: hanjun.guo@linaro.org (Hanjun Guo)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 09/20] ARM64 / ACPI: Implement core functions for parsing MADT table
Date: Mon, 20 Jan 2014 16:49:00 +0800 [thread overview]
Message-ID: <52DCE2FC.30003@linaro.org> (raw)
In-Reply-To: <201401171512.42850.arnd@arndb.de>
On 2014-1-17 22:12, Arnd Bergmann wrote:
> On Friday 17 January 2014, Hanjun Guo wrote:
>>
>> +/*
>> + * Local interrupt controller address,
>> + * GIC cpu interface base address on ARM/ARM64
>> + */
>> +static u64 acpi_lapic_addr __initdata;
>
> If it's cpu local, don't you need more than one address to support SMP?
Good point, thanks for pointing this out. I have a question, do we really
have some SoCs without banked registers?
I ask this question because we can do something for GIC cpu interface
with per cpu offset, but ACPI do NOT support per cpu offset for GIC
distributor.
> Also, the variable appears to be write-only.
Actually not, it will be used for GIC initialization.
>
>> +#define BAD_MADT_ENTRY(entry, end) ( \
>> + (!entry) || (unsigned long)entry + sizeof(*entry) > end || \
>> + ((struct acpi_subtable_header *)entry)->length < sizeof(*entry))
>> +
>
> Better make this an inline function.
>
>> +static int __init
>> +acpi_parse_gic(struct acpi_subtable_header *header, const unsigned long end)
>> +{
>> + struct acpi_madt_generic_interrupt *processor = NULL;
>> +
>> + processor = (struct acpi_madt_generic_interrupt *)header;
>
> You don't need the initialization in the first line when you write to the
> variable before reading it. Same in the other functions.
Ok, I will update them all in next version.
Thanks
hanjun
next prev parent reply other threads:[~2014-01-20 8:49 UTC|newest]
Thread overview: 213+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-17 12:24 [PATCH 00/20] Make ACPI core running on ARM64 Hanjun Guo
2014-01-17 12:24 ` Hanjun Guo
2014-01-17 12:24 ` [PATCH 01/20] ARM64 / ACPI: Make PCI optional for ACPI " Hanjun Guo
2014-01-17 12:24 ` Hanjun Guo
2014-01-17 16:00 ` Bjorn Helgaas
2014-01-17 16:00 ` Bjorn Helgaas
2014-01-17 16:00 ` Bjorn Helgaas
2014-01-20 9:33 ` Hanjun Guo
2014-01-20 9:33 ` Hanjun Guo
2014-01-20 9:33 ` Hanjun Guo
2014-01-17 12:24 ` [PATCH 02/20] ARM64 : Add dummy asm/cpu.h Hanjun Guo
2014-01-17 12:24 ` Hanjun Guo
2014-01-17 14:22 ` Sudeep Holla
2014-01-17 14:22 ` Sudeep Holla
2014-01-17 14:22 ` Sudeep Holla
2014-01-20 8:58 ` Hanjun Guo
2014-01-20 8:58 ` Hanjun Guo
2014-01-20 8:58 ` Hanjun Guo
2014-01-23 16:15 ` Catalin Marinas
2014-01-23 16:15 ` Catalin Marinas
2014-01-23 16:15 ` Catalin Marinas
2014-01-24 14:41 ` Hanjun Guo
2014-01-24 14:41 ` Hanjun Guo
2014-01-24 14:41 ` Hanjun Guo
2014-01-17 12:24 ` [PATCH 03/20] ARM64 / ACPI: Introduce the skeleton of _PDC related for ARM64 Hanjun Guo
2014-01-17 12:24 ` Hanjun Guo
2014-01-17 14:25 ` Sudeep Holla
2014-01-17 14:25 ` Sudeep Holla
2014-01-20 9:20 ` Hanjun Guo
2014-01-20 9:20 ` Hanjun Guo
2014-01-20 9:20 ` Hanjun Guo
2014-01-23 16:19 ` Catalin Marinas
2014-01-23 16:19 ` Catalin Marinas
2014-01-23 16:19 ` Catalin Marinas
2014-01-24 14:43 ` Hanjun Guo
2014-01-24 14:43 ` Hanjun Guo
2014-01-24 14:43 ` Hanjun Guo
2014-01-23 18:03 ` Catalin Marinas
2014-01-23 18:03 ` Catalin Marinas
2014-01-23 18:03 ` Catalin Marinas
2014-01-24 15:35 ` Hanjun Guo
2014-01-24 15:35 ` Hanjun Guo
2014-01-24 15:35 ` Hanjun Guo
2014-01-17 12:24 ` [PATCH 04/20] ARM64 / ACPI: Introduce arm_core.c and its related head file Hanjun Guo
2014-01-17 12:24 ` Hanjun Guo
2014-01-17 14:12 ` Will Deacon
2014-01-17 14:12 ` Will Deacon
2014-01-17 14:12 ` Will Deacon
2014-01-18 4:05 ` Hanjun Guo
2014-01-18 4:05 ` Hanjun Guo
2014-01-18 4:05 ` Hanjun Guo
2014-01-17 16:56 ` Sudeep Holla
2014-01-17 16:56 ` Sudeep Holla
2014-01-20 12:26 ` Hanjun Guo
2014-01-20 12:26 ` Hanjun Guo
2014-01-20 12:26 ` Hanjun Guo
2014-01-22 11:54 ` Lorenzo Pieralisi
2014-01-22 11:54 ` Lorenzo Pieralisi
2014-01-22 11:54 ` Lorenzo Pieralisi
2014-01-23 15:56 ` [Linaro-acpi] " Tomasz Nowicki
2014-01-23 15:56 ` Tomasz Nowicki
2014-01-24 9:09 ` Hanjun Guo
2014-01-24 9:09 ` Hanjun Guo
2014-01-24 12:53 ` Lorenzo Pieralisi
2014-01-24 12:53 ` Lorenzo Pieralisi
2014-01-24 16:44 ` Tomasz Nowicki
2014-01-24 16:44 ` Tomasz Nowicki
2014-01-17 12:24 ` [PATCH 05/20] ARM64 / ACPI: Introduce lowlevel suspend function Hanjun Guo
2014-01-17 12:24 ` Hanjun Guo
2014-01-17 12:25 ` [PATCH 06/20] ARM64 / ACPI: Introduce some PCI functions when PCI is enabled Hanjun Guo
2014-01-17 12:25 ` Hanjun Guo
2014-01-17 14:04 ` Arnd Bergmann
2014-01-17 14:04 ` Arnd Bergmann
2014-01-20 8:08 ` Hanjun Guo
2014-01-20 8:08 ` Hanjun Guo
2014-01-20 8:20 ` Arnd Bergmann
2014-01-20 8:20 ` Arnd Bergmann
2014-01-20 14:13 ` Hanjun Guo
2014-01-20 14:13 ` Hanjun Guo
2014-01-20 18:39 ` Arnd Bergmann
2014-01-20 18:39 ` Arnd Bergmann
2014-01-20 18:39 ` Arnd Bergmann
2014-01-21 3:40 ` Hanjun Guo
2014-01-21 3:40 ` Hanjun Guo
2014-01-17 12:25 ` [PATCH 07/20] ARM64 / ACPI: Enable ARM64 in Kconfig Hanjun Guo
2014-01-17 12:25 ` Hanjun Guo
2014-01-17 14:34 ` Sudeep Holla
2014-01-17 14:34 ` Sudeep Holla
2014-01-20 9:30 ` Hanjun Guo
2014-01-20 9:30 ` Hanjun Guo
2014-01-20 9:30 ` Hanjun Guo
2014-01-23 16:39 ` Catalin Marinas
2014-01-23 16:39 ` Catalin Marinas
2014-01-23 16:39 ` Catalin Marinas
2014-01-24 14:45 ` Hanjun Guo
2014-01-24 14:45 ` Hanjun Guo
2014-01-24 14:45 ` Hanjun Guo
2014-01-17 12:25 ` [PATCH 08/20] ARM64 / ACPI: Select ACPI_REDUCED_HARDWARE_ONLY if ACPI is enabled on ARM64 Hanjun Guo
2014-01-17 12:25 ` Hanjun Guo
2014-01-17 12:25 ` [PATCH 09/20] ARM64 / ACPI: Implement core functions for parsing MADT table Hanjun Guo
2014-01-17 12:25 ` Hanjun Guo
2014-01-17 14:12 ` Arnd Bergmann
2014-01-17 14:12 ` Arnd Bergmann
2014-01-20 8:49 ` Hanjun Guo [this message]
2014-01-20 8:49 ` Hanjun Guo
2014-01-23 17:54 ` Marc Zyngier
2014-01-23 17:54 ` Marc Zyngier
2014-01-23 17:54 ` Marc Zyngier
2014-01-24 15:34 ` Hanjun Guo
2014-01-24 15:34 ` Hanjun Guo
2014-01-24 15:34 ` Hanjun Guo
2014-01-24 20:57 ` Arnd Bergmann
2014-01-24 20:57 ` Arnd Bergmann
2014-01-24 20:57 ` Arnd Bergmann
2014-01-17 12:25 ` [PATCH 10/20] ARM64 / ACPI: Enumerate possible/present CPU set and map logical cpu id to APIC id Hanjun Guo
2014-01-17 12:25 ` Hanjun Guo
2014-01-17 17:37 ` Sudeep Holla
2014-01-17 17:37 ` Sudeep Holla
2014-01-20 14:00 ` Hanjun Guo
2014-01-20 14:00 ` Hanjun Guo
2014-01-20 14:00 ` Hanjun Guo
2014-01-22 15:53 ` Lorenzo Pieralisi
2014-01-22 15:53 ` Lorenzo Pieralisi
2014-01-22 15:53 ` Lorenzo Pieralisi
2014-01-24 14:37 ` Hanjun Guo
2014-01-24 14:37 ` Hanjun Guo
2014-01-24 14:37 ` Hanjun Guo
2014-01-24 15:35 ` Lorenzo Pieralisi
2014-01-24 15:35 ` Lorenzo Pieralisi
2014-01-24 15:35 ` Lorenzo Pieralisi
2014-01-24 16:02 ` Hanjun Guo
2014-01-24 16:02 ` Hanjun Guo
2014-01-24 16:02 ` Hanjun Guo
2014-01-17 12:25 ` [PATCH 11/20] ARM64 / ACPI: Get the enable method for SMP initialization Hanjun Guo
2014-01-17 12:25 ` Hanjun Guo
2014-01-23 17:50 ` Catalin Marinas
2014-01-23 17:50 ` Catalin Marinas
2014-01-24 14:57 ` Hanjun Guo
2014-01-24 14:57 ` Hanjun Guo
2014-01-24 14:57 ` Hanjun Guo
2014-01-17 12:25 ` [PATCH 12/20] ARM64 / ACPI: Use Parked Address in GIC structure for spin table SMP initialisation Hanjun Guo
2014-01-17 12:25 ` Hanjun Guo
2014-01-17 14:15 ` Arnd Bergmann
2014-01-17 14:15 ` Arnd Bergmann
2014-01-17 14:35 ` Tomasz Nowicki
2014-01-17 14:35 ` Tomasz Nowicki
2014-01-17 12:25 ` [PATCH 13/20] ARM64 / ACPI: Define ACPI_IRQ_MODEL_GIC needed for arm Hanjun Guo
2014-01-17 12:25 ` Hanjun Guo
2014-01-17 12:25 ` [PATCH 14/20] Irqchip / gic: Set as default domain so we can access from ACPI Hanjun Guo
2014-01-17 12:25 ` Hanjun Guo
2014-01-17 12:25 ` [PATCH 15/20] ACPI / ARM64: Update acpi_register_gsi to register with the core IRQ subsystem Hanjun Guo
2014-01-17 12:25 ` Hanjun Guo
2014-01-17 12:25 ` =?yes?q?=5BPATCH=2016/20=5D=20ACPI=20/=20GIC=3A=20Initialize=20GIC=20using=20the=20information=20in=20MADT?= Hanjun Guo
2014-01-17 12:25 ` =?yes?q?=5BPATCH=2016/20=5D=20ACPI=20/=20GIC=3A=20Initialize=20GIC=20using=20the=20information=20in=20MADT?= Hanjun Guo
2014-01-17 12:25 ` [PATCH 17/20] clocksource / arch_timer: Use ACPI GTDT table to initialize arch timer Hanjun Guo
2014-01-17 12:25 ` Hanjun Guo
2014-01-27 11:26 ` Mark Rutland
2014-01-27 11:26 ` Mark Rutland
2014-01-27 11:26 ` Mark Rutland
2014-01-17 12:25 ` [PATCH 18/20] clocksource / acpi: Add macro CLOCKSOURCE_ACPI_DECLARE Hanjun Guo
2014-01-17 12:25 ` Hanjun Guo
2014-01-17 14:21 ` Arnd Bergmann
2014-01-17 14:21 ` Arnd Bergmann
2014-01-20 9:08 ` Hanjun Guo
2014-01-20 9:08 ` Hanjun Guo
2014-01-22 11:46 ` Mark Rutland
2014-01-22 11:46 ` Mark Rutland
2014-01-22 11:46 ` Mark Rutland
2014-01-22 14:56 ` Arnd Bergmann
2014-01-22 14:56 ` Arnd Bergmann
2014-01-22 14:56 ` Arnd Bergmann
2014-01-22 15:17 ` Mark Rutland
2014-01-22 15:17 ` Mark Rutland
2014-01-22 15:17 ` Mark Rutland
2014-01-22 15:47 ` Arnd Bergmann
2014-01-22 15:47 ` Arnd Bergmann
2014-01-24 9:19 ` Hanjun Guo
2014-01-24 9:19 ` Hanjun Guo
2014-01-24 9:19 ` Hanjun Guo
2014-01-24 0:46 ` Hanjun Guo
2014-01-24 0:46 ` Hanjun Guo
2014-01-24 0:46 ` Hanjun Guo
2014-01-22 8:26 ` Linus Walleij
2014-01-22 8:26 ` Linus Walleij
2014-01-22 11:45 ` Mark Rutland
2014-01-22 11:45 ` Mark Rutland
2014-01-22 14:38 ` Linus Walleij
2014-01-22 14:38 ` Linus Walleij
2014-01-24 0:20 ` Hanjun Guo
2014-01-24 0:20 ` Hanjun Guo
2014-01-24 0:20 ` Hanjun Guo
2014-01-24 12:08 ` Mark Rutland
2014-01-24 12:08 ` Mark Rutland
2014-01-24 12:08 ` Mark Rutland
2014-01-24 15:15 ` Catalin Marinas
2014-01-24 15:15 ` Catalin Marinas
2014-01-24 15:15 ` Catalin Marinas
2014-01-24 15:44 ` Mark Rutland
2014-01-24 15:44 ` Mark Rutland
2014-01-24 15:53 ` Hanjun Guo
2014-01-24 15:53 ` Hanjun Guo
2014-01-24 0:12 ` Hanjun Guo
2014-01-24 0:12 ` Hanjun Guo
2014-01-24 0:12 ` Hanjun Guo
2014-01-24 12:32 ` Mark Rutland
2014-01-24 12:32 ` Mark Rutland
2014-01-24 15:45 ` Hanjun Guo
2014-01-24 15:45 ` Hanjun Guo
2014-01-24 15:45 ` Hanjun Guo
2014-01-17 12:25 ` [PATCH 19/20] clocksource / ACPI: Introduce clocksource_acpi_init() using CLOCKSOURCE_ACPI_DECLARE Hanjun Guo
2014-01-17 12:25 ` Hanjun Guo
2014-01-17 12:25 ` [PATCH 20/20] ARM64 / clocksource: Use clocksource_acpi_init() Hanjun Guo
2014-01-17 12:25 ` Hanjun Guo
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=52DCE2FC.30003@linaro.org \
--to=hanjun.guo@linaro.org \
--cc=Charles.Garcia-Tobin@arm.com \
--cc=arnd@arndb.de \
--cc=bhelgaas@google.com \
--cc=catalin.marinas@arm.com \
--cc=grant.likely@linaro.org \
--cc=linaro-acpi@lists.linaro.org \
--cc=linaro-kernel@lists.linaro.org \
--cc=linus.walleij@linaro.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=mark.rutland@arm.com \
--cc=mjg59@srcf.ucam.org \
--cc=olof@lixom.net \
--cc=patches@linaro.org \
--cc=rjw@rjwysocki.net \
--cc=robh@kernel.org \
--cc=will.deacon@arm.com \
/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.