Re: [PATCH net] net: watchdog: fix refcount tracking races
From: Eric Dumazet <edumazet@google.com>
Date: 2026-06-08 16:15:21
On Mon, Jun 8, 2026 at 9:01 AM Jakub Kicinski [off-list ref] wrote:
On Mon, 8 Jun 2026 12:39:35 +0000 Eric Dumazet wrote:quoted
Blamed commit converted the untracked dev_hold()/dev_put() calls in the watchdog code to use the tracked dev_hold_track()/dev_put_track() (which were later renamed/interfaced to netdev_hold() and netdev_put()).selftest kernel build says: net/sched/sch_generic.c: In function ‘netdev_watchdog_up’: net/sched/sch_generic.c:594:39: error: incompatible type for argument 1 of ‘IS_ERR_OR_NULL’ 594 | if (IS_ERR_OR_NULL(dev->watchdog_dev_tracker)) | ~~~^~~~~~~~~~~~~~~~~~~~~~ | | | netdevice_tracker config: https://netdev-ctrl.bots.linux.dev/logs/vmksft/forwarding/results/682182/config
Oh right, I should have guarded this
#ifdef CONFIG_NET_DEV_REFCNT_TRACKER
if (IS_ERR_OR_NULL(dev->watchdog_dev_tracker))
#endif
netdev_hold(dev, &dev->watchdog_dev_tracker,
GFP_ATOMIC);