|
@@ -30,6 +30,7 @@
|
|
|
#include <linux/gfp.h>
|
|
|
#include <linux/sched.h>
|
|
|
#include <linux/sched/rt.h>
|
|
|
+#include <linux/slab.h>
|
|
|
#include "cpupri.h"
|
|
|
|
|
|
/* Convert between a 140 based task->prio, and our 102 based cpupri */
|
|
@@ -218,8 +219,13 @@ int cpupri_init(struct cpupri *cp)
|
|
|
goto cleanup;
|
|
|
}
|
|
|
|
|
|
+ cp->cpu_to_pri = kcalloc(nr_cpu_ids, sizeof(int), GFP_KERNEL);
|
|
|
+ if (!cp->cpu_to_pri)
|
|
|
+ goto cleanup;
|
|
|
+
|
|
|
for_each_possible_cpu(i)
|
|
|
cp->cpu_to_pri[i] = CPUPRI_INVALID;
|
|
|
+
|
|
|
return 0;
|
|
|
|
|
|
cleanup:
|
|
@@ -236,6 +242,7 @@ void cpupri_cleanup(struct cpupri *cp)
|
|
|
{
|
|
|
int i;
|
|
|
|
|
|
+ kfree(cp->cpu_to_pri);
|
|
|
for (i = 0; i < CPUPRI_NR_PRIORITIES; i++)
|
|
|
free_cpumask_var(cp->pri_to_cpu[i].mask);
|
|
|
}
|