From fc505525a661aeca9bcb923faa587c06421d3196 Mon Sep 17 00:00:00 2001 From: Jiankang Chen Date: Sat, 18 May 2019 22:09:59 +0800 Subject: [PATCH] iort: Read ACPI configure to get streamid. hulk inclusion category: feature bugzilla: 14369 CVE: NA ------------------- read ACPI configure to get streamid. Signed-off-by: Jiankang Chen Signed-off-by: Fang Lijun Reviewed-by: Hanjun Guo Reviewed-by: Zhen Lei Signed-off-by: Yang Yingliang --- drivers/acpi/arm64/iort.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/acpi/arm64/iort.c b/drivers/acpi/arm64/iort.c index 8fb25d43c811..5cf4bfa0f4b4 100644 --- a/drivers/acpi/arm64/iort.c +++ b/drivers/acpi/arm64/iort.c @@ -1085,12 +1085,23 @@ const struct iommu_ops *iort_iommu_configure(struct device *dev) return NULL; do { + u32 sid; parent = iort_node_map_platform_id(node, &streamid, IORT_IOMMU_TYPE, i++); if (parent) err = iort_iommu_xlate(dev, parent, streamid); + + if (!acpi_dev_prop_read_single(ACPI_COMPANION(dev), + "streamid", DEV_PROP_U32, &sid)) { + err = iommu_fwspec_add_ids(dev, &sid, 1); + if (err) + dev_info(dev, "failed to add ids\n"); + dev->iommu_fwspec->can_stall = true; + dev->iommu_fwspec->num_pasid_bits = 0x10; + } + } while (parent && !err); } -- GitLab