dev: fix vdev attach after PCI mismatch
authorGaetan Rivet <gaetan.rivet@6wind.com>
Mon, 31 Jul 2017 12:58:29 +0000 (14:58 +0200)
committerThomas Monjalon <thomas@monjalon.net>
Mon, 31 Jul 2017 13:18:32 +0000 (15:18 +0200)
commit1b4f2f837250afc7e1ad72828eddf32cfbaf19d8
tree22870d185feeeb6fb2e8de68355ecc8deeac8309
parent857dc6803b1392c5cd1c6010e04f26d34953557f
dev: fix vdev attach after PCI mismatch

If the device is a vdev, the parsing for PCI will fail with -EFAULT,
and will not try to check for a vdev.

Checking against error values returned by rte_eal_hotplug_add is
inelegant and prone to mistakes. Additionally, the failed PCI probe
prints a useless error that would throw off unsuspecting users:

   ERROR: failed to parse device "pci:net_ring0"

This error is printed when attempting to probe a virtual device first
with the PCI bus (here, a net_ring0 device).

Use the relevant functions to infer the intended bus. The limitation to
PCI or vdev device is kept for strict API compatibility. Thus the PCI
probe attempt is avoided and the right function is directly called.

Fixes: 1c35f666df07 ("dev: fix attach proceeding with vdev on PCI success")

Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
lib/librte_eal/common/eal_common_dev.c