On Tue, 5 May 2020 18:25:58 +0200 Julian Wiedmann wrote:
> Implement the .reset callback. Only a full reset is supported.
>
> Signed-off-by: Julian Wiedmann <[email protected]>
> Reviewed-by: Alexandra Winter <[email protected]>
> ---
> drivers/s390/net/qeth_ethtool.c | 16 ++++++++++++++++
> 1 file changed, 16 insertions(+)
>
> diff --git a/drivers/s390/net/qeth_ethtool.c b/drivers/s390/net/qeth_ethtool.c
> index ebdc03210608..0d12002d0615 100644
> --- a/drivers/s390/net/qeth_ethtool.c
> +++ b/drivers/s390/net/qeth_ethtool.c
> @@ -193,6 +193,21 @@ static void qeth_get_drvinfo(struct net_device *dev,
> CARD_RDEV_ID(card), CARD_WDEV_ID(card), CARD_DDEV_ID(card));
> }
>
> +static int qeth_reset(struct net_device *dev, u32 *flags)
> +{
> + struct qeth_card *card = dev->ml_priv;
> + int rc;
> +
> + if (*flags != ETH_RESET_ALL)
> + return -EINVAL;
> +
> + rc = qeth_schedule_recovery(card);
> + if (!rc)
> + *flags = 0;
I think it's better if you only clear the flags for things you actually
reset. See the commit message for 7a13240e3718 ("bnxt_en: fix
ethtool_reset_flags ABI violations").