eal: fixup hotplugging an already present device
Checks
Commit Message
We were returning rc = -1 from a device probing function
whenever the provided device was already probed before.
This basically broke hotplugging a device in secondary
process when the same device was already hotplugged in
the primary.
To fix it, just return 0 instead of -1. I believe this is
the originally intented behavior.
Fixes: e9d159c3d534 ("eal: allow probing a device again")
Cc: thomas@monjalon.net
Cc: stable@dpdk.org
Signed-off-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
---
lib/librte_eal/common/eal_common_dev.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Comments
25/10/2018 12:51, Darek Stojaczyk:
> We were returning rc = -1 from a device probing function
> whenever the provided device was already probed before.
>
> This basically broke hotplugging a device in secondary
> process when the same device was already hotplugged in
> the primary.
>
> To fix it, just return 0 instead of -1. I believe this is
> the originally intented behavior.
The intent was to return the error seen during probing again.
If there is no error, the PMD must return 0.
It means I reject this patch so far.
> -----Original Message-----
> From: Thomas Monjalon [mailto:thomas@monjalon.net]
> Sent: Thursday, October 25, 2018 1:49 PM
> To: Stojaczyk, Dariusz <dariusz.stojaczyk@intel.com>
> Cc: dev@dpdk.org; stable@dpdk.org
> Subject: Re: [PATCH] eal: fixup hotplugging an already present device
>
> 25/10/2018 12:51, Darek Stojaczyk:
> > We were returning rc = -1 from a device probing function
> > whenever the provided device was already probed before.
> >
> > This basically broke hotplugging a device in secondary
> > process when the same device was already hotplugged in
> > the primary.
> >
> > To fix it, just return 0 instead of -1. I believe this is
> > the originally intented behavior.
>
> The intent was to return the error seen during probing again.
> If there is no error, the PMD must return 0.
> It means I reject this patch so far.
>
I see, let's abandon this one.
I submitted another patch for PCI that resolves the mentioned hotplug issue:
[PATCH] pci: propagate exact error codes in pci_probe_all_drivers()
D.
@@ -222,7 +222,7 @@ local_dev_probe(const char *devargs, struct rte_device **new_dev)
ret = dev->bus->plug(dev);
if (ret) {
if (rte_dev_is_probed(dev)) /* if already succeeded earlier */
- return ret; /* no rollback */
+ return 0; /* no rollback */
RTE_LOG(ERR, EAL, "Driver cannot attach the device (%s)\n",
dev->name);
goto err_devarg;