Skip to content
Snippets Groups Projects
Select Git revision
  • 2c62e8492ed7358bbe7da51666c7e0f6da9474ee
  • openEuler-1.0-LTS default protected
  • openEuler-22.09
  • OLK-5.10
  • openEuler-22.03-LTS
  • openEuler-22.03-LTS-Ascend
  • master
  • openEuler-22.03-LTS-LoongArch-NW
  • openEuler-22.09-HCK
  • openEuler-20.03-LTS-SP3
  • openEuler-21.09
  • openEuler-21.03
  • openEuler-20.09
  • 4.19.90-2210.5.0
  • 5.10.0-123.0.0
  • 5.10.0-60.63.0
  • 5.10.0-60.62.0
  • 4.19.90-2210.4.0
  • 5.10.0-121.0.0
  • 5.10.0-60.61.0
  • 4.19.90-2210.3.0
  • 5.10.0-60.60.0
  • 5.10.0-120.0.0
  • 5.10.0-60.59.0
  • 5.10.0-119.0.0
  • 4.19.90-2210.2.0
  • 4.19.90-2210.1.0
  • 5.10.0-118.0.0
  • 5.10.0-106.19.0
  • 5.10.0-60.58.0
  • 4.19.90-2209.6.0
  • 5.10.0-106.18.0
  • 5.10.0-106.17.0
33 results

arch

  • Clone with SSH
  • Clone with HTTPS
  • user avatar
    Jiang Liu authored and Rafael J. Wysocki committed
    An IO port or MMIO resource assigned to a PCI host bridge may be
    consumed by the host bridge itself or available to its child
    bus/devices. The ACPI specification defines a bit (Producer/Consumer)
    to tell whether the resource is consumed by the host bridge itself,
    but firmware hasn't used that bit consistently, so we can't rely on it.
    
    Before commit 593669c2 ("x86/PCI/ACPI: Use common ACPI resource
    interfaces to simplify implementation"), arch/x86/pci/acpi.c ignored
    all IO port resources defined by acpi_resource_io and
    acpi_resource_fixed_io to filter out IO ports consumed by the host
    bridge itself.
    
    Commit 593669c2 ("x86/PCI/ACPI: Use common ACPI resource interfaces
    to simplify implementation") started accepting all IO port and MMIO
    resources, which caused a regression that IO port resources consumed
    by the host bridge itself became available to its child devices.
    
    Then commit 63f1789e ("x86/PCI/ACPI: Ignore resources consumed by
    host bridge itself") ignored resources consumed by the host bridge
    itself by checking the IORESOURCE_WINDOW flag, which accidently removed
    MMIO resources defined by acpi_resource_memory24, acpi_resource_memory32
    and acpi_resource_fixed_memory32.
    
    On x86 and IA64 platforms, all IO port and MMIO resources are assumed
    to be available to child bus/devices except one special case:
        IO port [0xCF8-0xCFF] is consumed by the host bridge itself
        to access PCI configuration space.
    
    So explicitly filter out PCI CFG IO ports[0xCF8-0xCFF]. This solution
    will also ease the way to consolidate ACPI PCI host bridge common code
    from x86, ia64 and ARM64.
    
    Related ACPI table are archived at:
    https://bugzilla.kernel.org/show_bug.cgi?id=94221
    
    Related discussions at:
    http://patchwork.ozlabs.org/patch/461633/
    https://lkml.org/lkml/2015/3/29/304
    
    
    
    Fixes: 63f1789e (Ignore resources consumed by host bridge itself)
    Reported-by: default avatarBernhard Thaler <bernhard.thaler@wvnet.at>
    Signed-off-by: default avatarJiang Liu <jiang.liu@linux.intel.com>
    Cc: 4.0+ <stable@vger.kernel.org> # 4.0+
    Reviewed-by: default avatarBjorn Helgaas <bhelgaas@google.com>
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    2c62e849
    History
    Name Last commit Last update
    ..