* [PATCH v1 0/3] iommu: Fix a few issues related to PRQ
@ 2020-10-28 1:36 Yi Sun
2020-10-28 1:36 ` [PATCH v1 1/3] iommu/vt-d: Fix prq reporting issues Yi Sun
` (2 more replies)
0 siblings, 3 replies; 10+ messages in thread
From: Yi Sun @ 2020-10-28 1:36 UTC (permalink / raw)
To: joro, dwmw2, baolu.lu; +Cc: iommu, Yi Sun, linux-kernel
We found a few issues about PRQ. So, three patches are cooked to
fix them. Please have a review. Thanks!
Jacob Pan (1):
iommu: Fix an issue in iommu_page_response() flags check
Liu Yi L (1):
iommu/vt-d: Fix prq reporting issues
Liu, Yi L (1):
iommu/vt-d: Fix a bug for PDP check in prq_event_thread
drivers/iommu/intel/svm.c | 5 ++++-
drivers/iommu/iommu.c | 6 ++++--
2 files changed, 8 insertions(+), 3 deletions(-)
--
2.7.4
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v1 1/3] iommu/vt-d: Fix prq reporting issues
2020-10-28 1:36 [PATCH v1 0/3] iommu: Fix a few issues related to PRQ Yi Sun
@ 2020-10-28 1:36 ` Yi Sun
2020-10-28 4:50 ` Lu Baolu
2020-10-28 1:36 ` [PATCH v1 2/3] iommu: Fix an issue in iommu_page_response() flags check Yi Sun
2020-10-28 1:36 ` [PATCH v1 3/3] iommu/vt-d: Fix a bug for PDP check in prq_event_thread Yi Sun
2 siblings, 1 reply; 10+ messages in thread
From: Yi Sun @ 2020-10-28 1:36 UTC (permalink / raw)
To: joro, dwmw2, baolu.lu; +Cc: iommu, Yi Sun, linux-kernel
From: Liu Yi L <yi.l.liu@intel.com>
Should get correct sid and set it into sdev. Because we execute
'sdev->sid != req->rid' in the loop of prq_event_thread().
Signed-off-by: Liu Yi L <yi.l.liu@intel.com>
Signed-off-by: Yi Sun <yi.y.sun@linux.intel.com>
---
drivers/iommu/intel/svm.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/iommu/intel/svm.c b/drivers/iommu/intel/svm.c
index f1861fa..75d9dc9 100644
--- a/drivers/iommu/intel/svm.c
+++ b/drivers/iommu/intel/svm.c
@@ -277,6 +277,7 @@ int intel_svm_bind_gpasid(struct iommu_domain *domain, struct device *dev,
struct iommu_gpasid_bind_data *data)
{
struct intel_iommu *iommu = device_to_iommu(dev, NULL, NULL);
+ struct device_domain_info *info;
struct intel_svm_dev *sdev = NULL;
struct dmar_domain *dmar_domain;
struct intel_svm *svm = NULL;
@@ -357,6 +358,8 @@ int intel_svm_bind_gpasid(struct iommu_domain *domain, struct device *dev,
goto out;
}
sdev->dev = dev;
+ info = get_domain_info(dev);
+ sdev->sid = PCI_DEVID(info->bus, info->devfn);
/* Only count users if device has aux domains */
if (iommu_dev_feature_enabled(dev, IOMMU_DEV_FEAT_AUX))
--
2.7.4
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v1 2/3] iommu: Fix an issue in iommu_page_response() flags check
2020-10-28 1:36 [PATCH v1 0/3] iommu: Fix a few issues related to PRQ Yi Sun
2020-10-28 1:36 ` [PATCH v1 1/3] iommu/vt-d: Fix prq reporting issues Yi Sun
@ 2020-10-28 1:36 ` Yi Sun
2020-10-28 9:13 ` Jean-Philippe Brucker
2020-10-28 1:36 ` [PATCH v1 3/3] iommu/vt-d: Fix a bug for PDP check in prq_event_thread Yi Sun
2 siblings, 1 reply; 10+ messages in thread
From: Yi Sun @ 2020-10-28 1:36 UTC (permalink / raw)
To: joro, dwmw2, baolu.lu; +Cc: iommu, Yi Sun, linux-kernel
From: Jacob Pan <jacob.jun.pan@linux.intel.com>
original code fails when LAST_PAGE is set in flags.
Signed-off-by: Jacob Pan <jacob.jun.pan@linux.intel.com>
Signed-off-by: Liu Yi L <yi.l.liu@intel.com>
Signed-off-by: Yi Sun <yi.y.sun@linux.intel.com>
---
drivers/iommu/iommu.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c
index 8c470f4..053cec3 100644
--- a/drivers/iommu/iommu.c
+++ b/drivers/iommu/iommu.c
@@ -1200,9 +1200,11 @@ int iommu_page_response(struct device *dev,
return -EINVAL;
if (msg->version != IOMMU_PAGE_RESP_VERSION_1 ||
- msg->flags & ~IOMMU_PAGE_RESP_PASID_VALID)
+ !(msg->flags & IOMMU_PAGE_RESP_PASID_VALID)) {
+ dev_warn_ratelimited(dev, "%s:Invalid ver %x: flags %x\n",
+ __func__, msg->version, msg->flags);
return -EINVAL;
-
+ }
/* Only send response if there is a fault report pending */
mutex_lock(¶m->fault_param->lock);
if (list_empty(¶m->fault_param->faults)) {
--
2.7.4
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v1 3/3] iommu/vt-d: Fix a bug for PDP check in prq_event_thread
2020-10-28 1:36 [PATCH v1 0/3] iommu: Fix a few issues related to PRQ Yi Sun
2020-10-28 1:36 ` [PATCH v1 1/3] iommu/vt-d: Fix prq reporting issues Yi Sun
2020-10-28 1:36 ` [PATCH v1 2/3] iommu: Fix an issue in iommu_page_response() flags check Yi Sun
@ 2020-10-28 1:36 ` Yi Sun
2020-10-28 5:05 ` Lu Baolu
2 siblings, 1 reply; 10+ messages in thread
From: Yi Sun @ 2020-10-28 1:36 UTC (permalink / raw)
To: joro, dwmw2, baolu.lu; +Cc: iommu, Yi Sun, linux-kernel, Liu
From: "Liu, Yi L" <yi.l.liu@intel.com>
Signed-off-by: Liu, Yi L <yi.l.liu@intel.com>
Signed-off-by: Yi Sun <yi.y.sun@linux.intel.com>
---
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 75d9dc9..1870248 100644
--- a/drivers/iommu/intel/svm.c
+++ b/drivers/iommu/intel/svm.c
@@ -1032,7 +1032,7 @@ static irqreturn_t prq_event_thread(int irq, void *d)
resp.qw0 = QI_PGRP_PASID(req->pasid) |
QI_PGRP_DID(req->rid) |
QI_PGRP_PASID_P(req->pasid_present) |
- QI_PGRP_PDP(req->pasid_present) |
+ QI_PGRP_PDP(req->priv_data_present) |
QI_PGRP_RESP_CODE(result) |
QI_PGRP_RESP_TYPE;
resp.qw1 = QI_PGRP_IDX(req->prg_index) |
--
2.7.4
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v1 1/3] iommu/vt-d: Fix prq reporting issues
2020-10-28 1:36 ` [PATCH v1 1/3] iommu/vt-d: Fix prq reporting issues Yi Sun
@ 2020-10-28 4:50 ` Lu Baolu
2020-10-28 6:05 ` Yi Sun
0 siblings, 1 reply; 10+ messages in thread
From: Lu Baolu @ 2020-10-28 4:50 UTC (permalink / raw)
To: Yi Sun, joro, dwmw2; +Cc: iommu, linux-kernel
Hi Yi,
On 10/28/20 9:36 AM, Yi Sun wrote:
> From: Liu Yi L <yi.l.liu@intel.com>
>
> Should get correct sid and set it into sdev. Because we execute
> 'sdev->sid != req->rid' in the loop of prq_event_thread().
How about making the title more accurate, how about something like:
iommu/vt-d: Fix use before set issue in intel_svm_bind_gpasid()
>
> Signed-off-by: Liu Yi L <yi.l.liu@intel.com>
> Signed-off-by: Yi Sun <yi.y.sun@linux.intel.com>
> ---
> drivers/iommu/intel/svm.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/iommu/intel/svm.c b/drivers/iommu/intel/svm.c
> index f1861fa..75d9dc9 100644
> --- a/drivers/iommu/intel/svm.c
> +++ b/drivers/iommu/intel/svm.c
> @@ -277,6 +277,7 @@ int intel_svm_bind_gpasid(struct iommu_domain *domain, struct device *dev,
> struct iommu_gpasid_bind_data *data)
> {
> struct intel_iommu *iommu = device_to_iommu(dev, NULL, NULL);
> + struct device_domain_info *info;
> struct intel_svm_dev *sdev = NULL;
> struct dmar_domain *dmar_domain;
> struct intel_svm *svm = NULL;
> @@ -357,6 +358,8 @@ int intel_svm_bind_gpasid(struct iommu_domain *domain, struct device *dev,
> goto out;
> }
> sdev->dev = dev;
> + info = get_domain_info(dev);
> + sdev->sid = PCI_DEVID(info->bus, info->devfn);
>
> /* Only count users if device has aux domains */
> if (iommu_dev_feature_enabled(dev, IOMMU_DEV_FEAT_AUX))
>
How about moving get_domain_info() up to the sanity check part?
diff --git a/drivers/iommu/intel/svm.c b/drivers/iommu/intel/svm.c
index f1861fa3d0e4..75846692f2f2 100644
--- a/drivers/iommu/intel/svm.c
+++ b/drivers/iommu/intel/svm.c
@@ -279,6 +279,7 @@ int intel_svm_bind_gpasid(struct iommu_domain
*domain, struct device *dev,
struct intel_iommu *iommu = device_to_iommu(dev, NULL, NULL);
struct intel_svm_dev *sdev = NULL;
struct dmar_domain *dmar_domain;
+ struct device_domain_info *info;
struct intel_svm *svm = NULL;
int ret = 0;
@@ -310,6 +311,10 @@ int intel_svm_bind_gpasid(struct iommu_domain
*domain, struct device *dev,
if (data->hpasid <= 0 || data->hpasid >= PASID_MAX)
return -EINVAL;
+ info = get_domain_info(dev);
+ if (!info)
+ return -EINVAL;
+
dmar_domain = to_dmar_domain(domain);
mutex_lock(&pasid_mutex);
@@ -357,6 +362,7 @@ int intel_svm_bind_gpasid(struct iommu_domain
*domain, struct device *dev,
goto out;
}
sdev->dev = dev;
+ sdev->sid = PCI_DEVID(info->bus, info->devfn);
/* Only count users if device has aux domains */
if (iommu_dev_feature_enabled(dev, IOMMU_DEV_FEAT_AUX))
Best regards,
baolu
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v1 3/3] iommu/vt-d: Fix a bug for PDP check in prq_event_thread
2020-10-28 1:36 ` [PATCH v1 3/3] iommu/vt-d: Fix a bug for PDP check in prq_event_thread Yi Sun
@ 2020-10-28 5:05 ` Lu Baolu
2020-10-28 6:06 ` Yi Sun
0 siblings, 1 reply; 10+ messages in thread
From: Lu Baolu @ 2020-10-28 5:05 UTC (permalink / raw)
To: Yi Sun, joro, dwmw2; +Cc: iommu, linux-kernel
Hi Yi,
On 10/28/20 9:36 AM, Yi Sun wrote:
> From: "Liu, Yi L" <yi.l.liu@intel.com>
Can you please add some description here? How far should this patch back
ported? A Fixes tag?
Best regards,
baolu
>
> Signed-off-by: Liu, Yi L <yi.l.liu@intel.com>
> Signed-off-by: Yi Sun <yi.y.sun@linux.intel.com>
> ---
> 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 75d9dc9..1870248 100644
> --- a/drivers/iommu/intel/svm.c
> +++ b/drivers/iommu/intel/svm.c
> @@ -1032,7 +1032,7 @@ static irqreturn_t prq_event_thread(int irq, void *d)
> resp.qw0 = QI_PGRP_PASID(req->pasid) |
> QI_PGRP_DID(req->rid) |
> QI_PGRP_PASID_P(req->pasid_present) |
> - QI_PGRP_PDP(req->pasid_present) |
> + QI_PGRP_PDP(req->priv_data_present) |
> QI_PGRP_RESP_CODE(result) |
> QI_PGRP_RESP_TYPE;
> resp.qw1 = QI_PGRP_IDX(req->prg_index) |
>
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v1 1/3] iommu/vt-d: Fix prq reporting issues
2020-10-28 4:50 ` Lu Baolu
@ 2020-10-28 6:05 ` Yi Sun
0 siblings, 0 replies; 10+ messages in thread
From: Yi Sun @ 2020-10-28 6:05 UTC (permalink / raw)
To: Lu Baolu; +Cc: dwmw2, iommu, linux-kernel
Thanks! Will do the modifications according to your comments in next
version.
On 20-10-28 12:50:37, Lu Baolu wrote:
> Hi Yi,
>
> On 10/28/20 9:36 AM, Yi Sun wrote:
> >From: Liu Yi L <yi.l.liu@intel.com>
> >
> >Should get correct sid and set it into sdev. Because we execute
> >'sdev->sid != req->rid' in the loop of prq_event_thread().
>
> How about making the title more accurate, how about something like:
>
> iommu/vt-d: Fix use before set issue in intel_svm_bind_gpasid()
>
> >
> >Signed-off-by: Liu Yi L <yi.l.liu@intel.com>
> >Signed-off-by: Yi Sun <yi.y.sun@linux.intel.com>
> >---
> > drivers/iommu/intel/svm.c | 3 +++
> > 1 file changed, 3 insertions(+)
> >
> >diff --git a/drivers/iommu/intel/svm.c b/drivers/iommu/intel/svm.c
> >index f1861fa..75d9dc9 100644
> >--- a/drivers/iommu/intel/svm.c
> >+++ b/drivers/iommu/intel/svm.c
> >@@ -277,6 +277,7 @@ int intel_svm_bind_gpasid(struct iommu_domain *domain, struct device *dev,
> > struct iommu_gpasid_bind_data *data)
> > {
> > struct intel_iommu *iommu = device_to_iommu(dev, NULL, NULL);
> >+ struct device_domain_info *info;
> > struct intel_svm_dev *sdev = NULL;
> > struct dmar_domain *dmar_domain;
> > struct intel_svm *svm = NULL;
> >@@ -357,6 +358,8 @@ int intel_svm_bind_gpasid(struct iommu_domain *domain, struct device *dev,
> > goto out;
> > }
> > sdev->dev = dev;
> >+ info = get_domain_info(dev);
> >+ sdev->sid = PCI_DEVID(info->bus, info->devfn);
> > /* Only count users if device has aux domains */
> > if (iommu_dev_feature_enabled(dev, IOMMU_DEV_FEAT_AUX))
> >
>
> How about moving get_domain_info() up to the sanity check part?
>
> diff --git a/drivers/iommu/intel/svm.c b/drivers/iommu/intel/svm.c
> index f1861fa3d0e4..75846692f2f2 100644
> --- a/drivers/iommu/intel/svm.c
> +++ b/drivers/iommu/intel/svm.c
> @@ -279,6 +279,7 @@ int intel_svm_bind_gpasid(struct iommu_domain
> *domain, struct device *dev,
> struct intel_iommu *iommu = device_to_iommu(dev, NULL, NULL);
> struct intel_svm_dev *sdev = NULL;
> struct dmar_domain *dmar_domain;
> + struct device_domain_info *info;
> struct intel_svm *svm = NULL;
> int ret = 0;
>
> @@ -310,6 +311,10 @@ int intel_svm_bind_gpasid(struct iommu_domain
> *domain, struct device *dev,
> if (data->hpasid <= 0 || data->hpasid >= PASID_MAX)
> return -EINVAL;
>
> + info = get_domain_info(dev);
> + if (!info)
> + return -EINVAL;
> +
> dmar_domain = to_dmar_domain(domain);
>
> mutex_lock(&pasid_mutex);
> @@ -357,6 +362,7 @@ int intel_svm_bind_gpasid(struct iommu_domain
> *domain, struct device *dev,
> goto out;
> }
> sdev->dev = dev;
> + sdev->sid = PCI_DEVID(info->bus, info->devfn);
>
> /* Only count users if device has aux domains */
> if (iommu_dev_feature_enabled(dev, IOMMU_DEV_FEAT_AUX))
>
> Best regards,
> baolu
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v1 3/3] iommu/vt-d: Fix a bug for PDP check in prq_event_thread
2020-10-28 5:05 ` Lu Baolu
@ 2020-10-28 6:06 ` Yi Sun
0 siblings, 0 replies; 10+ messages in thread
From: Yi Sun @ 2020-10-28 6:06 UTC (permalink / raw)
To: Lu Baolu; +Cc: dwmw2, iommu, linux-kernel
On 20-10-28 13:05:05, Lu Baolu wrote:
> Hi Yi,
>
> On 10/28/20 9:36 AM, Yi Sun wrote:
> >From: "Liu, Yi L" <yi.l.liu@intel.com>
>
> Can you please add some description here? How far should this patch back
> ported? A Fixes tag?
>
Sure. Will add description and Fixes tag.
> Best regards,
> baolu
>
> >
> >Signed-off-by: Liu, Yi L <yi.l.liu@intel.com>
> >Signed-off-by: Yi Sun <yi.y.sun@linux.intel.com>
> >---
> > 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 75d9dc9..1870248 100644
> >--- a/drivers/iommu/intel/svm.c
> >+++ b/drivers/iommu/intel/svm.c
> >@@ -1032,7 +1032,7 @@ static irqreturn_t prq_event_thread(int irq, void *d)
> > resp.qw0 = QI_PGRP_PASID(req->pasid) |
> > QI_PGRP_DID(req->rid) |
> > QI_PGRP_PASID_P(req->pasid_present) |
> >- QI_PGRP_PDP(req->pasid_present) |
> >+ QI_PGRP_PDP(req->priv_data_present) |
> > QI_PGRP_RESP_CODE(result) |
> > QI_PGRP_RESP_TYPE;
> > resp.qw1 = QI_PGRP_IDX(req->prg_index) |
> >
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v1 2/3] iommu: Fix an issue in iommu_page_response() flags check
2020-10-28 1:36 ` [PATCH v1 2/3] iommu: Fix an issue in iommu_page_response() flags check Yi Sun
@ 2020-10-28 9:13 ` Jean-Philippe Brucker
2020-10-29 6:30 ` Yi Sun
0 siblings, 1 reply; 10+ messages in thread
From: Jean-Philippe Brucker @ 2020-10-28 9:13 UTC (permalink / raw)
To: Yi Sun; +Cc: linux-kernel, dwmw2, iommu
Hi,
On Wed, Oct 28, 2020 at 09:36:57AM +0800, Yi Sun wrote:
> From: Jacob Pan <jacob.jun.pan@linux.intel.com>
>
> original code fails when LAST_PAGE is set in flags.
LAST_PAGE is not documented to be a valid flags for page_response.
So isn't failing the right thing to do?
>
> Signed-off-by: Jacob Pan <jacob.jun.pan@linux.intel.com>
> Signed-off-by: Liu Yi L <yi.l.liu@intel.com>
> Signed-off-by: Yi Sun <yi.y.sun@linux.intel.com>
> ---
> drivers/iommu/iommu.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c
> index 8c470f4..053cec3 100644
> --- a/drivers/iommu/iommu.c
> +++ b/drivers/iommu/iommu.c
> @@ -1200,9 +1200,11 @@ int iommu_page_response(struct device *dev,
> return -EINVAL;
>
> if (msg->version != IOMMU_PAGE_RESP_VERSION_1 ||
> - msg->flags & ~IOMMU_PAGE_RESP_PASID_VALID)
> + !(msg->flags & IOMMU_PAGE_RESP_PASID_VALID)) {
It should be OK not to have PASID_VALID set, we're just checking for
undefined flags here.
Thanks,
Jean
> + dev_warn_ratelimited(dev, "%s:Invalid ver %x: flags %x\n",
> + __func__, msg->version, msg->flags);
> return -EINVAL;
> -
> + }
> /* Only send response if there is a fault report pending */
> mutex_lock(¶m->fault_param->lock);
> if (list_empty(¶m->fault_param->faults)) {
> --
> 2.7.4
>
> _______________________________________________
> iommu mailing list
> iommu@lists.linux-foundation.org
> https://lists.linuxfoundation.org/mailman/listinfo/iommu
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v1 2/3] iommu: Fix an issue in iommu_page_response() flags check
2020-10-28 9:13 ` Jean-Philippe Brucker
@ 2020-10-29 6:30 ` Yi Sun
0 siblings, 0 replies; 10+ messages in thread
From: Yi Sun @ 2020-10-29 6:30 UTC (permalink / raw)
To: Jean-Philippe Brucker; +Cc: linux-kernel, dwmw2, iommu
On 20-10-28 10:13:56, Jean-Philippe Brucker wrote:
> Hi,
>
> On Wed, Oct 28, 2020 at 09:36:57AM +0800, Yi Sun wrote:
> > From: Jacob Pan <jacob.jun.pan@linux.intel.com>
> >
> > original code fails when LAST_PAGE is set in flags.
>
> LAST_PAGE is not documented to be a valid flags for page_response.
> So isn't failing the right thing to do?
>
> >
> > Signed-off-by: Jacob Pan <jacob.jun.pan@linux.intel.com>
> > Signed-off-by: Liu Yi L <yi.l.liu@intel.com>
> > Signed-off-by: Yi Sun <yi.y.sun@linux.intel.com>
> > ---
> > drivers/iommu/iommu.c | 6 ++++--
> > 1 file changed, 4 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c
> > index 8c470f4..053cec3 100644
> > --- a/drivers/iommu/iommu.c
> > +++ b/drivers/iommu/iommu.c
> > @@ -1200,9 +1200,11 @@ int iommu_page_response(struct device *dev,
> > return -EINVAL;
> >
> > if (msg->version != IOMMU_PAGE_RESP_VERSION_1 ||
> > - msg->flags & ~IOMMU_PAGE_RESP_PASID_VALID)
> > + !(msg->flags & IOMMU_PAGE_RESP_PASID_VALID)) {
>
> It should be OK not to have PASID_VALID set, we're just checking for
> undefined flags here.
>
Thanks! You are right. Per published spec, we should not care LAST_PAGE
for page_response. I will remove this patch in next version.
> Thanks,
> Jean
>
> > + dev_warn_ratelimited(dev, "%s:Invalid ver %x: flags %x\n",
> > + __func__, msg->version, msg->flags);
> > return -EINVAL;
> > -
> > + }
> > /* Only send response if there is a fault report pending */
> > mutex_lock(¶m->fault_param->lock);
> > if (list_empty(¶m->fault_param->faults)) {
> > --
> > 2.7.4
> >
> > _______________________________________________
> > iommu mailing list
> > iommu@lists.linux-foundation.org
> > https://lists.linuxfoundation.org/mailman/listinfo/iommu
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2020-10-29 6:34 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-28 1:36 [PATCH v1 0/3] iommu: Fix a few issues related to PRQ Yi Sun
2020-10-28 1:36 ` [PATCH v1 1/3] iommu/vt-d: Fix prq reporting issues Yi Sun
2020-10-28 4:50 ` Lu Baolu
2020-10-28 6:05 ` Yi Sun
2020-10-28 1:36 ` [PATCH v1 2/3] iommu: Fix an issue in iommu_page_response() flags check Yi Sun
2020-10-28 9:13 ` Jean-Philippe Brucker
2020-10-29 6:30 ` Yi Sun
2020-10-28 1:36 ` [PATCH v1 3/3] iommu/vt-d: Fix a bug for PDP check in prq_event_thread Yi Sun
2020-10-28 5:05 ` Lu Baolu
2020-10-28 6:06 ` Yi Sun
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).