From: Baoquan He <bhe@redhat.com>
To: linux-kernel@vger.kernel.org, "Rafael J. Wysocki" <rjw@rjwysocki.net>
Cc: Pavel Machek <pavel@ucw.cz>,
linux-acpi@vger.kernel.org, Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>,
Borislav Petkov <bp@suse.de>, Andy Lutomirski <luto@kernel.org>,
Shaohua Li <shli@fb.com>, Viresh Kumar <viresh.kumar@linaro.org>,
Hidehiro Kawai <hidehiro.kawai.ez@hitachi.com>,
Juergen Gross <jgross@suse.com>, Joerg Roedel <jroedel@suse.de>,
Dave Young <dyoung@redhat.com>, Lv Zheng <lv.zheng@intel.com>,
Toshi Kani <toshi.kani@hpe.com>, Mark Salter <msalter@redhat.com>,
Dave Hansen <dave.hansen@linux.intel.com>,
x86@kernel.org
Subject: [PATCH v2 2/2] x86/acpi: Remove the repeated lapic address override entry parsing
Date: Thu, 30 Jun 2016 16:01:18 +0800 [thread overview]
Message-ID: <20160630080118.GD7175@x1.redhat.com> (raw)
In-Reply-To: <1467070896-4186-2-git-send-email-bhe@redhat.com>
ACPI MADT has a 32-bit field providing lapic address at which
each processor can access its lapic information. MADT also contains
an optional entry to provide a 64-bit address to override the 32-bit
one. However the current code does the lapic address override entry
parsing twice. One is in early_acpi_boot_init() because AMD NUMA need
get boot_cpu_id earlier. The other is in acpi_boot_init() which parses
all MADT entries.
So in this patch remove the repeated code in the 2nd part. Meanwhile
print lapic override entry information like other MADT entry.
Signed-off-by: Baoquan He <bhe@redhat.com>
---
v1->v2:
-Remove the not correct code comment above early_acpi_boot_init()
as Rafael suggested.
arch/x86/kernel/acpi/boot.c | 17 ++---------------
arch/x86/kernel/apic/apic.c | 2 +-
2 files changed, 3 insertions(+), 16 deletions(-)
diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
index 9414f84..6ef3694 100644
--- a/arch/x86/kernel/acpi/boot.c
+++ b/arch/x86/kernel/acpi/boot.c
@@ -274,6 +274,8 @@ acpi_parse_lapic_addr_ovr(struct acpi_subtable_header * header,
if (BAD_MADT_ENTRY(lapic_addr_ovr, end))
return -EINVAL;
+ acpi_table_print_madt_entry(header);
+
acpi_lapic_addr = lapic_addr_ovr->address;
return 0;
@@ -990,21 +992,6 @@ static int __init acpi_parse_madt_lapic_entries(void)
if (!boot_cpu_has(X86_FEATURE_APIC))
return -ENODEV;
- /*
- * Note that the LAPIC address is obtained from the MADT (32-bit value)
- * and (optionally) overridden by a LAPIC_ADDR_OVR entry (64-bit value).
- */
-
- count = acpi_table_parse_madt(ACPI_MADT_TYPE_LOCAL_APIC_OVERRIDE,
- acpi_parse_lapic_addr_ovr, 0);
- if (count < 0) {
- printk(KERN_ERR PREFIX
- "Error parsing LAPIC address override entry\n");
- return count;
- }
-
- register_lapic_address(acpi_lapic_addr);
-
count = acpi_table_parse_madt(ACPI_MADT_TYPE_LOCAL_SAPIC,
acpi_parse_sapic, MAX_LOCAL_APIC);
diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c
index 60078a6..504311c 100644
--- a/arch/x86/kernel/apic/apic.c
+++ b/arch/x86/kernel/apic/apic.c
@@ -1799,7 +1799,7 @@ void __init register_lapic_address(unsigned long address)
if (!x2apic_mode) {
set_fixmap_nocache(FIX_APIC_BASE, address);
apic_printk(APIC_VERBOSE, "mapped APIC to %16lx (%16lx)\n",
- APIC_BASE, mp_lapic_addr);
+ APIC_BASE, address);
}
if (boot_cpu_physical_apicid == -1U) {
boot_cpu_physical_apicid = read_apic_id();
--
2.5.5
next prev parent reply other threads:[~2016-06-30 8:02 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-27 23:41 [PATCH 1/2] x86/mm/numa: Open code function early_get_boot_cpu_id Baoquan He
2016-06-27 23:41 ` [PATCH 2/2] x86/acpi: Remove the repeated lapic address override entry parsing Baoquan He
2016-06-28 1:25 ` Rafael J. Wysocki
2016-06-28 3:30 ` Baoquan He
2016-06-30 8:01 ` Baoquan He [this message]
2016-07-08 12:27 ` [PATCH v2 " Ingo Molnar
2016-07-08 12:56 ` Baoquan He
2016-07-09 2:04 ` Baoquan He
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=20160630080118.GD7175@x1.redhat.com \
--to=bhe@redhat.com \
--cc=bp@suse.de \
--cc=dave.hansen@linux.intel.com \
--cc=dyoung@redhat.com \
--cc=hidehiro.kawai.ez@hitachi.com \
--cc=hpa@zytor.com \
--cc=jgross@suse.com \
--cc=jroedel@suse.de \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=luto@kernel.org \
--cc=lv.zheng@intel.com \
--cc=mingo@redhat.com \
--cc=msalter@redhat.com \
--cc=pavel@ucw.cz \
--cc=rjw@rjwysocki.net \
--cc=shli@fb.com \
--cc=tglx@linutronix.de \
--cc=toshi.kani@hpe.com \
--cc=viresh.kumar@linaro.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.