Project

General

Profile

Actions

Bug #6806

closed

local x2apic enumeration is broken

Added by Hans Rosenfeld over 6 years ago. Updated over 6 years ago.

Status:
Closed
Priority:
Normal
Category:
driver - device drivers
Start date:
2016-03-25
Due date:
% Done:

100%

Estimated time:
Difficulty:
Bite-size
Tags:
needs-triage
Gerrit CR:

Description

The case for ACPI_MADT_TYPE_LOCAL_X2APIC in acpi_probe() is broken in two ways.

First, it dereferences mpa which is either undefined or points to an unrelated object. The code needs to use mpx2a->Uid instead of mpa->ProcessorId.

And second, the LocalApicId can be 255 and higher for x2apic objects, and as such right-shifting LocalApicId by 8 and comparing to 0 is not correct.

Actions #1

Updated by Electric Monk over 6 years ago

  • Status changed from New to Closed
  • % Done changed from 0 to 100

git commit 6025f1db7d005ffd81a92cbdc542e14e20b246ea

commit  6025f1db7d005ffd81a92cbdc542e14e20b246ea
Author: Hans Rosenfeld <hans.rosenfeld@nexenta.com>
Date:   2016-03-30T22:33:34.000Z

    6806 local x2apic enumeration is broken
    Reviewed by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
    Reviewed by: Dan McDonald <danmcd@omniti.com>
    Reviewed by: Garrett D'Amore <garrett@damore.org>
    Approved by: Robert Mustacchi <rm@joyent.com>

Actions

Also available in: Atom PDF