]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
align vma->lock
authorSuren Baghdasaryan <surenb@google.com>
Tue, 13 Dec 2022 15:14:38 +0000 (07:14 -0800)
committerLiam R. Howlett <Liam.Howlett@oracle.com>
Wed, 4 Jan 2023 20:59:27 +0000 (15:59 -0500)
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
mm/memory.c

index 59d1ef04be0d092e4993fb1586193f9af81b116f..1f77d337677e5a8c0fbaa453dbfd9fb0511a10b3 100644 (file)
@@ -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);
 }
 
 /*