From nobody Mon Feb 9 20:34:23 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1500236994799977.1906920391554; Sun, 16 Jul 2017 13:29:54 -0700 (PDT) Received: from localhost ([::1]:46814 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dWqAr-0005Vi-Jk for importer@patchew.org; Sun, 16 Jul 2017 16:29:53 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:46485) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dWpmj-0001GV-1T for qemu-devel@nongnu.org; Sun, 16 Jul 2017 16:04:59 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dWpma-0008Ru-JM for qemu-devel@nongnu.org; Sun, 16 Jul 2017 16:04:57 -0400 Received: from out1-smtp.messagingengine.com ([66.111.4.25]:55717) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dWpma-0008RE-Bf for qemu-devel@nongnu.org; Sun, 16 Jul 2017 16:04:48 -0400 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id CC00520A71; Sun, 16 Jul 2017 16:04:47 -0400 (EDT) Received: from frontend1 ([10.202.2.160]) by compute4.internal (MEProxy); Sun, 16 Jul 2017 16:04:47 -0400 Received: from localhost (flamenco.cs.columbia.edu [128.59.20.216]) by mail.messagingengine.com (Postfix) with ESMTPA id 877C87E17E; Sun, 16 Jul 2017 16:04:47 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=braap.org; h=cc :date:from:in-reply-to:message-id:references:subject:to :x-me-sender:x-me-sender:x-sasl-enc:x-sasl-enc; s=mesmtp; bh=T4e J7gZqddN9SDrG7JMO9e2XsHamYDl79suft7gkhUs=; b=wrSH5prY8eNDYkYoL8M 7erK53HQbEaLWHvQvd+mvwsZh1VK4gA+D4q5R2ILgG4G0TD1povswS+K4h0DNWph zZtBcQCGAZLACpRFWZXnTygfuUD8lTmbA2K9PLsI4SjoHmixxsGSXjlntBao97eJ bLqyd40+hE644AFH8bjUV/wI= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:date:from:in-reply-to:message-id :references:subject:to:x-me-sender:x-me-sender:x-sasl-enc :x-sasl-enc; s=fm1; bh=T4eJ7gZqddN9SDrG7JMO9e2XsHamYDl79suft7gkh Us=; b=lq1LQPejSGhJryLJhtG0T8ZkaLTUYienGpK35zGpRVdEZqZ6w6tztu6YV 7CN+X7IXAQW8AnRN2z+pnzr7gArjd86xbyXSfIcMYXgXvTK6oJpzy740cniCjFZM i5w1c6PINZiXApOcbaNJxl0sjz60NuWOKyJbNhOckatKi9j62Md8TTeRvxhZBAJr lY3gZg/eg9YupWR7sSaqyGaToePYR5mdmn0rLlQtT2zuz60ZKl8n/7gil1LnFgV3 4kZlDNaXjgF7UWRGjX1o+rysaUvL3QhVG4AEz/amplEahbz4NzlYSfADNdlW1DUc /0VXkWwXQ4oHEMIP/kzdTYJk5DvAA== X-ME-Sender: X-Sasl-enc: n0VYs9lhBMgnPOBKQpza6ZqMpqfm8HIPwerrj4wXIz0T 1500235487 From: "Emilio G. Cota" To: qemu-devel@nongnu.org Date: Sun, 16 Jul 2017 16:04:24 -0400 Message-Id: <1500235468-15341-42-git-send-email-cota@braap.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1500235468-15341-1-git-send-email-cota@braap.org> References: <1500235468-15341-1-git-send-email-cota@braap.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 66.111.4.25 Subject: [Qemu-devel] [PATCH v2 41/45] translate-all: use qemu_protect_rwx/none helpers 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: Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Emilio G. Cota --- accel/tcg/translate-all.c | 49 ++++++-------------------------------------= ---- 1 file changed, 6 insertions(+), 43 deletions(-) diff --git a/accel/tcg/translate-all.c b/accel/tcg/translate-all.c index fd3e4a0..913b1c5 100644 --- a/accel/tcg/translate-all.c +++ b/accel/tcg/translate-all.c @@ -604,47 +604,6 @@ static inline void *split_cross_256mb(void *buf1, size= _t size1) static uint8_t static_code_gen_buffer[DEFAULT_CODE_GEN_BUFFER_SIZE] __attribute__((aligned(CODE_GEN_ALIGN))); =20 -# ifdef _WIN32 -static inline void do_protect(void *addr, long size, int prot) -{ - DWORD old_protect; - VirtualProtect(addr, size, prot, &old_protect); -} - -static inline void map_exec(void *addr, long size) -{ - do_protect(addr, size, PAGE_EXECUTE_READWRITE); -} - -static inline void map_none(void *addr, long size) -{ - do_protect(addr, size, PAGE_NOACCESS); -} -# else -static inline void do_protect(void *addr, long size, int prot) -{ - uintptr_t start, end; - - start =3D (uintptr_t)addr; - start &=3D qemu_real_host_page_mask; - - end =3D (uintptr_t)addr + size; - end =3D ROUND_UP(end, qemu_real_host_page_size); - - mprotect((void *)start, end - start, prot); -} - -static inline void map_exec(void *addr, long size) -{ - do_protect(addr, size, PROT_READ | PROT_WRITE | PROT_EXEC); -} - -static inline void map_none(void *addr, long size) -{ - do_protect(addr, size, PROT_NONE); -} -# endif /* WIN32 */ - static inline void *alloc_code_gen_buffer(void) { void *buf =3D static_code_gen_buffer; @@ -671,8 +630,12 @@ static inline void *alloc_code_gen_buffer(void) } #endif =20 - map_exec(buf, size); - map_none(buf + size, qemu_real_host_page_size); + if (qemu_mprotect_rwx(buf, size)) { + abort(); + } + if (qemu_mprotect_none(buf + size, qemu_real_host_page_size)) { + abort(); + } qemu_madvise(buf, size, QEMU_MADV_HUGEPAGE); =20 return buf; --=20 2.7.4