From 102a0743326a03cd1a1202ceda21e175b7d3575c Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Tue, 20 Feb 2024 01:20:52 +0000 Subject: [PATCH] add new system file --- kernel/mm/vmalloc.c | 17 +++++++++-------- 1 files changed, 9 insertions(+), 8 deletions(-) diff --git a/kernel/mm/vmalloc.c b/kernel/mm/vmalloc.c index 3f6567f..fa1ea48 100644 --- a/kernel/mm/vmalloc.c +++ b/kernel/mm/vmalloc.c @@ -1549,7 +1549,7 @@ struct vmap_block *vb; struct vmap_area *va; unsigned long vb_idx; - int node, err, cpu; + int node, err; void *vaddr; node = numa_node_id(); @@ -1586,12 +1586,11 @@ return ERR_PTR(err); } - cpu = get_cpu_light(); - vbq = this_cpu_ptr(&vmap_block_queue); + vbq = &get_cpu_var(vmap_block_queue); spin_lock(&vbq->lock); list_add_tail_rcu(&vb->free_list, &vbq->free); spin_unlock(&vbq->lock); - put_cpu_light(); + put_cpu_var(vmap_block_queue); return vaddr; } @@ -1656,7 +1655,6 @@ struct vmap_block *vb; void *vaddr = NULL; unsigned int order; - int cpu; BUG_ON(offset_in_page(size)); BUG_ON(size > PAGE_SIZE*VMAP_MAX_ALLOC); @@ -1671,8 +1669,7 @@ order = get_order(size); rcu_read_lock(); - cpu = get_cpu_light(); - vbq = this_cpu_ptr(&vmap_block_queue); + vbq = &get_cpu_var(vmap_block_queue); list_for_each_entry_rcu(vb, &vbq->free, free_list) { unsigned long pages_off; @@ -1695,7 +1692,7 @@ break; } - put_cpu_light(); + put_cpu_var(vmap_block_queue); rcu_read_unlock(); /* Allocate new block if nothing was found */ @@ -2466,6 +2463,10 @@ free_vm_area(area); return NULL; } + + flush_cache_vmap((unsigned long)area->addr, + (unsigned long)area->addr + count * PAGE_SIZE); + return area->addr; } EXPORT_SYMBOL_GPL(vmap_pfn); -- Gitblit v1.6.2