Re: [PATCH 1/3] iommu/vt-d: Missing checks for pasid tables if allocation fails

From: Alex Williamson
Date: Mon Nov 06 2017 - 15:13:15 EST


On Thu, 19 Oct 2017 08:39:14 +0800
Lu Baolu <baolu.lu@xxxxxxxxxxxxxxx> wrote:

> intel_svm_alloc_pasid_tables() might return an error but never be
> checked by the callers. Later when intel_svm_bind_mm() is called,
> there are no checks for valid pasid tables before enabling them.
>
> Signed-off-by: Ashok Raj <ashok.raj@xxxxxxxxx>
> Signed-off-by: Lu Baolu <baolu.lu@xxxxxxxxxxxxxxx>
> ---
> drivers/iommu/intel-svm.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/iommu/intel-svm.c b/drivers/iommu/intel-svm.c
> index f6697e5..43280ca 100644
> --- a/drivers/iommu/intel-svm.c
> +++ b/drivers/iommu/intel-svm.c
> @@ -292,7 +292,7 @@ int intel_svm_bind_mm(struct device *dev, int *pasid, int flags, struct svm_dev_
> int pasid_max;
> int ret;
>
> - if (WARN_ON(!iommu))
> + if (WARN_ON(!iommu || !iommu->pasid_table))
> return -EINVAL;
>
> if (dev_is_pci(dev)) {

Applied series to iommu/vt-d for v4.15. Thanks,

Alex