linux/net/ethtool
Maxime Chevallier a065b99605 net: ethtool: Don't call .cleanup_data when prepare_data fails
[ Upstream commit 4f038a6a02 ]

There's a consistent pattern where the .cleanup_data() callback is
called when .prepare_data() fails, when it should really be called to
clean after a successful .prepare_data() as per the documentation.

Rewrite the error-handling paths to make sure we don't cleanup
un-prepared data.

Fixes: c781ff12a2 ("ethtool: Allow network drivers to dump arbitrary EEPROM data")
Reviewed-by: Kory Maincent <kory.maincent@bootlin.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Reviewed-by: Michal Kubecek <mkubecek@suse.cz>
Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
Link: https://patch.msgid.link/20250407130511.75621-1-maxime.chevallier@bootlin.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2025-04-20 10:15:07 +02:00
..
bitset.c ethtool: Fix wrong mod state in case of verbose and no_mask bitset 2024-12-14 20:03:08 +01:00
bitset.h ethtool: add ethnl_parse_bitset() helper 2020-03-12 15:32:32 -07:00
cabletest.c net: ethtool: netlink: Allow NULL nlattrs when getting a phy_device 2025-03-13 13:02:08 +01:00
channels.c ethtool: refactor checking max channels 2024-08-09 21:52:13 -07:00
cmis.h ethtool: cmis_cdb: Remove unused declaration ethtool_cmis_page_fini() 2024-08-06 12:16:58 -07:00
cmis_cdb.c net: ethtool: Enhance error messages sent to user space 2024-09-13 21:12:27 -07:00
cmis_fw_update.c net: ethtool: Allow write mechanism of LPL and both LPL and EPL 2024-08-15 12:20:14 +02: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 netdev: support binding dma-buf to netdevice 2024-09-11 20:44:31 -07:00
common.h ethtool: refactor checking max channels 2024-08-09 21:52:13 -07: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: ntuple: fix rss + ring_cookie check 2025-02-08 09:58:19 +01:00
linkinfo.c ethtool: Don't check for NULL info in prepare_data callbacks 2024-08-01 09:03:52 -07:00
linkmodes.c ethtool: Don't check for NULL info in prepare_data callbacks 2024-08-01 09:03:52 -07:00
linkstate.c net: ethtool: netlink: Allow NULL nlattrs when getting a phy_device 2025-03-13 13:02:08 +01: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.c net: ethtool: Monotonically increase the message sequence number 2024-07-13 15:37:36 -07:00
module_fw.h ethtool: Add ability to flash transceiver modules' firmware 2024-06-28 10:48:23 +01:00
netlink.c net: ethtool: Don't call .cleanup_data when prepare_data fails 2025-04-20 10:15:07 +02:00
netlink.h net: ethtool: netlink: Allow NULL nlattrs when getting a phy_device 2025-03-13 13:02:08 +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: netlink: Allow NULL nlattrs when getting a phy_device 2025-03-13 13:02:08 +01:00
plca.c net: ethtool: netlink: Allow NULL nlattrs when getting a phy_device 2025-03-13 13:02:08 +01:00
privflags.c ethtool: netlink: always pass genl_info to .prepare_data 2023-08-15 15:01:03 -07:00
pse-pd.c net: ethtool: netlink: Allow NULL nlattrs when getting a phy_device 2025-03-13 13:02:08 +01:00
rings.c ethtool: add SET for TCP_DATA_SPLIT ringparam 2023-12-13 18:22:02 -08:00
rss.c ethtool: rss: fix hiding unsupported fields in dumps 2025-02-17 10:05:00 +01:00
stats.c net: ethtool: netlink: Allow NULL nlattrs when getting a phy_device 2025-03-13 13:02:08 +01:00
strset.c net: ethtool: netlink: Allow NULL nlattrs when getting a phy_device 2025-03-13 13:02:08 +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