[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20180823051229.211856-1-namit@vmware.com>
Date: Wed, 22 Aug 2018 22:12:29 -0700
From: Nadav Amit <namit@...are.com>
To: Michal Hocko <mhocko@...e.com>
CC: <linux-kernel@...r.kernel.org>, <linux-mm@...ck.org>,
Nadav Amit <namit@...are.com>,
Andrew Morton <akpm@...ux-foundation.org>,
<stable@...r.kernel.org>
Subject: [PATCH] mm: respect arch_dup_mmap() return value
Commit d70f2a14b72a4 ("include/linux/sched/mm.h: uninline
mmdrop_async(), etc") ignored the return value of arch_dup_mmap(). As a
result, on x86, a failure to duplicate the LDT (e.g., due to memory
allocation error), would leave the duplicated memory mapping in an
inconsistent state.
Fix by regarding the return value, as it was before the change.
Fixes: d70f2a14b72a4 ("include/linux/sched/mm.h: uninline mmdrop_async(), etc")
Cc: Andrew Morton <akpm@...ux-foundation.org>
Cc: stable@...r.kernel.org
Signed-off-by: Nadav Amit <namit@...are.com>
---
kernel/fork.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/kernel/fork.c b/kernel/fork.c
index 1b27babc4c78..4527d1d331de 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -549,8 +549,7 @@ static __latent_entropy int dup_mmap(struct mm_struct *mm,
goto out;
}
/* a new mm has just been created */
- arch_dup_mmap(oldmm, mm);
- retval = 0;
+ retval = arch_dup_mmap(oldmm, mm);
out:
up_write(&mm->mmap_sem);
flush_tlb_mm(oldmm);
--
2.17.1
Powered by blists - more mailing lists