mm: document mmu_notifier_invalidate_range_start_nonblock()
authorJann Horn <jannh@google.com>
Mon, 18 Sep 2023 20:18:32 +0000 (22:18 +0200)
committerAndrew Morton <akpm@linux-foundation.org>
Fri, 6 Oct 2023 21:44:10 +0000 (14:44 -0700)
Document what mmu_notifier_invalidate_range_start_nonblock() is for.  Also
add a __must_check annotation to signal that callers must bail out if a
notifier vetoes the operation.

Link: https://lkml.kernel.org/r/20230918201832.265108-1-jannh@google.com
Signed-off-by: Jann Horn <jannh@google.com>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Reviewed-by: Alistair Popple <apopple@nvidia.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
include/linux/mmu_notifier.h

index 6e3c857606f19c3f9e32c1664131ed872560cd7e..f349e08a9dfe1a51e3b901ec9eb78f889eed52f9 100644 (file)
@@ -459,7 +459,14 @@ mmu_notifier_invalidate_range_start(struct mmu_notifier_range *range)
        lock_map_release(&__mmu_notifier_invalidate_range_start_map);
 }
 
-static inline int
+/*
+ * This version of mmu_notifier_invalidate_range_start() avoids blocking, but it
+ * can return an error if a notifier can't proceed without blocking, in which
+ * case you're not allowed to modify PTEs in the specified range.
+ *
+ * This is mainly intended for OOM handling.
+ */
+static inline int __must_check
 mmu_notifier_invalidate_range_start_nonblock(struct mmu_notifier_range *range)
 {
        int ret = 0;