• Rui Wang's avatar
    x86/ioapic: Fix IOAPIC failing to request resource · 624cad9d
    Rui Wang authored
    handle_ioapic_add() uses request_resource() to request ACPI "_CRS"
    resources. This can fail with the following error message:
    
      [  247.325693] ACPI: \_SB_.IIO1.AID1: failed to insert resource
    
    This happens when there are multiple IOAPICs and DSDT groups their
    "_CRS" resources as the children of a parent resource, as seen from
    /proc/iomem:
    
      fec00000-fecfffff : PNP0003:00
        fec00000-fec003ff : IOAPIC 0
        fec01000-fec013ff : IOAPIC 1
        fec40000-fec403ff : IOAPIC 2
    
    In this case request_resource() fails because there's a conflicting
    resource which is the parent (fec0000-fecfffff). Fix it by using
    insert_resource() which can request resources by taking the conflicting
    resource as the parent.
    Signed-off-by: default avatarRui Wang <rui.y.wang@intel.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: bhelgaas@google.com
    Cc: helgaas@kernel.org
    Cc: linux-acpi@vger.kernel.org
    Cc: linux-pci@vger.kernel.org
    Cc: rjw@rjwysocki.net
    Cc: tony.luck@intel.com
    Link: http://lkml.kernel.org/r/1471420837-31003-6-git-send-email-rui.y.wang@intel.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    624cad9d
ioapic.c 5.63 KB