static bool esw_offloads_devlink_ns_eq_netdev_ns(struct devlink *devlink)
 {
+       struct mlx5_core_dev *dev = devlink_priv(devlink);
        struct net *devl_net, *netdev_net;
-       struct mlx5_eswitch *esw;
-
-       esw = mlx5_devlink_eswitch_nocheck_get(devlink);
-       netdev_net = dev_net(esw->dev->mlx5e_res.uplink_netdev);
-       devl_net = devlink_net(devlink);
+       bool ret = false;
 
-       return net_eq(devl_net, netdev_net);
+       mutex_lock(&dev->mlx5e_res.uplink_netdev_lock);
+       if (dev->mlx5e_res.uplink_netdev) {
+               netdev_net = dev_net(dev->mlx5e_res.uplink_netdev);
+               devl_net = devlink_net(devlink);
+               ret = net_eq(devl_net, netdev_net);
+       }
+       mutex_unlock(&dev->mlx5e_res.uplink_netdev_lock);
+       return ret;
 }
 
 int mlx5_eswitch_block_mode(struct mlx5_core_dev *dev)