errno = EINVAL;
return -EINVAL;
}
- call_rcu_unlock(&call_rcu_mutex);
if (per_cpu_call_rcu_data == NULL) {
+ call_rcu_unlock(&call_rcu_mutex);
errno = ENOMEM;
return -ENOMEM;
}
per_cpu_call_rcu_data[cpu] = crdp;
+ call_rcu_unlock(&call_rcu_mutex);
return 0;
}
*cbs_endprev = cbs;
uatomic_add(&default_call_rcu_data->qlen,
uatomic_read(&crdp->qlen));
+ wake_call_rcu_thread(default_call_rcu_data);
}
cds_list_del(&crdp->list);