linux-stable/net/ethtool
Kory Maincent 910c4788d6 ethtool: Fix wrong mod state in case of verbose and no_mask bitset
A bitset without mask in a _SET request means we want exactly the bits in
the bitset to be set. This works correctly for compact format but when
verbose format is parsed, ethnl_update_bitset32_verbose() only sets the
bits present in the request bitset but does not clear the rest. The commit
6699170376 ("ethtool: fix application of verbose no_mask bitset") fixes
this issue by clearing the whole target bitmap before we start iterating.
The solution proposed brought an issue with the behavior of the mod
variable. As the bitset is always cleared the old value will always
differ to the new value.

Fix it by adding a new function to compare bitmaps and a temporary variable
which save the state of the old bitmap.

Fixes: 6699170376 ("ethtool: fix application of verbose no_mask bitset")
Signed-off-by: Kory Maincent <kory.maincent@bootlin.com>
Link: https://patch.msgid.link/20241202153358.1142095-1-kory.maincent@bootlin.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2024-12-04 18:54:43 -08:00
..
bitset.c ethtool: Fix wrong mod state in case of verbose and no_mask bitset 2024-12-04 18:54:43 -08:00
bitset.h ethtool: add ethnl_parse_bitset() helper 2020-03-12 15:32:32 -07:00
cabletest.c net: ethtool: cable-test: Release RTNL when the PHY isn't found 2024-08-28 17:18:53 -07:00
channels.c ethtool: refactor checking max channels 2024-08-09 21:52:13 -07:00
cmis_cdb.c net: ethtool: Add support for writing firmware blocks using EPL payload 2024-10-13 18:02:50 +01:00
cmis_fw_update.c net: ethtool: Add support for writing firmware blocks using EPL payload 2024-10-13 18:02:50 +01:00
cmis.h net: ethtool: Add support for writing firmware blocks using EPL payload 2024-10-13 18:02:50 +01:00
coalesce.c net: ethtool: Fix the panic caused by dev being null when dumping coalesce 2024-07-01 13:43:50 +01:00
common.c net: ethtool: account for RSS+RXNFC add semantics when checking channel count 2024-11-14 19:53:42 -08:00
common.h ethtool: rss: prevent rss ctx deletion when in use 2024-10-17 10:22:01 +02:00
debug.c ethtool: netlink: always pass genl_info to .prepare_data 2023-08-15 15:01:03 -07:00
eee.c net: ethtool: eee: Remove legacy _u32 from keee 2024-02-28 12:18:05 +00:00
eeprom.c ethtool: move firmware flashing flag to struct ethtool_netdev_state 2024-07-04 15:45:15 -07:00
features.c ethtool: netlink: Add missing ethnl_ops_begin/complete 2024-01-18 13:21:06 +01:00
fec.c ethtool: netlink: always pass genl_info to .prepare_data 2023-08-15 15:01:03 -07:00
ioctl.c ethtool: Fix access to uninitialized fields in set RXNFC command 2024-12-03 18:42:28 -08:00
linkinfo.c Revert "net: ethtool: Avoid thousands of -Wflex-array-member-not-at-end warnings" 2024-11-18 18:52:11 -08:00
linkmodes.c Revert "net: ethtool: Avoid thousands of -Wflex-array-member-not-at-end warnings" 2024-11-18 18:52:11 -08:00
linkstate.c ethtool: netlink: do not return SQI value if link is down 2024-07-11 11:19:07 +02:00
Makefile net: ethtool: Introduce a command to list PHYs on an interface 2024-08-23 13:04:34 +01:00
mm.c ethtool: netlink: always pass genl_info to .prepare_data 2023-08-15 15:01:03 -07:00
module_fw.h ethtool: Add ability to flash transceiver modules' firmware 2024-06-28 10:48:23 +01:00
module.c net: ethtool: Monotonically increase the message sequence number 2024-07-13 15:37:36 -07:00
netlink.c net: ethtool: Introduce a command to list PHYs on an interface 2024-08-23 13:04:34 +01:00
netlink.h net: ethtool: Introduce a command to list PHYs on an interface 2024-08-23 13:04:34 +01:00
pause.c ethtool: netlink: always pass genl_info to .prepare_data 2023-08-15 15:01:03 -07:00
phc_vclocks.c ethtool: netlink: always pass genl_info to .prepare_data 2023-08-15 15:01:03 -07:00
phy.c net: ethtool: phy: Don't set the context dev pointer for unfiltered DUMP 2024-09-13 21:40:12 -07:00
plca.c net: ethtool: plca: Target the command to the requested PHY 2024-08-23 13:04:34 +01:00
privflags.c ethtool: netlink: always pass genl_info to .prepare_data 2023-08-15 15:01:03 -07:00
pse-pd.c ethtool: pse-pd: move pse validation into set 2024-08-30 12:14:57 -07:00
rings.c ethtool: add SET for TCP_DATA_SPLIT ringparam 2023-12-13 18:22:02 -08:00
rss.c genetlink: extend info user-storage to match NL cb ctx 2024-10-10 08:30:21 -07:00
stats.c ethtool: netlink: always pass genl_info to .prepare_data 2023-08-15 15:01:03 -07:00
strset.c net: ethtool: strset: Allow querying phy stats by index 2024-08-23 13:04:35 +01:00
tsinfo.c net: Add struct kernel_ethtool_ts_info 2024-07-15 08:02:26 -07:00
tunnels.c genetlink: use attrs from struct genl_info 2023-08-15 15:00:45 -07:00
wol.c net: move ethtool-related netdev state into its own struct 2024-06-28 18:53:17 -07:00