Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1497664 > unrolled thread
| Started by | Yinghai Lu <yinghai@kernel.org> |
|---|---|
| First post | 2016-10-08 07:30 +0200 |
| Last post | 2016-10-08 07:40 +0200 |
| Articles | 4 — 2 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
Re: [tip:x86/urgent] x86/acpi: Prevent LAPIC id 0xff from being accounted Yinghai Lu <yinghai@kernel.org> - 2016-10-08 07:30 +0200
Re: [tip:x86/urgent] x86/acpi: Prevent LAPIC id 0xff from being accounted Yinghai Lu <yinghai@kernel.org> - 2016-10-08 07:40 +0200
Re: [tip:x86/urgent] x86/acpi: Prevent LAPIC id 0xff from being accounted Thomas Gleixner <tglx@linutronix.de> - 2016-10-08 12:20 +0200
Re: [tip:x86/urgent] x86/acpi: Prevent LAPIC id 0xff from being accounted Yinghai Lu <yinghai@kernel.org> - 2016-10-08 07:40 +0200
| From | Yinghai Lu <yinghai@kernel.org> |
|---|---|
| Date | 2016-10-08 07:30 +0200 |
| Subject | Re: [tip:x86/urgent] x86/acpi: Prevent LAPIC id 0xff from being accounted |
| Message-ID | <spSmS-2SF-5@gated-at.bofh.it> |
On Fri, Oct 7, 2016 at 6:28 AM, tip-bot for Thomas Gleixner
<tipbot@zytor.com> wrote:
> Commit-ID: 8237bded3959c6d038798b905485d3ba94b8ea10
> Gitweb: http://git.kernel.org/tip/8237bded3959c6d038798b905485d3ba94b8ea10
> Author: Thomas Gleixner <tglx@linutronix.de>
> AuthorDate: Fri, 7 Oct 2016 14:02:12 +0200
> Committer: Thomas Gleixner <tglx@linutronix.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@kernel.org>
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
> Cc: Gu Zheng <guz.fnst@cn.fujitsu.com>,
> Cc: Tang Chen <tangchen@cn.fujitsu.com>
> Cc: douly.fnst@cn.fujitsu.com,
> Cc: zhugh.fnst@cn.fujitsu.com
> Cc: Tony Luck <tony.luck@intel.com>
> Cc: Rafael J. Wysocki <rjw@rjwysocki.net>
> Cc: Len Brown <lenb@kernel.org>
> Cc: Lv Zheng <lv.zheng@intel.com>,
> Cc: robert.moore@intel.com
> Cc: linux-acpi@vger.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;
[toc] | [next] | [standalone]
| From | Yinghai Lu <yinghai@kernel.org> |
|---|---|
| Date | 2016-10-08 07:40 +0200 |
| Message-ID | <spSwx-2VS-1@gated-at.bofh.it> |
| In reply to | #1497664 |
On Fri, Oct 7, 2016 at 10:33 PM, Yinghai Lu <yinghai@kernel.org> wrote: > On Fri, Oct 7, 2016 at 10:26 PM, Yinghai Lu <yinghai@kernel.org> wrote: >> On Fri, Oct 7, 2016 at 6:28 AM, tip-bot for Thomas Gleixner >>> 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; > > also processor->id is u8, > > so the patch should be: + if (processor->id == 0xff) + return 0; +
[toc] | [prev] | [next] | [standalone]
| From | Thomas Gleixner <tglx@linutronix.de> |
|---|---|
| Date | 2016-10-08 12:20 +0200 |
| Subject | Re: [tip:x86/urgent] x86/acpi: Prevent LAPIC id 0xff from being accounted |
| Message-ID | <spWTv-5OG-5@gated-at.bofh.it> |
| In reply to | #1497670 |
On Fri, 7 Oct 2016, Yinghai Lu wrote:
> On Fri, Oct 7, 2016 at 10:33 PM, Yinghai Lu <yinghai@kernel.org> wrote:
> > On Fri, Oct 7, 2016 at 10:26 PM, Yinghai Lu <yinghai@kernel.org> wrote:
> >> On Fri, Oct 7, 2016 at 6:28 AM, tip-bot for Thomas Gleixner
> >>> 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;
Indeed.
> >
> > also processor->id is u8,
> >
> > so the patch should be:
>
> + if (processor->id == 0xff)
> + return 0;
> +
Right. Amended the patch and pushed it out.
Thanks for pointing it out,
tglx
[toc] | [prev] | [next] | [standalone]
| From | Yinghai Lu <yinghai@kernel.org> |
|---|---|
| Date | 2016-10-08 07:40 +0200 |
| Message-ID | <spSwx-2VS-3@gated-at.bofh.it> |
| In reply to | #1497664 |
On Fri, Oct 7, 2016 at 10:26 PM, Yinghai Lu <yinghai@kernel.org> wrote: > On Fri, Oct 7, 2016 at 6:28 AM, tip-bot for Thomas Gleixner >> 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; also processor->id is u8, so the patch should be: >> + if (processor->id == 0xff) >> + return -EINVAL; >> +
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web