summaryrefslogtreecommitdiff
path: root/kern
diff options
context:
space:
mode:
Diffstat (limited to 'kern')
-rw-r--r--kern/kmem.c14
-rw-r--r--kern/percpu.c16
2 files changed, 12 insertions, 18 deletions
diff --git a/kern/kmem.c b/kern/kmem.c
index 107e0282..7d8e9585 100644
--- a/kern/kmem.c
+++ b/kern/kmem.c
@@ -261,7 +261,7 @@ kmem_slab_create(struct kmem_cache *cache, size_t color)
void *slab_buf;
if (cache->slab_alloc_fn == NULL)
- slab_buf = (void *)vm_kmem_alloc(cache->slab_size);
+ slab_buf = vm_kmem_alloc(cache->slab_size);
else
slab_buf = (void *)cache->slab_alloc_fn(cache->slab_size);
@@ -273,7 +273,7 @@ kmem_slab_create(struct kmem_cache *cache, size_t color)
if (slab == NULL) {
if (cache->slab_free_fn == NULL)
- vm_kmem_free((unsigned long)slab_buf, cache->slab_size);
+ vm_kmem_free(slab_buf, cache->slab_size);
else
cache->slab_free_fn((unsigned long)slab_buf, cache->slab_size);
@@ -319,7 +319,7 @@ kmem_slab_vmref(struct kmem_slab *slab, size_t size)
end = va + size;
do {
- page = vm_kmem_lookup_page(va);
+ page = vm_kmem_lookup_page((void *)va);
assert(page != NULL);
assert(page->slab_priv == NULL);
page->slab_priv = slab;
@@ -717,7 +717,7 @@ kmem_cache_free_to_slab(struct kmem_cache *cache, void *buf)
} else {
struct vm_page *page;
- page = vm_kmem_lookup_page((unsigned long)buf);
+ page = vm_kmem_lookup_page(buf);
assert(page != NULL);
slab = page->slab_priv;
assert(slab != NULL);
@@ -862,7 +862,7 @@ kmem_cache_free_verify(struct kmem_cache *cache, void *buf)
unsigned char *redzone_byte;
unsigned long slabend;
- page = vm_kmem_lookup_page((unsigned long)buf);
+ page = vm_kmem_lookup_page(buf);
if (page == NULL)
kmem_cache_error(cache, buf, KMEM_ERR_INVALID, NULL);
@@ -1124,7 +1124,7 @@ kmem_alloc(size_t size)
if ((buf != NULL) && (cache->flags & KMEM_CF_VERIFY))
kmem_alloc_verify(cache, buf, size);
} else {
- buf = (void *)vm_kmem_alloc(size);
+ buf = vm_kmem_alloc(size);
}
return buf;
@@ -1182,7 +1182,7 @@ kmem_free(void *ptr, size_t size)
kmem_cache_free(cache, ptr);
} else {
- vm_kmem_free((unsigned long)ptr, size);
+ vm_kmem_free(ptr, size);
}
}
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);
}