summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIlya Maximets <i.maximets@samsung.com>2018-11-23 18:39:20 +0300
committerThomas Monjalon <thomas@monjalon.net>2018-11-25 11:44:57 +0100
commit705dced4a72a1053368c84c4b68f04f028a78b30 (patch)
tree7485948e97d44e2680586b7680daf1c909764161
parent9e8b90fc6de98989583c9468769e5898bf6e9e0d (diff)
downloaddpdk-705dced4a72a1053368c84c4b68f04f028a78b30.zip
dpdk-705dced4a72a1053368c84c4b68f04f028a78b30.tar.gz
dpdk-705dced4a72a1053368c84c4b68f04f028a78b30.tar.xz
net/virtio: avoid annoying IOPL error log
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") Cc: stable@dpdk.org Signed-off-by: Ilya Maximets <i.maximets@samsung.com> Reviewed-by: David Marchand <david.marchand@redhat.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
-rw-r--r--drivers/net/virtio/virtio_ethdev.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c
index e1fe36a..2ba66d2 100644
--- a/drivers/net/virtio/virtio_ethdev.c
+++ b/drivers/net/virtio/virtio_ethdev.c
@@ -1760,6 +1760,11 @@ exit:
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))
return 1;
@@ -1785,11 +1790,7 @@ 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);
}