diff options
Diffstat (limited to 'kern')
-rw-r--r-- | kern/kmem.c | 14 | ||||
-rw-r--r-- | kern/percpu.c | 16 |
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); } |