[dpdk-dev] [PATCH v3 6/6] net/failsafe: fix removed device handling
Gaëtan Rivet
gaetan.rivet at 6wind.com
Tue Dec 19 23:21:31 CET 2017
Hi Matan,
On Tue, Dec 19, 2017 at 05:10:15PM +0000, Matan Azrad wrote:
> There is time between the physical removal of the device until
> sub-device PMDs get a RMV interrupt. At this time DPDK PMDs and
> applications still don't know about the removal and may call sub-device
> control operation which should return an error.
>
> In previous code this error is reported to the application contrary to
> fail-safe principle that the app should not be aware of device removal.
>
> Add an removal check in each relevant control command error flow and
> prevent an error report to application when the sub-device is removed.
>
> Fixes: a46f8d5 ("net/failsafe: add fail-safe PMD")
> Fixes: b737a1e ("net/failsafe: support flow API")
>
> Signed-off-by: Matan Azrad <matan at mellanox.com>
> ---
<snip>
> +/*
> + * Check if error should be reported to the user.
> + */
> +static inline bool
> +fs_is_error(struct sub_device *sdev, int err)
> +{
> + /* A device removal shouldn't be reported as an error. */
> + if (err == 0 || sdev->remove == 1 || err == -EIO)
> + return false;
> + return true;
> +}
This is better, thanks.
However is there a reason you did not follow the same pattern as ethdev with
eth_err? I see the two functions as similar in their intent, making them
close to each other would be clearer to a reader being familiar with the
ethdev API and that would be interested in fail-safe.
What do you think?
--
Gaëtan Rivet
6WIND
More information about the dev
mailing list