|
|
83ef35 |
From 89b49b2a88392c510c6a171940701ba4cf580116 Mon Sep 17 00:00:00 2001
|
|
|
83ef35 |
From: Maxim Mikityanskiy <maximmi@mellanox.com>
|
|
|
83ef35 |
Date: Fri, 14 Aug 2020 16:17:44 +0300
|
|
|
83ef35 |
Subject: [PATCH 01/17] netlink: Fix the condition for displaying actual
|
|
|
83ef35 |
changes
|
|
|
83ef35 |
|
|
|
83ef35 |
This comment in the code:
|
|
|
83ef35 |
|
|
|
83ef35 |
/* result is not exactly as requested, show differences */
|
|
|
83ef35 |
|
|
|
83ef35 |
implies that the "Actual changes" output should be displayed only if the
|
|
|
83ef35 |
result is not as requested, which matches the legacy ethtool behavior.
|
|
|
83ef35 |
However, in fact, ethtool-netlink displays "actual changes" even when
|
|
|
83ef35 |
the changes are expected (e.g., one bit was requested, and it was
|
|
|
83ef35 |
changed as requested).
|
|
|
83ef35 |
|
|
|
83ef35 |
This commit fixes the condition above to make the behavior match the
|
|
|
83ef35 |
description in the comment and the behavior of the legacy ethtool. The
|
|
|
83ef35 |
new condition excludes the req_mask bits from active_mask to avoid
|
|
|
83ef35 |
reacting on bit changes that we asked for. The new condition now
|
|
|
83ef35 |
matches the ifs in the loop above that print "[requested on/off]" and
|
|
|
83ef35 |
"[not requested]".
|
|
|
83ef35 |
|
|
|
83ef35 |
Signed-off-by: Maxim Mikityanskiy <maximmi@mellanox.com>
|
|
|
83ef35 |
Signed-off-by: Michal Kubecek <mkubecek@suse.cz>
|
|
|
83ef35 |
(cherry picked from commit 83d2b635de121a16a27663cc4e3045243e56063b)
|
|
|
83ef35 |
---
|
|
|
83ef35 |
netlink/features.c | 2 +-
|
|
|
83ef35 |
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
83ef35 |
|
|
|
83ef35 |
diff --git a/netlink/features.c b/netlink/features.c
|
|
|
83ef35 |
index 8b5b8588ca23..133529da2b9f 100644
|
|
|
83ef35 |
--- a/netlink/features.c
|
|
|
83ef35 |
+++ b/netlink/features.c
|
|
|
83ef35 |
@@ -413,7 +413,7 @@ static void show_feature_changes(struct nl_context *nlctx,
|
|
|
83ef35 |
|
|
|
83ef35 |
diff = false;
|
|
|
83ef35 |
for (i = 0; i < words; i++)
|
|
|
83ef35 |
- if (wanted_mask[i] || active_mask[i])
|
|
|
83ef35 |
+ if (wanted_mask[i] || (active_mask[i] & ~sfctx->req_mask[i]))
|
|
|
83ef35 |
diff = true;
|
|
|
83ef35 |
if (!diff)
|
|
|
83ef35 |
return;
|
|
|
83ef35 |
--
|
|
|
83ef35 |
2.26.2
|
|
|
83ef35 |
|