eal: fixup hotplugging an already present device

Message ID 20181025105101.137701-1-dariusz.stojaczyk@intel.com (mailing list archive)
State Rejected, archived
Delegated to: Thomas Monjalon
Headers
Series eal: fixup hotplugging an already present device |

Checks

Context Check Description
ci/Intel-compilation success Compilation OK
ci/checkpatch warning coding style issues

Commit Message

Stojaczyk, Dariusz Oct. 25, 2018, 10:51 a.m. UTC
  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

Thomas Monjalon Oct. 25, 2018, 11:49 a.m. UTC | #1
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.
  
Stojaczyk, Dariusz Oct. 26, 2018, 8:18 a.m. UTC | #2
> -----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.
  

Patch

diff --git a/lib/librte_eal/common/eal_common_dev.c b/lib/librte_eal/common/eal_common_dev.c
index 6ac3ee859..75b83418c 100644
--- a/lib/librte_eal/common/eal_common_dev.c
+++ b/lib/librte_eal/common/eal_common_dev.c
@@ -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;