> If multi-process is disabled (--no-shconf/--in-memory), there is no need to
> build a multi-process message.
> 
> Signed-off-by: David Marchand <[email protected]>
> ---
>  lib/eal/common/eal_common_dev.c | 46 ++++++++++++++++++++++++---------
>  1 file changed, 34 insertions(+), 12 deletions(-)
> 
> diff --git a/lib/eal/common/eal_common_dev.c
> b/lib/eal/common/eal_common_dev.c index 48b631532a..b0ec2b0601
> 100644
> --- a/lib/eal/common/eal_common_dev.c
> +++ b/lib/eal/common/eal_common_dev.c
> @@ -267,10 +267,16 @@ RTE_EXPORT_SYMBOL(rte_dev_probe)  int
> rte_dev_probe(const char *devargs)  {
> +     const struct internal_config *internal_conf =
> +             eal_get_internal_configuration();
> +     bool do_mp = internal_conf->no_shconf == 0;
>       struct eal_dev_mp_req req;
>       struct rte_device *dev;
>       int ret;
> 
> +     if (!do_mp)
> +             goto skip_mp_req;
> +
>       memset(&req, 0, sizeof(req));
>       req.t = EAL_DEV_REQ_TYPE_ATTACH;
>       strlcpy(req.devargs, devargs, EAL_DEV_MP_DEV_ARGS_MAX_LEN);
> @@ -294,6 +300,7 @@ rte_dev_probe(const char *devargs)
> 
>       /* attach a shared device from primary start from here: */
> 
> +skip_mp_req:
>       /* primary attach the new device itself. */
>       ret = local_dev_probe(devargs, &dev);
> 
> @@ -311,6 +318,9 @@ rte_dev_probe(const char *devargs)
>                       return ret;
>       }
> 
> +     if (!do_mp)
> +             goto skip_mp_notify;
> +
>       /* primary send attach sync request to secondary. */
>       ret = eal_dev_hotplug_request_to_secondary(&req);
> 
> @@ -337,16 +347,19 @@ rte_dev_probe(const char *devargs)
>               goto rollback;
>       }
> 
> +skip_mp_notify:
>       return 0;
> 
>  rollback:
> -     req.t = EAL_DEV_REQ_TYPE_ATTACH_ROLLBACK;
> +     if (do_mp) {
> +             req.t = EAL_DEV_REQ_TYPE_ATTACH_ROLLBACK;
> 
> -     /* primary send rollback request to secondary. */
> -     if (eal_dev_hotplug_request_to_secondary(&req) != 0)
> -             EAL_LOG(WARNING,
> -                     "Failed to rollback device attach on secondary."
> -                     "Devices in secondary may not sync with primary");
> +             /* primary send rollback request to secondary. */
> +             if (eal_dev_hotplug_request_to_secondary(&req) != 0)
> +                     EAL_LOG(WARNING,
> +                             "Failed to rollback device attach on
> secondary."
> +                             "Devices in secondary may not sync with
> primary");
> +     }
> 
>       /* primary rollback itself. */
>       if (local_dev_remove(dev) != 0)
> @@ -405,6 +418,9 @@ RTE_EXPORT_SYMBOL(rte_dev_remove)  int
> rte_dev_remove(struct rte_device *dev)  {
> +     const struct internal_config *internal_conf =
> +             eal_get_internal_configuration();
> +     bool do_mp = internal_conf->no_shconf == 0;
>       struct eal_dev_mp_req req;
>       char *devargs;
>       int ret;
> @@ -418,6 +434,9 @@ rte_dev_remove(struct rte_device *dev)
>       if (ret != 0)
>               return ret;
> 
> +     if (!do_mp)
> +             goto skip_mp_req;
> +

Need to call free(devargs) as it no longer used.


>       memset(&req, 0, sizeof(req));
>       req.t = EAL_DEV_REQ_TYPE_DETACH;
>       strlcpy(req.devargs, devargs, EAL_DEV_MP_DEV_ARGS_MAX_LEN);
> @@ -472,6 +491,7 @@ rte_dev_remove(struct rte_device *dev)
>                       goto rollback;
>       }
> 
> +skip_mp_req:
>       /* primary detach the device itself. */
>       ret = local_dev_remove(dev);
> 
> @@ -488,13 +508,15 @@ rte_dev_remove(struct rte_device *dev)
>       return 0;
> 
>  rollback:
> -     req.t = EAL_DEV_REQ_TYPE_DETACH_ROLLBACK;
> +     if (do_mp) {
> +             req.t = EAL_DEV_REQ_TYPE_DETACH_ROLLBACK;
> 
> -     /* primary send rollback request to secondary. */
> -     if (eal_dev_hotplug_request_to_secondary(&req) != 0)
> -             EAL_LOG(WARNING,
> -                     "Failed to rollback device detach on secondary."
> -                     "Devices in secondary may not sync with primary");
> +             /* primary send rollback request to secondary. */
> +             if (eal_dev_hotplug_request_to_secondary(&req) != 0)
> +                     EAL_LOG(WARNING,
> +                             "Failed to rollback device detach on
> secondary."
> +                             "Devices in secondary may not sync with
> primary");
> +     }
> 
>       return ret;
>  }
> --
> 2.54.0

Reply via email to