summaryrefslogtreecommitdiff
path: root/mm/mprotect.c
diff options
context:
space:
mode:
authorLiu Song <liu.song11@zte.com.cn>2021-11-05 13:39:03 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2021-11-06 13:30:36 -0700
commit6af5fa0dc7836ea44bb0659f002b0cd0a2970554 (patch)
tree095dde3f6af3437cf73fa3beb7c7964b43ca4b26 /mm/mprotect.c
parente26e0cc30b48cad5f2704f6a22fa5cac9fdaaece (diff)
downloadlwn-6af5fa0dc7836ea44bb0659f002b0cd0a2970554.tar.gz
lwn-6af5fa0dc7836ea44bb0659f002b0cd0a2970554.zip
mm/mprotect.c: avoid repeated assignment in do_mprotect_pkey()
After adjustment, the repeated assignment of "prev" is avoided, and the readability of the code is improved. Link: https://lkml.kernel.org/r/20211012152444.4127-1-fishland@aliyun.com Reviewed-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Liu Song <liu.song11@zte.com.cn> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/mprotect.c')
-rw-r--r--mm/mprotect.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/mm/mprotect.c b/mm/mprotect.c
index 883e2cc85cad..e552f5e0ccbd 100644
--- a/mm/mprotect.c
+++ b/mm/mprotect.c
@@ -563,7 +563,7 @@ static int do_mprotect_pkey(unsigned long start, size_t len,
error = -ENOMEM;
if (!vma)
goto out;
- prev = vma->vm_prev;
+
if (unlikely(grows & PROT_GROWSDOWN)) {
if (vma->vm_start >= end)
goto out;
@@ -581,8 +581,11 @@ static int do_mprotect_pkey(unsigned long start, size_t len,
goto out;
}
}
+
if (start > vma->vm_start)
prev = vma;
+ else
+ prev = vma->vm_prev;
for (nstart = start ; ; ) {
unsigned long mask_off_old_flags;