Re: [PATCH net v3] RDMA/core: Reject unregistering netdevs in ib_get_eth_speed
From: Jason Gunthorpe
Date: Mon Aug 10 2026 - 10:02:17 EST
On Mon, Aug 10, 2026 at 03:31:20PM +0200, Krystian Kaniewski wrote:
> @@ -2049,7 +2050,15 @@ int ib_get_eth_speed(struct ib_device *dev, u32 port_num, u16 *speed, u8 *width)
> return -ENODEV;
>
> rtnl_lock();
> + if (READ_ONCE(netdev->reg_state) != NETREG_REGISTERED) {
> + dev_put(netdev);
> + rtnl_unlock();
> + return -ENODEV;
> + }
> +
> rc = __ethtool_get_link_ksettings(netdev, &lksettings);
> + if (rc)
> + strscpy(name, netdev->name, sizeof(name));
> rtnl_unlock();
>
> dev_put(netdev);
> @@ -2060,7 +2069,7 @@ int ib_get_eth_speed(struct ib_device *dev, u32 port_num, u16 *speed, u8 *width)
> netdev_speed = SPEED_1000;
> if (rc)
> pr_warn("%s speed is unknown, defaulting to %u\n",
> - netdev->name, netdev_speed);
> + name, netdev_speed);
> }
I would probably just put this block inside the rtnl lock and not copy
the netdev->name
Jason