mmap locking API: add MMAP_LOCK_INITIALIZER
authorMichel Lespinasse <walken@google.com>
Tue, 9 Jun 2020 04:33:40 +0000 (21:33 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 9 Jun 2020 16:39:14 +0000 (09:39 -0700)
Define a new initializer for the mmap locking api.  Initially this just
evaluates to __RWSEM_INITIALIZER as the API is defined as wrappers around
rwsem.

Signed-off-by: Michel Lespinasse <walken@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Reviewed-by: Laurent Dufour <ldufour@linux.ibm.com>
Reviewed-by: Vlastimil Babka <vbabka@suse.cz>
Reviewed-by: Daniel Jordan <daniel.m.jordan@oracle.com>
Cc: Davidlohr Bueso <dbueso@suse.de>
Cc: David Rientjes <rientjes@google.com>
Cc: Hugh Dickins <hughd@google.com>
Cc: Jason Gunthorpe <jgg@ziepe.ca>
Cc: Jerome Glisse <jglisse@redhat.com>
Cc: John Hubbard <jhubbard@nvidia.com>
Cc: Liam Howlett <Liam.Howlett@oracle.com>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Ying Han <yinghan@google.com>
Link: http://lkml.kernel.org/r/20200520052908.204642-9-walken@google.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
arch/x86/kernel/tboot.c
drivers/firmware/efi/efi.c
include/linux/mmap_lock.h
mm/init-mm.c

index cbc0c82e55b711fe84c33e5cbb40b6ddda7b0937..992fb1415c0f1fcd7b5ec0b2346073dc41c1f332 100644 (file)
@@ -93,7 +93,7 @@ static struct mm_struct tboot_mm = {
        .pgd            = swapper_pg_dir,
        .mm_users       = ATOMIC_INIT(2),
        .mm_count       = ATOMIC_INIT(1),
-       .mmap_sem       = __RWSEM_INITIALIZER(init_mm.mmap_sem),
+       MMAP_LOCK_INITIALIZER(init_mm)
        .page_table_lock =  __SPIN_LOCK_UNLOCKED(init_mm.page_table_lock),
        .mmlist         = LIST_HEAD_INIT(init_mm.mmlist),
 };
index 9357d6b6e87cd7453a34bac465a518bc25db7fa5..7f1657b6c30df3722ba92bad4922ace068c122bf 100644 (file)
@@ -54,7 +54,7 @@ struct mm_struct efi_mm = {
        .mm_rb                  = RB_ROOT,
        .mm_users               = ATOMIC_INIT(2),
        .mm_count               = ATOMIC_INIT(1),
-       .mmap_sem               = __RWSEM_INITIALIZER(efi_mm.mmap_sem),
+       MMAP_LOCK_INITIALIZER(efi_mm)
        .page_table_lock        = __SPIN_LOCK_UNLOCKED(efi_mm.page_table_lock),
        .mmlist                 = LIST_HEAD_INIT(efi_mm.mmlist),
        .cpu_bitmap             = { [BITS_TO_LONGS(NR_CPUS)] = 0},
index d1826ce42f00fe89b6e56c741b4b4ed69fef96d9..acac1bf5ecd20260057c664df989a627e4185d8d 100644 (file)
@@ -1,6 +1,9 @@
 #ifndef _LINUX_MMAP_LOCK_H
 #define _LINUX_MMAP_LOCK_H
 
+#define MMAP_LOCK_INITIALIZER(name) \
+       .mmap_sem = __RWSEM_INITIALIZER((name).mmap_sem),
+
 static inline void mmap_init_lock(struct mm_struct *mm)
 {
        init_rwsem(&mm->mmap_sem);
index b29dd73be5aa7b679424cad92e2038910aa1080d..3a613c85f9ede21e197ec7cf00d249b4085d4df4 100644 (file)
@@ -31,7 +31,7 @@ struct mm_struct init_mm = {
        .pgd            = swapper_pg_dir,
        .mm_users       = ATOMIC_INIT(2),
        .mm_count       = ATOMIC_INIT(1),
-       .mmap_sem       = __RWSEM_INITIALIZER(init_mm.mmap_sem),
+       MMAP_LOCK_INITIALIZER(init_mm)
        .page_table_lock =  __SPIN_LOCK_UNLOCKED(init_mm.page_table_lock),
        .arg_lock       =  __SPIN_LOCK_UNLOCKED(init_mm.arg_lock),
        .mmlist         = LIST_HEAD_INIT(init_mm.mmlist),