summaryrefslogtreecommitdiff
path: root/kern/percpu.c
diff options
context:
space:
mode:
authorRichard Braun <rbraun@sceen.net>2014-11-17 21:44:31 +0100
committerRichard Braun <rbraun@sceen.net>2014-11-17 21:48:19 +0100
commit49a3f5db0b9d829d89c7f7a2e994ea3f5dbdec3c (patch)
tree983096d6b86dc5a46894d24d40af80bf2599c963 /kern/percpu.c
parent43533e334e6ec118651c2c689ddb75adb73d922b (diff)
vm/vm_kmem: minor interface updates
Make functions accept and return pointers instead of integers. Most users of the kernel allocator directly use the returned addresses. Pointers make that more practical.
Diffstat (limited to 'kern/percpu.c')
-rw-r--r--kern/percpu.c16
1 files changed, 5 insertions, 11 deletions
diff --git a/kern/percpu.c b/kern/percpu.c
index a7dd73ef..2da86e2e 100644
--- a/kern/percpu.c
+++ b/kern/percpu.c
@@ -45,8 +45,6 @@ percpu_bootstrap(void)
void __init
percpu_setup(void)
{
- unsigned long va;
-
printk("percpu: max_cpus: %u, section size: %zuk\n",
MAX_CPUS, percpu_size >> 10);
assert(vm_page_aligned(percpu_size));
@@ -54,20 +52,17 @@ percpu_setup(void)
if (percpu_size == 0)
return;
- va = vm_kmem_alloc(percpu_size);
+ percpu_area_content = vm_kmem_alloc(percpu_size);
- if (va == 0)
+ if (percpu_area_content == NULL)
panic("percpu: unable to allocate memory for percpu area content");
- percpu_area_content = (void *)va;
memcpy(percpu_area_content, &_percpu, percpu_size);
}
int __init
percpu_add(unsigned int cpu)
{
- unsigned long va;
-
if (cpu >= ARRAY_SIZE(percpu_areas)) {
if (!percpu_skip_warning) {
printk("percpu: ignoring processor beyond id %zu\n",
@@ -86,14 +81,13 @@ percpu_add(unsigned int cpu)
if (percpu_size == 0)
goto out;
- va = vm_kmem_alloc(percpu_size);
+ percpu_areas[cpu] = vm_kmem_alloc(percpu_size);
- if (va == 0) {
+ if (percpu_areas[cpu] == NULL) {
printk("percpu: error: unable to allocate percpu area\n");
return ERROR_NOMEM;
}
- percpu_areas[cpu] = (void *)va;
memcpy(percpu_area(cpu), percpu_area_content, percpu_size);
out:
@@ -103,5 +97,5 @@ out:
void
percpu_cleanup(void)
{
- vm_kmem_free((unsigned long)percpu_area_content, percpu_size);
+ vm_kmem_free(percpu_area_content, percpu_size);
}