[dpdk-stable] patch 'net/virtio: avoid annoying IOPL error log' has been queued to stable release 18.08.1

Kevin Traynor ktraynor at redhat.com
Thu Nov 29 14:21:22 CET 2018


Hi,

FYI, your patch has been queued to stable release 18.08.1

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/08/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From 78a772363801eff514bce37236d0a6006a423dec Mon Sep 17 00:00:00 2001
From: Ilya Maximets <i.maximets at samsung.com>
Date: Fri, 23 Nov 2018 18:39:20 +0300
Subject: [PATCH] net/virtio: avoid annoying IOPL error log

[ upstream commit 705dced4a72a1053368c84c4b68f04f028a78b30 ]

In case of running with not enough capabilities, i.e. running as
non-root user any application linked with DPDK prints the message
about IOPL call failure even if it was just called like
'./testpmd --help'. For example, this breaks most of the OVS unit
tests if it built with DPDK support.

Let's register the virtio driver unconditionally and print error
message while probing the device. Silent iopl() call left in the
constructor to have privileges as early as possible as it was before.

Fixes: 565b85dcd9f4 ("eal: set iopl only when needed")

Signed-off-by: Ilya Maximets <i.maximets at samsung.com>
Reviewed-by: David Marchand <david.marchand at redhat.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin at redhat.com>
---
 drivers/net/virtio/virtio_ethdev.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c
index b8693ff80..e14862a97 100644
--- a/drivers/net/virtio/virtio_ethdev.c
+++ b/drivers/net/virtio/virtio_ethdev.c
@@ -1764,4 +1764,9 @@ static int eth_virtio_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
 	struct rte_pci_device *pci_dev)
 {
+	if (rte_eal_iopl_init() != 0) {
+		PMD_INIT_LOG(ERR, "IOPL call failed - cannot use virtio PMD");
+		return 1;
+	}
+
 	/* virtio pmd skips probe if device needs to work in vdpa mode */
 	if (vdpa_mode_selected(pci_dev->device.devargs))
@@ -1789,9 +1794,5 @@ static struct rte_pci_driver rte_virtio_pmd = {
 RTE_INIT(rte_virtio_pmd_init)
 {
-	if (rte_eal_iopl_init() != 0) {
-		PMD_INIT_LOG(ERR, "IOPL call failed - cannot use virtio PMD");
-		return;
-	}
-
+	rte_eal_iopl_init();
 	rte_pci_register(&rte_virtio_pmd);
 }
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-29 13:11:37.061915245 +0000
+++ 0081-net-virtio-avoid-annoying-IOPL-error-log.patch	2018-11-29 13:11:35.000000000 +0000
@@ -1,8 +1,10 @@
-From 705dced4a72a1053368c84c4b68f04f028a78b30 Mon Sep 17 00:00:00 2001
+From 78a772363801eff514bce37236d0a6006a423dec Mon Sep 17 00:00:00 2001
 From: Ilya Maximets <i.maximets at samsung.com>
 Date: Fri, 23 Nov 2018 18:39:20 +0300
 Subject: [PATCH] net/virtio: avoid annoying IOPL error log
 
+[ upstream commit 705dced4a72a1053368c84c4b68f04f028a78b30 ]
+
 In case of running with not enough capabilities, i.e. running as
 non-root user any application linked with DPDK prints the message
 about IOPL call failure even if it was just called like
@@ -14,7 +16,6 @@
 constructor to have privileges as early as possible as it was before.
 
 Fixes: 565b85dcd9f4 ("eal: set iopl only when needed")
-Cc: stable at dpdk.org
 
 Signed-off-by: Ilya Maximets <i.maximets at samsung.com>
 Reviewed-by: David Marchand <david.marchand at redhat.com>
@@ -24,10 +25,10 @@
  1 file changed, 6 insertions(+), 5 deletions(-)
 
 diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c
-index e1fe36a23..2ba66d291 100644
+index b8693ff80..e14862a97 100644
 --- a/drivers/net/virtio/virtio_ethdev.c
 +++ b/drivers/net/virtio/virtio_ethdev.c
-@@ -1761,4 +1761,9 @@ static int eth_virtio_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
+@@ -1764,4 +1764,9 @@ static int eth_virtio_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
  	struct rte_pci_device *pci_dev)
  {
 +	if (rte_eal_iopl_init() != 0) {
@@ -37,7 +38,7 @@
 +
  	/* virtio pmd skips probe if device needs to work in vdpa mode */
  	if (vdpa_mode_selected(pci_dev->device.devargs))
-@@ -1786,9 +1791,5 @@ static struct rte_pci_driver rte_virtio_pmd = {
+@@ -1789,9 +1794,5 @@ static struct rte_pci_driver rte_virtio_pmd = {
  RTE_INIT(rte_virtio_pmd_init)
  {
 -	if (rte_eal_iopl_init() != 0) {


More information about the stable mailing list