47 lines
1.6 KiB
Diff
47 lines
1.6 KiB
Diff
|
From 89b49b2a88392c510c6a171940701ba4cf580116 Mon Sep 17 00:00:00 2001
|
||
|
From: Maxim Mikityanskiy <maximmi@mellanox.com>
|
||
|
Date: Fri, 14 Aug 2020 16:17:44 +0300
|
||
|
Subject: [PATCH 01/17] netlink: Fix the condition for displaying actual
|
||
|
changes
|
||
|
|
||
|
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 <maximmi@mellanox.com>
|
||
|
Signed-off-by: Michal Kubecek <mkubecek@suse.cz>
|
||
|
(cherry picked from commit 83d2b635de121a16a27663cc4e3045243e56063b)
|
||
|
---
|
||
|
netlink/features.c | 2 +-
|
||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||
|
|
||
|
diff --git a/netlink/features.c b/netlink/features.c
|
||
|
index 8b5b8588ca23..133529da2b9f 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.26.2
|
||
|
|