[dpdk-stable] patch 'bus/pci: fix Intel IOMMU sysfs access check' has been queued to LTS release 17.11.10
luca.boccassi at gmail.com
luca.boccassi at gmail.com
Thu Dec 19 15:32:45 CET 2019
Hi,
FYI, your patch has been queued to LTS release 17.11.10
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/21/19. So please
shout if anyone has objections.
Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.
Thanks.
Luca Boccassi
---
>From e87d0eb85b619ad48c6443e7429c15c6347eec77 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen at networkplumber.org>
Date: Tue, 13 Aug 2019 08:38:22 -0700
Subject: [PATCH] bus/pci: fix Intel IOMMU sysfs access check
[ upstream commit 2e8d5cf7631cbc5efb4b3abf7393d2526dee0424 ]
Just open the sysfs file and handle failure, rather than using access().
This eliminates Coverity warnings about TOCTOU
"time of check versus time of use"; although for this sysfs file that is
not really an issue anyway.
Coverity issue: 347276
Fixes: 54a328f552ff ("bus/pci: forbid IOVA mode if IOMMU address width too small")
Signed-off-by: Stephen Hemminger <stephen at networkplumber.org>
Reviewed-by: David Marchand <david.marchand at redhat.com>
---
drivers/bus/pci/linux/pci.c | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/drivers/bus/pci/linux/pci.c b/drivers/bus/pci/linux/pci.c
index aabaa63009..a51d00ac80 100644
--- a/drivers/bus/pci/linux/pci.c
+++ b/drivers/bus/pci/linux/pci.c
@@ -593,18 +593,19 @@ pci_one_device_iommu_support_va(struct rte_pci_device *dev)
"%s/" PCI_PRI_FMT "/iommu/intel-iommu/cap",
rte_pci_get_sysfs_path(), addr->domain, addr->bus, addr->devid,
addr->function);
- if (access(filename, F_OK) == -1) {
- /* We don't have an Intel IOMMU, assume VA supported*/
- return true;
- }
- /* We have an intel IOMMU */
fp = fopen(filename, "r");
if (fp == NULL) {
- RTE_LOG(ERR, EAL, "%s(): can't open %s\n", __func__, filename);
+ /* We don't have an Intel IOMMU, assume VA supported */
+ if (errno == ENOENT)
+ return true;
+
+ RTE_LOG(ERR, EAL, "%s(): can't open %s: %s\n",
+ __func__, filename, strerror(errno));
return false;
}
+ /* We have an Intel IOMMU */
if (fscanf(fp, "%" PRIx64, &vtd_cap_reg) != 1) {
RTE_LOG(ERR, EAL, "%s(): can't read %s\n", __func__, filename);
fclose(fp);
--
2.20.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2019-12-19 14:32:27.052853082 +0000
+++ 0018-bus-pci-fix-Intel-IOMMU-sysfs-access-check.patch 2019-12-19 14:32:25.453284896 +0000
@@ -1,8 +1,10 @@
-From 2e8d5cf7631cbc5efb4b3abf7393d2526dee0424 Mon Sep 17 00:00:00 2001
+From e87d0eb85b619ad48c6443e7429c15c6347eec77 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen at networkplumber.org>
Date: Tue, 13 Aug 2019 08:38:22 -0700
Subject: [PATCH] bus/pci: fix Intel IOMMU sysfs access check
+[ upstream commit 2e8d5cf7631cbc5efb4b3abf7393d2526dee0424 ]
+
Just open the sysfs file and handle failure, rather than using access().
This eliminates Coverity warnings about TOCTOU
"time of check versus time of use"; although for this sysfs file that is
@@ -10,7 +12,6 @@
Coverity issue: 347276
Fixes: 54a328f552ff ("bus/pci: forbid IOVA mode if IOMMU address width too small")
-Cc: stable at dpdk.org
Signed-off-by: Stephen Hemminger <stephen at networkplumber.org>
Reviewed-by: David Marchand <david.marchand at redhat.com>
@@ -19,10 +20,10 @@
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/drivers/bus/pci/linux/pci.c b/drivers/bus/pci/linux/pci.c
-index 1ac2bff779..318db19532 100644
+index aabaa63009..a51d00ac80 100644
--- a/drivers/bus/pci/linux/pci.c
+++ b/drivers/bus/pci/linux/pci.c
-@@ -511,18 +511,19 @@ pci_device_iommu_support_va(const struct rte_pci_device *dev)
+@@ -593,18 +593,19 @@ pci_one_device_iommu_support_va(struct rte_pci_device *dev)
"%s/" PCI_PRI_FMT "/iommu/intel-iommu/cap",
rte_pci_get_sysfs_path(), addr->domain, addr->bus, addr->devid,
addr->function);
More information about the stable
mailing list