On Thu, Mar 06, 2025 at 11:24:39AM -0800, longli@xxxxxxxxxxxxxxxxx wrote: > + switch (event) { > + case NETDEV_CHANGEUPPER: > + ndev = mana_get_primary_netdev(mc, 0, &dev->dev_tracker); > + /* > + * RDMA core will setup GID based on updated netdev. > + * It's not possible to race with the core as rtnl lock is being > + * held. > + */ > + ib_device_set_netdev(&dev->ib_dev, ndev, 1); > + > + /* mana_get_primary_netdev() returns ndev with refcount held */ > + netdev_put(ndev, &dev->dev_tracker); ? What is the point of a tracker in dev if it never lasts outside this scope? ib_device_set_netdev() already has a tracker built into it. Jason