twx-linux/drivers/net/netdevsim
Jakub Kicinski 6db9d3a536 netdevsim: don't assume core pre-populates HDS params on GET
Syzbot reports:

  BUG: KMSAN: uninit-value in nsim_get_ringparam+0xa8/0xe0 drivers/net/netdevsim/ethtool.c:77
   nsim_get_ringparam+0xa8/0xe0 drivers/net/netdevsim/ethtool.c:77
   ethtool_set_ringparam+0x268/0x570 net/ethtool/ioctl.c:2072
   __dev_ethtool net/ethtool/ioctl.c:3209 [inline]
   dev_ethtool+0x126d/0x2a40 net/ethtool/ioctl.c:3398
   dev_ioctl+0xb0e/0x1280 net/core/dev_ioctl.c:759

This is the SET path, where we call GET to either check user request
against max values, or check if any of the settings will change.

The logic in netdevsim is trying to report the default (ENABLED)
if user has not requested any specific setting. The user setting
is recorded in dev->cfg, don't depend on kernel_ringparam being
pre-populated with it.

Fixes: 928459bbda19 ("net: ethtool: populate the default HDS params in the core")
Reported-by: Eric Dumazet <edumazet@google.com>
Reported-by: syzbot+b3bcd80232d00091e061@syzkaller.appspotmail.com
Tested-by: syzbot+b3bcd80232d00091e061@syzkaller.appspotmail.com
Link: https://patch.msgid.link/20250123221410.1067678-1-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2025-01-27 14:37:11 -08:00
..
bpf.c netdevsim: Don't accept device bound programs 2023-11-23 13:04:04 -08:00
bus.c netdevsim: allow two netdevsim ports to be connected 2024-03-01 10:43:10 +00:00
dev.c netdevsim: use cond_resched() in nsim_dev_trap_report_work() 2024-10-15 09:58:43 -07:00
ethtool.c netdevsim: don't assume core pre-populates HDS params on GET 2025-01-27 14:37:11 -08:00
fib.c netdevsim: Add trailing zero to terminate the string in nsim_nexthop_bucket_activity_write() 2024-10-29 11:43:01 -07:00
health.c netdevsim: prevent bad user input in nsim_dev_health_break_write() 2024-12-15 13:26:47 -08:00
hwstats.c netdevsim: Fix hwstats debugfs file permissions 2022-09-19 14:40:38 -07:00
ipsec.c netdevsim: copy addresses for both in and out paths 2024-10-11 15:44:27 -07:00
macsec.c netdevsim: macsec: pad u64 to correct length in logs 2024-10-23 09:51:06 +02:00
Makefile netdevsim: add dummy macsec offload 2023-07-14 09:16:53 +01:00
netdev.c net: move HDS config from ethtool state 2025-01-20 11:44:57 -08:00
netdevsim.h net: netdevsim: try to close UDP port harness races 2025-01-27 14:24:34 -08:00
psample.c
udp_tunnels.c net: netdevsim: try to close UDP port harness races 2025-01-27 14:24:34 -08:00