Blob Blame History Raw
From: Lu Baolu <baolu.lu@linux.intel.com>
Date: Fri, 1 Mar 2019 11:23:12 +0800
Subject: iommu/vt-d: Fix NULL pointer reference in intel_svm_bind_mm()
Git-commit: c56cba5daf45d2d091ef1cfe2f1d6a930446687b
Patch-mainline: v5.1-rc1
References: bsc#1129184

Intel IOMMU could be turned off with intel_iommu=off. If Intel
IOMMU is off,  the intel_iommu struct will not be initialized.
When device drivers call intel_svm_bind_mm(), the NULL pointer
reference will happen there.

Add dmar_disabled check to avoid NULL pointer reference.

Cc: Ashok Raj <ashok.raj@intel.com>
Cc: Jacob Pan <jacob.jun.pan@linux.intel.com>
Reported-by: Dave Jiang <dave.jiang@intel.com>
Fixes: 2f26e0a9c9860 ("iommu/vt-d: Add basic SVM PASID support")
Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
---
 drivers/iommu/intel-svm.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/iommu/intel-svm.c
+++ b/drivers/iommu/intel-svm.c
@@ -300,7 +300,7 @@ int intel_svm_bind_mm(struct device *dev
 	int pasid_max;
 	int ret;
 
-	if (WARN_ON(!iommu))
+	if (WARN_ON(!iommu) || dmar_disabled)
 		return -EINVAL;
 
 	if (dev_is_pci(dev)) {