}
}
error = __register_pernet_operations(list, ops);
- if (error && ops->id)
- ida_remove(&net_generic_ids, *ops->id);
+ if (error) {
+ rcu_barrier();
+ if (ops->id)
+ ida_remove(&net_generic_ids, *ops->id);
+ }
return error;
}
{
__unregister_pernet_operations(ops);
+ rcu_barrier();
if (ops->id)
ida_remove(&net_generic_ids, *ops->id);
}