On Fri, Aug 14, 2020 at 04:17:44PM +0300, Maxim Mikityanskiy wrote:
> This comment in the code:
> 
>     /* result is not exactly as requested, show differences */
> 
> implies that the "Actual changes" output should be displayed only if the
> result is not as requested, which matches the legacy ethtool behavior.
> However, in fact, ethtool-netlink displays "actual changes" even when
> the changes are expected (e.g., one bit was requested, and it was
> changed as requested).
> 
> This commit fixes the condition above to make the behavior match the
> description in the comment and the behavior of the legacy ethtool. The
> new condition excludes the req_mask bits from active_mask to avoid
> reacting on bit changes that we asked for. The new condition now
> matches the ifs in the loop above that print "[requested on/off]" and
> "[not requested]".
> 
> Signed-off-by: Maxim Mikityanskiy <maxi...@mellanox.com>

Applied, thank you.

Michal

> ---
>  netlink/features.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/netlink/features.c b/netlink/features.c
> index 8b5b858..133529d 100644
> --- a/netlink/features.c
> +++ b/netlink/features.c
> @@ -413,7 +413,7 @@ static void show_feature_changes(struct nl_context *nlctx,
>  
>       diff = false;
>       for (i = 0; i < words; i++)
> -             if (wanted_mask[i] || active_mask[i])
> +             if (wanted_mask[i] || (active_mask[i] & ~sfctx->req_mask[i]))
>                       diff = true;
>       if (!diff)
>               return;
> -- 
> 2.21.0
> 

Attachment: signature.asc
Description: PGP signature

Reply via email to