lkml.org 
[lkml]   [2019]   [Dec]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] iommu/vt-d: Don't reject nvme host due to scope mismatch
On Fri Dec 20 19, jimyan wrote:
>On a system with an Intel PCIe port configured as a nvme host device, iommu
>initialization fails with
>
> DMAR: Device scope type does not match for 0000:80:00.0
>
>This is because the DMAR table reports this device as having scope 2
>(ACPI_DMAR_SCOPE_TYPE_BRIDGE):
>

Isn't that a problem to be fixed in the DMAR table then?

>but the device has a type 0 PCI header:
>80:00.0 Class 0600: Device 8086:2020 (rev 06)
>00: 86 80 20 20 47 05 10 00 06 00 00 06 10 00 00 00
>10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>20: 00 00 00 00 00 00 00 00 00 00 00 00 86 80 00 00
>30: 00 00 00 00 90 00 00 00 00 00 00 00 00 01 00 00
>
>VT-d works perfectly on this system, so there's no reason to bail out
>on initialization due to this apparent scope mismatch. Add the class
>0x600 ("PCI_CLASS_BRIDGE_HOST") as a heuristic for allowing DMAR
>initialization for non-bridge PCI devices listed with scope bridge.
>
>Signed-off-by: jimyan <jimyan@baidu.com>
>---
> drivers/iommu/dmar.c | 1 +
> 1 file changed, 1 insertion(+)
>
>diff --git a/drivers/iommu/dmar.c b/drivers/iommu/dmar.c
>index eecd6a421667..9faf2f0e0237 100644
>--- a/drivers/iommu/dmar.c
>+++ b/drivers/iommu/dmar.c
>@@ -244,6 +244,7 @@ int dmar_insert_dev_scope(struct dmar_pci_notify_info *info,
> info->dev->hdr_type != PCI_HEADER_TYPE_NORMAL) ||
> (scope->entry_type == ACPI_DMAR_SCOPE_TYPE_BRIDGE &&
> (info->dev->hdr_type == PCI_HEADER_TYPE_NORMAL &&
>+ info->dev->class >> 8 != PCI_CLASS_BRIDGE_HOST &&
> info->dev->class >> 8 != PCI_CLASS_BRIDGE_OTHER))) {
> pr_warn("Device scope type does not match for %s\n",
> pci_name(info->dev));
>--
>2.11.0
>
>_______________________________________________
>iommu mailing list
>iommu@lists.linux-foundation.org
>https://lists.linuxfoundation.org/mailman/listinfo/iommu
>

\
 
 \ /
  Last update: 2019-12-20 10:23    [W:0.070 / U:26.308 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site