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 <j...@linux.ibm.com>
> Reviewed-by: Alexandra Winter <wint...@linux.ibm.com>
> ---
>  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").

Reply via email to