return err;
rif_count = MLXSW_CORE_RES_GET(mlxsw_sp->core, MAX_RIFS);
- rtnl_lock();
mutex_lock(&mlxsw_sp->router->lock);
i = 0;
start_again:
if (i != rif_count)
goto start_again;
mutex_unlock(&mlxsw_sp->router->lock);
- rtnl_unlock();
devlink_dpipe_entry_clear(&entry);
return 0;
err_entry_get:
err_ctx_prepare:
mutex_unlock(&mlxsw_sp->router->lock);
- rtnl_unlock();
devlink_dpipe_entry_clear(&entry);
return err;
}
struct mlxsw_sp *mlxsw_sp = priv;
int i;
- rtnl_lock();
mutex_lock(&mlxsw_sp->router->lock);
for (i = 0; i < MLXSW_CORE_RES_GET(mlxsw_sp->core, MAX_RIFS); i++) {
struct mlxsw_sp_rif *rif = mlxsw_sp_rif_by_index(mlxsw_sp, i);
MLXSW_SP_RIF_COUNTER_EGRESS);
}
mutex_unlock(&mlxsw_sp->router->lock);
- rtnl_unlock();
return 0;
}
int i, j;
int err;
- rtnl_lock();
mutex_lock(&mlxsw_sp->router->lock);
i = 0;
rif_count = MLXSW_CORE_RES_GET(mlxsw_sp->core, MAX_RIFS);
goto start_again;
mutex_unlock(&mlxsw_sp->router->lock);
- rtnl_unlock();
return 0;
err_ctx_prepare:
err_entry_append:
mutex_unlock(&mlxsw_sp->router->lock);
- rtnl_unlock();
return err;
}
{
int i;
- rtnl_lock();
mutex_lock(&mlxsw_sp->router->lock);
for (i = 0; i < MLXSW_CORE_RES_GET(mlxsw_sp->core, MAX_RIFS); i++) {
struct mlxsw_sp_rif *rif = mlxsw_sp_rif_by_index(mlxsw_sp, i);
}
}
mutex_unlock(&mlxsw_sp->router->lock);
- rtnl_unlock();
}
static int mlxsw_sp_dpipe_table_host4_counters_update(void *priv, bool enable)
u64 size = 0;
int i;
- rtnl_lock();
mutex_lock(&mlxsw_sp->router->lock);
for (i = 0; i < MLXSW_CORE_RES_GET(mlxsw_sp->core, MAX_RIFS); i++) {
struct mlxsw_sp_rif *rif = mlxsw_sp_rif_by_index(mlxsw_sp, i);
}
}
mutex_unlock(&mlxsw_sp->router->lock);
- rtnl_unlock();
return size;
}
int j;
int err;
- rtnl_lock();
mutex_lock(&mlxsw_sp->router->lock);
nh_count_max = mlxsw_sp_dpipe_table_adj_size(mlxsw_sp);
start_again:
if (nh_count != nh_count_max)
goto start_again;
mutex_unlock(&mlxsw_sp->router->lock);
- rtnl_unlock();
return 0;
err_ctx_prepare:
err_entry_append:
mutex_unlock(&mlxsw_sp->router->lock);
- rtnl_unlock();
return err;
}
struct mlxsw_sp *mlxsw_sp = priv;
u64 size;
- rtnl_lock();
mutex_lock(&mlxsw_sp->router->lock);
size = mlxsw_sp_dpipe_table_adj_size(mlxsw_sp);
mutex_unlock(&mlxsw_sp->router->lock);
- rtnl_unlock();
return size;
}
int i, num_rec;
int err;
- rtnl_lock();
/* Ensure the RIF we read from the device does not change mid-dump. */
mutex_lock(&mlxsw_sp->router->lock);
do {
i);
} while (mlxsw_sp_router_rauhtd_is_full(rauhtd_pl));
mutex_unlock(&mlxsw_sp->router->lock);
- rtnl_unlock();
return err;
}
{
struct mlxsw_sp_neigh_entry *neigh_entry;
- rtnl_lock();
mutex_lock(&mlxsw_sp->router->lock);
list_for_each_entry(neigh_entry, &mlxsw_sp->router->nexthop_neighs_list,
nexthop_neighs_list_node)
*/
neigh_event_send(neigh_entry->key.n, NULL);
mutex_unlock(&mlxsw_sp->router->lock);
- rtnl_unlock();
}
static void
* but it wouldn't get resolved ever in case traffic is flowing in HW
* using different nexthop.
*/
- rtnl_lock();
mutex_lock(&router->lock);
list_for_each_entry(neigh_entry, &router->nexthop_neighs_list,
nexthop_neighs_list_node)
if (!neigh_entry->connected)
neigh_event_send(neigh_entry->key.n, NULL);
mutex_unlock(&router->lock);
- rtnl_unlock();
mlxsw_core_schedule_dw(&router->nexthop_probe_dw,
MLXSW_SP_UNRESOLVED_NH_PROBE_INTERVAL);
dead = n->dead;
read_unlock_bh(&n->lock);
- rtnl_lock();
mutex_lock(&mlxsw_sp->router->lock);
mlxsw_sp_span_respin(mlxsw_sp);
out:
mutex_unlock(&mlxsw_sp->router->lock);
- rtnl_unlock();
neigh_release(n);
kfree(net_work);
}
struct mlxsw_sp *mlxsw_sp = fib_work->mlxsw_sp;
int err;
- rtnl_lock();
mutex_lock(&mlxsw_sp->router->lock);
mlxsw_sp_span_respin(mlxsw_sp);
break;
}
mutex_unlock(&mlxsw_sp->router->lock);
- rtnl_unlock();
kfree(fib_work);
}
struct mlxsw_sp *mlxsw_sp = fib_work->mlxsw_sp;
int err;
- rtnl_lock();
mutex_lock(&mlxsw_sp->router->lock);
mlxsw_sp_span_respin(mlxsw_sp);
break;
}
mutex_unlock(&mlxsw_sp->router->lock);
- rtnl_unlock();
kfree(fib_work);
}