From a3dd55ef5c1746398d85142725c6b6355973ce6a Mon Sep 17 00:00:00 2001 From: Suren Baghdasaryan Date: Tue, 13 Dec 2022 07:14:38 -0800 Subject: [PATCH] align vma->lock Signed-off-by: Suren Baghdasaryan --- mm/memory.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/mm/memory.c b/mm/memory.c index 59d1ef04be0d..1f77d337677e 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -5249,16 +5249,21 @@ EXPORT_SYMBOL_GPL(handle_mm_fault); #ifdef CONFIG_PER_VMA_LOCK +static struct kmem_cache *vma_lock_cachep; + void vma_lock_init(struct vm_area_struct *vma) { - vma->lock = kmalloc(sizeof(struct rw_semaphore), GFP_KERNEL); + if (!vma_lock_cachep) + vma_lock_cachep = KMEM_CACHE(rw_semaphore, + SLAB_PANIC|SLAB_ACCOUNT|SLAB_HWCACHE_ALIGN); + vma->lock = kmem_cache_alloc(vma_lock_cachep, GFP_KERNEL); init_rwsem(vma->lock); vma->vm_lock_seq = -1; } void vma_lock_free(struct vm_area_struct *vma) { - kfree(vma->lock); + kmem_cache_free(vma_lock_cachep, vma->lock); } /* -- 2.50.1