[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAE9FiQVutYD=z319Gm+r+cd3H9WPL9RjEaXVmu47=cgtW7yOtw@mail.gmail.com>
Date: Fri, 7 Oct 2016 22:26:08 -0700
From: Yinghai Lu <yinghai@...nel.org>
To: Tang Chen <tangchen@...fujitsu.com>,
Ingo Molnar <mingo@...nel.org>,
"H. Peter Anvin" <hpa@...or.com>, Tony Luck <tony.luck@...el.com>,
Thomas Gleixner <tglx@...utronix.de>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
"Rafael J. Wysocki" <rjw@...ysocki.net>,
Len Brown <lenb@...nel.org>, Yinghai Lu <yinghai@...nel.org>
Cc: "linux-tip-commits@...r.kernel.org"
<linux-tip-commits@...r.kernel.org>
Subject: Re: [tip:x86/urgent] x86/acpi: Prevent LAPIC id 0xff from being accounted
On Fri, Oct 7, 2016 at 6:28 AM, tip-bot for Thomas Gleixner
<tipbot@...or.com> wrote:
> Commit-ID: 8237bded3959c6d038798b905485d3ba94b8ea10
> Gitweb: http://git.kernel.org/tip/8237bded3959c6d038798b905485d3ba94b8ea10
> Author: Thomas Gleixner <tglx@...utronix.de>
> AuthorDate: Fri, 7 Oct 2016 14:02:12 +0200
> Committer: Thomas Gleixner <tglx@...utronix.de>
> CommitDate: Fri, 7 Oct 2016 15:22:15 +0200
>
> x86/acpi: Prevent LAPIC id 0xff from being accounted
>
> Yinghai reported that the recent changes to make the cpuid - nodeid
> relationship permanent causes a cpuid ordering regression on a system which
> has 2apic enabled..
>
> The reason is that the ACPI local APIC parser has no sanity check for
> apicid 0xff, which is an invalid id. So a CPU id for this invalid local
> APIC id is allocated and therefor breaks the cpuid ordering.
>
> Add a sanity check to acpi_parse_lapic() which ignores the invalid id.
>
> Fixes: 8f54969dc8d6 ("x86/acpi: Introduce persistent storage for cpuid <-> apicid mapping")
> Reported-by: Yinghai Lu <yinghai@...nel.org>
> Signed-off-by: Thomas Gleixner <tglx@...utronix.de>
> Cc: Gu Zheng <guz.fnst@...fujitsu.com>,
> Cc: Tang Chen <tangchen@...fujitsu.com>
> Cc: douly.fnst@...fujitsu.com,
> Cc: zhugh.fnst@...fujitsu.com
> Cc: Tony Luck <tony.luck@...el.com>
> Cc: Rafael J. Wysocki <rjw@...ysocki.net>
> Cc: Len Brown <lenb@...nel.org>
> Cc: Lv Zheng <lv.zheng@...el.com>,
> Cc: robert.moore@...el.com
> Cc: linux-acpi@...r.kernel.org
> Link: https://lkml.kernel.org/r/CAE9FiQVQx6FRXT-RdR7Crz4dg5LeUWHcUSy1KacjR+JgU_vGJg@mail.gmail.com
> ---
> arch/x86/kernel/acpi/boot.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
> index 32a7d70..6d35baf 100644
> --- a/arch/x86/kernel/acpi/boot.c
> +++ b/arch/x86/kernel/acpi/boot.c
> @@ -233,6 +233,9 @@ acpi_parse_lapic(struct acpi_subtable_header * header, const unsigned long end)
>
> acpi_table_print_madt_entry(header);
>
> + if (processor->id >= 0xff)
> + return -EINVAL;
> +
> /*
> * We need to register disabled CPU as well to permit
> * counting disabled CPUs. This allows us to size
some thing is wrong:
[ 71.787437] ACPI: LAPIC (acpi_id[0xff] lapic_id[0xff] disabled)
[ 71.799681] ACPI: Error parsing LAPIC/X2APIC entries
[ 71.809934] ACPI: Invalid BIOS MADT, disabling ACPI
looks like should change
return -EINVAL ;
==>
return 0;
Powered by blists - more mailing lists