diff options
author | Miaohe Lin <linmiaohe@huawei.com> | 2022-04-28 23:16:14 -0700 |
---|---|---|
committer | akpm <akpm@linux-foundation.org> | 2022-04-28 23:16:14 -0700 |
commit | 3c9fe8b8f5e3e30bfa81eeeff4bc34c0fb67b739 (patch) | |
tree | f6a07150f94cb5db7b0128f0825d10c508459c16 | |
parent | f433195679a9639a3af5be03bcb9c3d933e3b261 (diff) |
mm/mremap: avoid unneeded do_munmap call
When old_len == new_len, do_munmap will return -EINVAL due to len == 0.
This errno will be simply ignored because of old_len != new_len check. So
it is unnecessary to call do_munmap when old_len == new_len because
nothing is actually done.
Link: https://lkml.kernel.org/r/20220401081023.37080-1-linmiaohe@huawei.com
Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>
Acked-by: David Hildenbrand <david@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-rw-r--r-- | mm/mremap.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/mm/mremap.c b/mm/mremap.c index f2a53d53f1b9..98f50e633009 100644 --- a/mm/mremap.c +++ b/mm/mremap.c @@ -820,9 +820,9 @@ static unsigned long mremap_to(unsigned long addr, unsigned long old_len, goto out; } - if (old_len >= new_len) { + if (old_len > new_len) { ret = do_munmap(mm, addr+new_len, old_len - new_len, uf_unmap); - if (ret && old_len != new_len) + if (ret) goto out; old_len = new_len; } |