OpenCloudOS-Kernel/net/ethtool
Marco Bonelli 19d62f5eea ethtool: Fix and simplify ethtool_convert_link_mode_to_legacy_u32()
Fix the implementation of ethtool_convert_link_mode_to_legacy_u32(), which
is supposed to return false if src has bits higher than 31 set. The current
implementation uses the complement of bitmap_fill(ext, 32) to test high
bits of src, which is wrong as bitmap_fill() fills _with long granularity_,
and sizeof(long) can be > 4. No users of this function currently check the
return value, so the bug was dormant.

Also remove the check for __ETHTOOL_LINK_MODE_MASK_NBITS > 32, as the enum
ethtool_link_mode_bit_indices contains far beyond 32 values. Using
find_next_bit() to test the src bitmask works regardless of this anyway.

Signed-off-by: Marco Bonelli <marco@mebeim.net>
Link: https://lore.kernel.org/r/20220609134900.11201-1-marco@mebeim.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2022-06-13 23:11:35 -07:00
..
Makefile ethtool: Add ability to control transceiver modules' power mode 2021-10-06 17:47:49 -07:00
bitset.c ethtool: fix stack overflow in ethnl_parse_bitset() 2020-12-09 15:50:38 -08:00
bitset.h ethtool: add ethnl_parse_bitset() helper 2020-03-12 15:32:32 -07:00
cabletest.c ethtool: use ethnl_parse_header_dev_put() 2021-12-15 10:27:47 +00:00
channels.c ethtool: use ethnl_parse_header_dev_put() 2021-12-15 10:27:47 +00:00
coalesce.c ethtool: use ethnl_parse_header_dev_put() 2021-12-15 10:27:47 +00:00
common.c ethtool: Add 10base-T1L link mode entry 2022-05-01 17:45:35 +01:00
common.h net: ethtool: Export helpers for getting EEPROM info 2021-04-11 16:34:56 -07:00
debug.c ethtool: use ethnl_parse_header_dev_put() 2021-12-15 10:27:47 +00:00
eee.c ethtool: use ethnl_parse_header_dev_put() 2021-12-15 10:27:47 +00:00
eeprom.c ethtool: Validate module EEPROM offset as part of policy 2021-06-22 10:40:54 -07:00
features.c ethtool: use ethnl_parse_header_dev_put() 2021-12-15 10:27:47 +00:00
fec.c ethtool: use ethnl_parse_header_dev_put() 2021-12-15 10:27:47 +00:00
ioctl.c ethtool: Fix and simplify ethtool_convert_link_mode_to_legacy_u32() 2022-06-13 23:11:35 -07:00
linkinfo.c ethtool: use ethnl_parse_header_dev_put() 2021-12-15 10:27:47 +00:00
linkmodes.c ethtool: use ethnl_parse_header_dev_put() 2021-12-15 10:27:47 +00:00
linkstate.c ethtool: link up ethnl_header_policy as a nested policy 2020-10-06 06:25:55 -07:00
module.c ethtool: use ethnl_parse_header_dev_put() 2021-12-15 10:27:47 +00:00
netlink.c net: rename reference+tracking helpers 2022-06-09 21:52:55 -07:00
netlink.h net: rename reference+tracking helpers 2022-06-09 21:52:55 -07:00
pause.c ethtool: use ethnl_parse_header_dev_put() 2021-12-15 10:27:47 +00:00
phc_vclocks.c ethtool: add a new command for getting PHC virtual clocks 2021-07-01 13:08:18 -07:00
privflags.c ethtool: use ethnl_parse_header_dev_put() 2021-12-15 10:27:47 +00:00
rings.c net: ethtool: move checks before rtnl_lock() in ethnl_set_rings 2022-04-15 11:41:45 -07:00
stats.c ethtool: stats: Use struct_group() to clear all stats at once 2021-11-19 11:53:02 +00:00
strset.c ethtool: strset: fix message length calculation 2021-06-14 12:14:24 -07:00
tsinfo.c ethtool: link up ethnl_header_policy as a nested policy 2020-10-06 06:25:55 -07:00
tunnels.c ethtool: use ethnl_parse_header_dev_put() 2021-12-15 10:27:47 +00:00
wol.c ethtool: use ethnl_parse_header_dev_put() 2021-12-15 10:27:47 +00:00