From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Lfc5v-0002Dd-QS for qemu-devel@nongnu.org; Fri, 06 Mar 2009 10:36:15 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Lfc5r-0002BT-TR for qemu-devel@nongnu.org; Fri, 06 Mar 2009 10:36:13 -0500 Received: from [199.232.76.173] (port=53500 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Lfc5r-0002BN-9i for qemu-devel@nongnu.org; Fri, 06 Mar 2009 10:36:11 -0500 Received: from ns2.suse.de ([195.135.220.15]:48807 helo=mx2.suse.de) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1Lfc5q-0001bI-PX for qemu-devel@nongnu.org; Fri, 06 Mar 2009 10:36:11 -0500 From: Alexander Graf Date: Fri, 6 Mar 2009 16:36:03 +0100 Message-Id: <1236353765-4484-10-git-send-email-agraf@suse.de> In-Reply-To: <1236353765-4484-9-git-send-email-agraf@suse.de> References: <1236353765-4484-1-git-send-email-agraf@suse.de> <1236353765-4484-2-git-send-email-agraf@suse.de> <1236353765-4484-3-git-send-email-agraf@suse.de> <1236353765-4484-4-git-send-email-agraf@suse.de> <1236353765-4484-5-git-send-email-agraf@suse.de> <1236353765-4484-6-git-send-email-agraf@suse.de> <1236353765-4484-7-git-send-email-agraf@suse.de> <1236353765-4484-8-git-send-email-agraf@suse.de> <1236353765-4484-9-git-send-email-agraf@suse.de> Subject: [Qemu-devel] [PATCH 09/11] PPC64: Fix NX bit Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: blauwirbel@gmail.com, Alexander Graf This patch fixes two issues with the NX bit: 1) The guarded bit has nothing to do with NX. 2) ctx->nx only got ORed, but never reset. So when one page in the lifetime of the VM was ever NX, all later pages were too. Signed-off-by: Alexander Graf --- target-ppc/helper.c | 3 +-- 1 files changed, 1 insertions(+), 2 deletions(-) diff --git a/target-ppc/helper.c b/target-ppc/helper.c index 7fe3f8f..58b7fe2 100644 --- a/target-ppc/helper.c +++ b/target-ppc/helper.c @@ -226,8 +226,7 @@ static always_inline int _pte_check (mmu_ctx_t *ctx, int is_64b, ptem = pte0 & PTE64_PTEM_MASK; mmask = PTE64_CHECK_MASK; pp = (pte1 & 0x00000003) | ((pte1 >> 61) & 0x00000004); - ctx->nx |= (pte1 >> 2) & 1; /* No execute bit */ - ctx->nx |= (pte1 >> 3) & 1; /* Guarded bit */ + ctx->nx = (pte1 >> 2) & 1; /* No execute bit */ } else #endif { -- 1.6.0.2