rcu: Fix quiescent state reporting deadlock
[akaros.git] / kern / src / coreprov.c
index 6134a1a..f3e5ca3 100644 (file)
@@ -8,18 +8,13 @@
 #include <env.h>
 #include <schedule.h>
 
-/* Initialize any data associated with provisiong cores to a process. */
-void coreprov_proc_init(struct proc *p)
-{
-       TAILQ_INIT(&p->ksched_data.crd.prov_alloc_me);
-       TAILQ_INIT(&p->ksched_data.crd.prov_not_alloc_me);
-}
-
 /* Provision a core to proc p. This code assumes that the scheduler that uses
  * it holds a lock for the duration of the call. */
-void __provision_core(struct proc *p, struct sched_pcore *spc)
+void __provision_core(struct proc *p, uint32_t pcoreid)
 {
+       struct sched_pcore *spc = pcoreid2spc(pcoreid);
        struct sched_pcore_tailq *prov_list;
+
        /* If the core is already prov to someone else, take it away.  (last write
         * wins, some other layer or new func can handle permissions). */
        if (spc->prov_proc) {