1. 04 1月, 2022 1 次提交
  2. 01 12月, 2021 1 次提交
  3. 04 11月, 2021 1 次提交
  4. 12 10月, 2021 1 次提交
    • A
      PCI: vmd: Do not disable MSI-X remapping if interrupt remapping is enabled by IOMMU · 2565e5b6
      Adrian Huang 提交于
      When enabling VMD in BIOS setup (Ice Lake Processor: Whitley platform),
      the host OS cannot boot successfully with the following error message:
      
        nvme nvme0: I/O 12 QID 0 timeout, completion polled
        nvme nvme0: Shutdown timeout set to 6 seconds
        DMAR: DRHD: handling fault status reg 2
        DMAR: [INTR-REMAP] Request device [0x00:0x00.5] fault index 0xa00 [fault reason 0x25] Blocked a compatibility format interrupt request
      
      The request device is the VMD controller:
        # lspci -s 0000:00.5 -nn
        0000:00:00.5 RAID bus controller [0104]: Intel Corporation Volume
        Management Device NVMe RAID Controller [8086:28c0] (rev 04)
      
      `git bisect` points to this offending commit ee81ee84 ("PCI:
      vmd: Disable MSI-X remapping when possible"), which disables VMD MSI
      remapping. The IOMMU hardware blocks the compatibility format
      interrupt request because Interrupt Remapping Enable Status (IRES) and
      Extended Interrupt Mode Enable (EIME) are enabled. Please refer to
      section "5.1.4 Interrupt-Remapping Hardware Operation" in Intel VT-d
      spec.
      
      To fix the issue, VMD driver still enables the interrupt remapping
      irrespective of VMD_FEAT_CAN_BYPASS_MSI_REMAP if the IOMMU subsystem
      enables the interrupt remapping.
      
      Test configuration is shown as follows:
        * Two VMD controllers
          1. 8086:28c0 (Whitley's VMD)
          2. 8086:201d (Purley's VMD: The issue does not appear in this
             controller. Just make sure if any side effect occurs.)
        * w/wo intremap=off
      
      Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=214219
      Link: https://lore.kernel.org/r/20210901124047.1615-1-adrianhuang0701@gmail.comSigned-off-by: NAdrian Huang <ahuang12@lenovo.com>
      Signed-off-by: NLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Reviewed-by: NJon Derrick <jonathan.derrick@intel.com>
      Cc: Jon Derrick <jonathan.derrick@intel.com>
      Cc: Nirmal Patel <nirmal.patel@linux.intel.com>
      Cc: Joerg Roedel <jroedel@suse.de>
      2565e5b6
  5. 07 10月, 2021 1 次提交
  6. 02 9月, 2021 1 次提交
    • R
      PCI: VMD: ACPI: Make ACPI companion lookup work for VMD bus · 59dc3325
      Rafael J. Wysocki 提交于
      On some systems, in order to get to the deepest low-power state of
      the platform (which may be necessary to save significant enough
      amounts of energy while suspended to idle. for example), devices on
      the PCI bus exposed by the VMD driver need to be power-managed via
      ACPI.  However, the layout of the ACPI namespace below the VMD
      controller device object does not reflect the layout of the PCI bus
      under the VMD host bridge, so in order to identify the ACPI companion
      objects for the devices on that bus, it is necessary to use a special
      _ADR encoding on the ACPI side.  In other words, acpi_pci_find_companion()
      does not work for these devices, so it needs to be amended with a
      special lookup logic specific to the VMD bus.
      
      Address this issue by allowing the VMD driver to temporarily install
      an ACPI companion lookup hook containing the code matching the devices
      on the VMD PCI bus with the corresponding objects in the ACPI
      namespace.
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Acked-by: NJon Derrick <jonathan.derrick@intel.com>
      59dc3325
  7. 22 3月, 2021 1 次提交
  8. 11 12月, 2020 2 次提交
  9. 23 11月, 2020 1 次提交
  10. 29 10月, 2020 1 次提交
  11. 21 10月, 2020 5 次提交
  12. 16 9月, 2020 2 次提交
  13. 23 7月, 2020 1 次提交
  14. 14 7月, 2020 1 次提交
  15. 06 7月, 2020 1 次提交
  16. 30 5月, 2020 1 次提交
  17. 30 1月, 2020 1 次提交
  18. 29 1月, 2020 1 次提交
  19. 25 1月, 2020 2 次提交
  20. 22 11月, 2019 1 次提交
  21. 21 11月, 2019 2 次提交
  22. 18 9月, 2019 2 次提交
  23. 09 7月, 2019 1 次提交
  24. 24 4月, 2019 1 次提交
  25. 30 1月, 2019 1 次提交
  26. 14 12月, 2018 1 次提交
  27. 06 12月, 2018 1 次提交
  28. 19 10月, 2018 1 次提交
    • J
      PCI: vmd: Detach resources after stopping root bus · dc8af3a8
      Jon Derrick 提交于
      The VMD removal path calls pci_stop_root_busi(), which tears down the pcie
      tree, including detaching all of the attached drivers. During driver
      detachment, devices may use pci_release_region() to release resources.
      This path relies on the resource being accessible in resource tree.
      
      By detaching the child domain from the parent resource domain prior to
      stopping the bus, we are preventing the list traversal from finding the
      resource to be freed. If we instead detach the resource after stopping
      the bus, we will have properly freed the resource and detaching is
      simply accounting at that point.
      
      Without this order, the resource is never freed and is orphaned on VMD
      removal, leading to a warning:
      
      [  181.940162] Trying to free nonexistent resource <e5a10000-e5a13fff>
      
      Fixes: 2c2c5c5c ("x86/PCI: VMD: Attach VMD resources to parent domain's resource tree")
      Signed-off-by: NJon Derrick <jonathan.derrick@intel.com>
      [lorenzo.pieralisi@arm.com: updated commit log]
      Signed-off-by: NLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Reviewed-by: NKeith Busch <keith.busch@intel.com>
      dc8af3a8
  29. 01 10月, 2018 1 次提交
  30. 29 6月, 2018 1 次提交
  31. 08 6月, 2018 1 次提交