From patchwork Thu Aug 11 15:24:03 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 73766 Delivered-To: patch@linaro.org Received: by 10.140.29.52 with SMTP id a49csp168146qga; Thu, 11 Aug 2016 08:31:30 -0700 (PDT) X-Received: by 10.55.108.2 with SMTP id h2mr11609170qkc.173.1470929490161; Thu, 11 Aug 2016 08:31:30 -0700 (PDT) Return-Path: Received: from lists.gnu.org (lists.gnu.org. [2001:4830:134:3::11]) by mx.google.com with ESMTPS id d14si1852107qtb.111.2016.08.11.08.31.30 for (version=TLS1 cipher=AES128-SHA bits=128/128); Thu, 11 Aug 2016 08:31:30 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) client-ip=2001:4830:134:3::11; Authentication-Results: mx.google.com; dkim=fail header.i=@linaro.org; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom=qemu-devel-bounces+patch=linaro.org@nongnu.org; dmarc=fail (p=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:49173 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bXrxB-0001bz-HC for patch@linaro.org; Thu, 11 Aug 2016 11:31:29 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57405) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bXrqV-0003eu-VT for qemu-devel@nongnu.org; Thu, 11 Aug 2016 11:24:36 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bXrqS-0006aB-0B for qemu-devel@nongnu.org; Thu, 11 Aug 2016 11:24:35 -0400 Received: from mail-wm0-x22d.google.com ([2a00:1450:400c:c09::22d]:38726) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bXrqR-0006a0-PD for qemu-devel@nongnu.org; Thu, 11 Aug 2016 11:24:31 -0400 Received: by mail-wm0-x22d.google.com with SMTP id o80so3114387wme.1 for ; Thu, 11 Aug 2016 08:24:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=iSOyhV9PAUi/L7tW8K4tnGswm1dPienjX0TriftCQXA=; b=BDa3bhiVE9ebSvjEFEa8lGpsy1Zs/8/81eedsYgjby9SvY19NiFKCAJ3a83O12XEVQ xgSGxoIP7oWP2x0BVo3PLNidI3yap5SDM2c6djeoNob0PY3yn80omhpmhF+ctZ3rwqx2 jnpcHG1XYv2S+2RIZ9o7g7xZj/ZCoumXq927g= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=iSOyhV9PAUi/L7tW8K4tnGswm1dPienjX0TriftCQXA=; b=Q/mzWxrYuJNNDp4YCaqwq6q+Z1z2iVQmsGBxigHDPofxBH3nS1Ek4RS/Ar/eijEagu xhDbyDg8OWfcvdXkIlWzkyitgtiPy8J7JhxrT2a7GcXAzRGjbJvtQtP5MuDH7T31IvXq ezMu4hzbTOPOnWuevcQXb3kNIkkjbNfNDHEp+towzKhAuyrNqdJWvu0JPZp/e/7gS1F1 qYE4K0Z+UVgqZwltXUbf7Kzj0fXiQLliYN0lOpkleirj86hvjYDZIC+kPQq80Y8+kbav Up0JNp4NpGfBSzyCUVy7ThO/HTziVPwUU4LqV8NXBv2Z0qBkI6WdLxVc9WxUCDozWH3X Yczg== X-Gm-Message-State: AEkooutSAvgLIjBz1ofBrA/zDH9RmXHoDpjGmF30Qzy02hIzOnhHPX8uN88VEhA1+CylqARs X-Received: by 10.28.125.80 with SMTP id y77mr9322713wmc.25.1470929071079; Thu, 11 Aug 2016 08:24:31 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id a194sm547216wmd.24.2016.08.11.08.24.23 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 11 Aug 2016 08:24:24 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 5C1113E0265; Thu, 11 Aug 2016 16:24:30 +0100 (BST) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: mttcg@listserver.greensocs.com, qemu-devel@nongnu.org, fred.konrad@greensocs.com, a.rigo@virtualopensystems.com, cota@braap.org, bobby.prani@gmail.com, nikunj@linux.vnet.ibm.com Date: Thu, 11 Aug 2016 16:24:03 +0100 Message-Id: <1470929064-4092-8-git-send-email-alex.bennee@linaro.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1470929064-4092-1-git-send-email-alex.bennee@linaro.org> References: <1470929064-4092-1-git-send-email-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2a00:1450:400c:c09::22d Subject: [Qemu-devel] [RFC v4 07/28] linux-user/elfload: ensure mmap_lock() held while setting up X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org, claudio.fontana@huawei.com, jan.kiszka@siemens.com, Riku Voipio , mark.burton@greensocs.com, serge.fdrv@gmail.com, pbonzini@redhat.com, =?UTF-8?q?Alex=20Benn=C3=A9e?= , rth@twiddle.net Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Future patches will enforce the holding of mmap_lock() when we are manipulating internal memory structures. Technically it doesn't matter in the case of elfload as we haven't started executing yet. However it is easier to grab the lock when required than special case the translate-all API. Signed-off-by: Alex Bennée --- v4 - split from assert patch --- linux-user/elfload.c | 4 ++++ 1 file changed, 4 insertions(+) -- 2.7.4 diff --git a/linux-user/elfload.c b/linux-user/elfload.c index f807baf..4b125b9 100644 --- a/linux-user/elfload.c +++ b/linux-user/elfload.c @@ -1838,6 +1838,8 @@ static void load_elf_image(const char *image_name, int image_fd, info->pt_dynamic_addr = 0; #endif + mmap_lock(); + /* Find the maximum size of the image and allocate an appropriate amount of memory to handle that. */ loaddr = -1, hiaddr = 0; @@ -1998,6 +2000,8 @@ static void load_elf_image(const char *image_name, int image_fd, load_symbols(ehdr, image_fd, load_bias); } + mmap_unlock(); + close(image_fd); return;