lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 21 Feb 2022 16:43:00 +0800 From: Yicong Yang <yangyicong@...ilicon.com> To: <gregkh@...uxfoundation.org>, <helgaas@...nel.org>, <alexander.shishkin@...ux.intel.com>, <lorenzo.pieralisi@....com>, <will@...nel.org>, <mark.rutland@....com>, <mathieu.poirier@...aro.org>, <suzuki.poulose@....com>, <mike.leach@...aro.org>, <leo.yan@...aro.org>, <jonathan.cameron@...wei.com>, <daniel.thompson@...aro.org>, <joro@...tes.org>, <john.garry@...wei.com>, <shameerali.kolothum.thodi@...wei.com>, <robin.murphy@....com>, <peterz@...radead.org>, <mingo@...hat.com>, <acme@...nel.org>, <linux-kernel@...r.kernel.org>, <linux-arm-kernel@...ts.infradead.org>, <coresight@...ts.linaro.org>, <linux-pci@...r.kernel.org>, <linux-perf-users@...r.kernel.org>, <iommu@...ts.linux-foundation.org> CC: <prime.zeng@...wei.com>, <liuqi115@...wei.com>, <zhangshaokun@...ilicon.com>, <linuxarm@...wei.com>, <yangyicong@...ilicon.com>, <song.bao.hua@...ilicon.com> Subject: [PATCH v4 1/8] iommu/arm-smmu-v3: Make default domain type of HiSilicon PTT device to identity The DMA of HiSilicon PTT device can only work with identical mapping. So add a quirk for the device to force the domain passthrough. Signed-off-by: Yicong Yang <yangyicong@...ilicon.com> --- drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c index 6dc6d8b6b368..6f67a2b1dd27 100644 --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c @@ -2838,6 +2838,21 @@ static int arm_smmu_dev_disable_feature(struct device *dev, } } +#define IS_HISI_PTT_DEVICE(pdev) ((pdev)->vendor == PCI_VENDOR_ID_HUAWEI && \ + (pdev)->device == 0xa12e) + +static int arm_smmu_def_domain_type(struct device *dev) +{ + if (dev_is_pci(dev)) { + struct pci_dev *pdev = to_pci_dev(dev); + + if (IS_HISI_PTT_DEVICE(pdev)) + return IOMMU_DOMAIN_IDENTITY; + } + + return 0; +} + static struct iommu_ops arm_smmu_ops = { .capable = arm_smmu_capable, .domain_alloc = arm_smmu_domain_alloc, @@ -2863,6 +2878,7 @@ static struct iommu_ops arm_smmu_ops = { .sva_unbind = arm_smmu_sva_unbind, .sva_get_pasid = arm_smmu_sva_get_pasid, .page_response = arm_smmu_page_response, + .def_domain_type = arm_smmu_def_domain_type, .pgsize_bitmap = -1UL, /* Restricted during device attach */ .owner = THIS_MODULE, }; -- 2.24.0
Powered by blists - more mailing lists