Re: [PATCH] net: net_failover: Fix the deadlock in slave register
From: Simon Horman
Date: Sun Apr 26 2026 - 04:10:57 EST
On Thu, Apr 23, 2026 at 07:59:43AM +0000, Faicker Mo wrote:
> There is netdev_lock_ops() before the NETDEV_REGISTER notifier
> in register_netdevice(), so use the non-locking functions
> in net_failover_slave_register().
>
> Call Trace:
> <TASK>
> __schedule+0x30d/0x7a0
> schedule+0x27/0x90
> schedule_preempt_disabled+0x15/0x30
> __mutex_lock.constprop.0+0x538/0x9e0
> __mutex_lock_slowpath+0x13/0x20
> mutex_lock+0x3b/0x50
> dev_set_mtu+0x40/0xe0
> net_failover_slave_register+0x24/0x280
> failover_slave_register+0x103/0x1b0
> failover_event+0x15e/0x210
> ? dropmon_net_event+0xac/0xe0
> notifier_call_chain+0x5e/0xe0
> raw_notifier_call_chain+0x16/0x30
> call_netdevice_notifiers_info+0x52/0xa0
> register_netdevice+0x5f4/0x7c0
> register_netdev+0x1e/0x40
> _mlx5e_probe+0xe2/0x370 [mlx5_core]
> mlx5e_probe+0x59/0x70 [mlx5_core]
> ? __pfx_mlx5e_probe+0x10/0x10 [mlx5_core]
>
> Fixes: 4c975fd70002 ("net: hold instance lock during NETDEV_REGISTER/UP")
> Signed-off-by: Faicker Mo <faicker.mo@xxxxxxxxxxxx>
...
Unfortunately this patch does not apply: it seems that somehow all the tabs
were converted into spaces.
> @@ -565,7 +565,7 @@ static int net_failover_slave_register(struct net_device *slave_dev,
> dev_close(slave_dev);
Claude Code flags that that this needs to be changed to netif_close()
> err_dev_open:
> dev_put(slave_dev);
> - dev_set_mtu(slave_dev, orig_mtu);
> + netif_set_mtu(slave_dev, orig_mtu);
> done:
> return err;
> }
--
pw-bot: changes-requested