From patchwork Thu Oct 27 15:10:04 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: 79713 Delivered-To: patch@linaro.org Received: by 10.80.142.83 with SMTP id 19csp704545edx; Thu, 27 Oct 2016 08:22:10 -0700 (PDT) X-Received: by 10.129.94.86 with SMTP id s83mr6923629ywb.219.1477581730906; Thu, 27 Oct 2016 08:22:10 -0700 (PDT) Return-Path: Received: from lists.gnu.org (lists.gnu.org. [2001:4830:134:3::11]) by mx.google.com with ESMTPS id b188si2895500ywf.121.2016.10.27.08.22.10 for (version=TLS1 cipher=AES128-SHA bits=128/128); Thu, 27 Oct 2016 08:22:10 -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]:42256 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bzmVO-0004Xv-0a for patch@linaro.org; Thu, 27 Oct 2016 11:22:10 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42513) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bzmKk-0004bq-Gu for qemu-devel@nongnu.org; Thu, 27 Oct 2016 11:11:14 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bzmKg-0007dc-J9 for qemu-devel@nongnu.org; Thu, 27 Oct 2016 11:11:10 -0400 Received: from mail-wm0-x22b.google.com ([2a00:1450:400c:c09::22b]:38541) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1bzmKg-0007cz-CM for qemu-devel@nongnu.org; Thu, 27 Oct 2016 11:11:06 -0400 Received: by mail-wm0-x22b.google.com with SMTP id n67so50395218wme.1 for ; Thu, 27 Oct 2016 08:11:06 -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=nIHubiADzy0AJodxOzaF6gQaXc8UFkIwJ8WGUmo6UoM=; b=RWbzrbzrlcLp9R/sbSeGwOlcrMOsj/TxGuWTqTZ724lzlW+RqhpIxxmX9PkCcbmJvA B/9QtXDR/zgV7yihWRyzgcRy9+QgJBavdhTBL1osvBzmmoLAVGQ5szR/oO7GV4RN0AuH L9whBeByrnOAF6Rr1xtaDs7OcZy0ZoUmNSvWE= 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=nIHubiADzy0AJodxOzaF6gQaXc8UFkIwJ8WGUmo6UoM=; b=jjM5MTCxW67Tdt7K7BQUXiItIW+6Vdb/fyFUQ4aKwvwGQnRx3CptdRI0kICyDn3oaJ WhaQiXKesSZc/YebOPgWBInTKgKX2ywm1OAnghPRY1CW6Wugxp2bAvWWy8/OWTK7EbRQ 1/XNLugjKFh1YM87JPweOWmFApWXI1ijWV7C6AnioFtTraLhR42G7oUIOjAUBnIkmbFe CUwXl2pwZ1DO89tuEmZsQMBSuqNVc+I4x1jCEIY+o887EaA8kywc502/dK2CtYi77W4R zKuv1VkQg4qU8v8a/6ocVdgvTlupKHARosCxXNM0Hrv17GUUg8FsjOTvOyXuAtacMk58 Yp0A== X-Gm-Message-State: ABUngvelGWr4DoqU61d5uuJVVauF8fzBhCCetb2UraEP2AeIATkMaM9YUz+rBlXGffyagidp X-Received: by 10.28.8.149 with SMTP id 143mr13244624wmi.47.1477581065353; Thu, 27 Oct 2016 08:11:05 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id r62sm3783090wmd.4.2016.10.27.08.11.01 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 27 Oct 2016 08:11:04 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 97E7F3E02CE; Thu, 27 Oct 2016 16:10:59 +0100 (BST) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: pbonzini@redhat.com Date: Thu, 27 Oct 2016 16:10:04 +0100 Message-Id: <20161027151030.20863-8-alex.bennee@linaro.org> X-Mailer: git-send-email 2.10.1 In-Reply-To: <20161027151030.20863-1-alex.bennee@linaro.org> References: <20161027151030.20863-1-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::22b Subject: [Qemu-devel] [PATCH v5 07/33] 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: mttcg@listserver.greensocs.com, peter.maydell@linaro.org, claudio.fontana@huawei.com, nikunj@linux.vnet.ibm.com, jan.kiszka@siemens.com, Riku Voipio , mark.burton@greensocs.com, a.rigo@virtualopensystems.com, qemu-devel@nongnu.org, cota@braap.org, serge.fdrv@gmail.com, bobby.prani@gmail.com, rth@twiddle.net, =?UTF-8?q?Alex=20Benn=C3=A9e?= , fred.konrad@greensocs.com 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 Reviewed-by: Richard Henderson --- v4 - split from assert patch --- linux-user/elfload.c | 4 ++++ 1 file changed, 4 insertions(+) -- 2.10.1 diff --git a/linux-user/elfload.c b/linux-user/elfload.c index 816272a..547053c 100644 --- a/linux-user/elfload.c +++ b/linux-user/elfload.c @@ -1842,6 +1842,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; @@ -2002,6 +2004,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;