iommu/vt-d: Change flags type to unsigned int in binding mm
authorFenghua Yu <fenghua.yu@intel.com>
Tue, 15 Sep 2020 16:30:06 +0000 (09:30 -0700)
committerBorislav Petkov <bp@suse.de>
Thu, 17 Sep 2020 17:21:30 +0000 (19:21 +0200)
"flags" passed to intel_svm_bind_mm() is a bit mask and should be
defined as "unsigned int" instead of "int".

Change its type to "unsigned int".

Suggested-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Fenghua Yu <fenghua.yu@intel.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Reviewed-by: Tony Luck <tony.luck@intel.com>
Reviewed-by: Lu Baolu <baolu.lu@linux.intel.com>
Acked-by: Joerg Roedel <jroedel@suse.de>
Link: https://lkml.kernel.org/r/1600187413-163670-3-git-send-email-fenghua.yu@intel.com
drivers/iommu/intel/svm.c
include/linux/intel-iommu.h

index e78a74a..fc90a07 100644 (file)
@@ -446,7 +446,8 @@ out:
 
 /* Caller must hold pasid_mutex, mm reference */
 static int
-intel_svm_bind_mm(struct device *dev, int flags, struct svm_dev_ops *ops,
+intel_svm_bind_mm(struct device *dev, unsigned int flags,
+                 struct svm_dev_ops *ops,
                  struct mm_struct *mm, struct intel_svm_dev **sd)
 {
        struct intel_iommu *iommu = device_to_iommu(dev, NULL, NULL);
@@ -1033,7 +1034,7 @@ intel_svm_bind(struct device *dev, struct mm_struct *mm, void *drvdata)
 {
        struct iommu_sva *sva = ERR_PTR(-EINVAL);
        struct intel_svm_dev *sdev = NULL;
-       int flags = 0;
+       unsigned int flags = 0;
        int ret;
 
        /*
@@ -1042,7 +1043,7 @@ intel_svm_bind(struct device *dev, struct mm_struct *mm, void *drvdata)
         * and intel_svm etc.
         */
        if (drvdata)
-               flags = *(int *)drvdata;
+               flags = *(unsigned int *)drvdata;
        mutex_lock(&pasid_mutex);
        ret = intel_svm_bind_mm(dev, flags, NULL, mm, &sdev);
        if (ret)
index 7322073..9c3e833 100644 (file)
@@ -765,7 +765,7 @@ struct intel_svm {
        struct mm_struct *mm;
 
        struct intel_iommu *iommu;
-       int flags;
+       unsigned int flags;
        u32 pasid;
        int gpasid; /* In case that guest PASID is different from host PASID */
        struct list_head devs;