common/mlx5: fix resource cleaning in device removal
authorMichael Baum <michaelba@nvidia.com>
Sun, 12 Sep 2021 10:36:28 +0000 (13:36 +0300)
committerThomas Monjalon <thomas@monjalon.net>
Mon, 20 Sep 2021 21:22:10 +0000 (23:22 +0200)
commitdffae63d3c0157eb1c3b7cd4aad4b0048455be60
tree931cac8f59025004c98331ec1dc110f64f9f5978
parentdc26c9c21b8a6a9768219b558e08f6a780014ff0
common/mlx5: fix resource cleaning in device removal

The common remove function call in a loop to remove function for each
driver which have been registered.

If all removes are succeeded, it return 0 without to free the device
which allocated in probe function. Otherwise, it free the device.
In fact we expect exactly the opposite behavior. If all removes are
failed, it returns error without freeing the device which allocated in
probe function. Otherwise, it free the device and return 0.

Replace it with the correct behavior.

Fixes: 8a41f4deccc3 ("common/mlx5: introduce layer for multiple class drivers")
Cc: stable@dpdk.org
Signed-off-by: Michael Baum <michaelba@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
drivers/common/mlx5/mlx5_common.c