From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1763224AbcINTeB (ORCPT ); Wed, 14 Sep 2016 15:34:01 -0400 Received: from terminus.zytor.com ([198.137.202.10]:49200 "EHLO terminus.zytor.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1760068AbcINTd7 (ORCPT ); Wed, 14 Sep 2016 15:33:59 -0400 Date: Wed, 14 Sep 2016 12:33:51 -0700 From: tip-bot for Dmitry Safonov Message-ID: Cc: linux-kernel@vger.kernel.org, tglx@linutronix.de, hpa@zytor.com, mingo@kernel.org, dsafonov@virtuozzo.com, luto@kernel.org Reply-To: linux-kernel@vger.kernel.org, tglx@linutronix.de, hpa@zytor.com, dsafonov@virtuozzo.com, mingo@kernel.org, luto@kernel.org In-Reply-To: <20160905133308.28234-2-dsafonov@virtuozzo.com> References: <20160905133308.28234-2-dsafonov@virtuozzo.com> To: linux-tip-commits@vger.kernel.org Subject: [tip:x86/vdso] x86/vdso: Unmap vdso blob on vvar mapping failure Git-Commit-ID: e38447ee1f487eaccdbef4a61dc064f4ae94e2fa X-Mailer: tip-git-log-daemon Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8 Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Commit-ID: e38447ee1f487eaccdbef4a61dc064f4ae94e2fa Gitweb: http://git.kernel.org/tip/e38447ee1f487eaccdbef4a61dc064f4ae94e2fa Author: Dmitry Safonov AuthorDate: Mon, 5 Sep 2016 16:33:03 +0300 Committer: Thomas Gleixner CommitDate: Wed, 14 Sep 2016 21:28:08 +0200 x86/vdso: Unmap vdso blob on vvar mapping failure If remapping of vDSO blob failed on vvar mapping, we need to unmap previously mapped vDSO blob. Signed-off-by: Dmitry Safonov Acked-by: Andy Lutomirski Cc: 0x7f454c46@gmail.com Cc: oleg@redhat.com Cc: linux-mm@kvack.org Cc: gorcunov@openvz.org Cc: xemul@virtuozzo.com Link: http://lkml.kernel.org/r/20160905133308.28234-2-dsafonov@virtuozzo.com Signed-off-by: Thomas Gleixner --- arch/x86/entry/vdso/vma.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/arch/x86/entry/vdso/vma.c b/arch/x86/entry/vdso/vma.c index f840766..3bab6ba 100644 --- a/arch/x86/entry/vdso/vma.c +++ b/arch/x86/entry/vdso/vma.c @@ -238,12 +238,14 @@ static int map_vdso(const struct vdso_image *image, bool calculate_addr) if (IS_ERR(vma)) { ret = PTR_ERR(vma); - goto up_fail; + do_munmap(mm, text_start, image->size); } up_fail: - if (ret) + if (ret) { current->mm->context.vdso = NULL; + current->mm->context.vdso_image = NULL; + } up_write(&mm->mmap_sem); return ret;