From: Suren Baghdasaryan Date: Tue, 13 Dec 2022 15:14:38 +0000 (-0800) Subject: align vma->lock X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=a3dd55ef5c1746398d85142725c6b6355973ce6a;p=users%2Fjedix%2Flinux-maple.git align vma->lock Signed-off-by: Suren Baghdasaryan --- diff --git a/mm/memory.c b/mm/memory.c index 59d1ef04be0d0..1f77d337677e5 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); } /*