From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LffmD-0005in-N4 for qemu-devel@nongnu.org; Fri, 06 Mar 2009 14:32:09 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Lffm9-0005ia-Qj for qemu-devel@nongnu.org; Fri, 06 Mar 2009 14:32:08 -0500 Received: from [199.232.76.173] (port=56020 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Lffm9-0005iX-Il for qemu-devel@nongnu.org; Fri, 06 Mar 2009 14:32:05 -0500 Received: from mx20.gnu.org ([199.232.41.8]:29326) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1Lffm9-0005u1-6r for qemu-devel@nongnu.org; Fri, 06 Mar 2009 14:32:05 -0500 Received: from e33.co.us.ibm.com ([32.97.110.151]) by mx20.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1Lffm6-0005HR-7y for qemu-devel@nongnu.org; Fri, 06 Mar 2009 14:32:02 -0500 Received: from d03relay03.boulder.ibm.com (d03relay03.boulder.ibm.com [9.17.195.228]) by e33.co.us.ibm.com (8.13.1/8.13.1) with ESMTP id n26JUcmH006166 for ; Fri, 6 Mar 2009 12:30:38 -0700 Received: from d03av04.boulder.ibm.com (d03av04.boulder.ibm.com [9.17.195.170]) by d03relay03.boulder.ibm.com (8.13.8/8.13.8/NCO v9.2) with ESMTP id n26JVhBX076634 for ; Fri, 6 Mar 2009 12:31:47 -0700 Received: from d03av04.boulder.ibm.com (loopback [127.0.0.1]) by d03av04.boulder.ibm.com (8.12.11.20060308/8.13.3) with ESMTP id n26JVg7D026271 for ; Fri, 6 Mar 2009 12:31:43 -0700 Subject: Re: [Qemu-devel] [PATCH 09/11] PPC64: Fix NX bit From: Hollis Blanchard In-Reply-To: <1236353765-4484-10-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> <1236353765-4484-10-git-send-email-agraf@suse.de> Content-Type: text/plain Date: Fri, 06 Mar 2009 13:31:42 -0600 Message-Id: <1236367902.26866.45.camel@slate.austin.ibm.com> Mime-Version: 1.0 Content-Transfer-Encoding: 7bit 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 On Fri, 2009-03-06 at 16:36 +0100, Alexander Graf wrote: > This patch fixes two issues with the NX bit: > > 1) The guarded bit has nothing to do with NX. It turns out that instruction access is not allowed from mappings that have either N *or* G bits set. (There are also N bits in the segment entry; not sure how/if those are handled in this path.) > 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 > { -- Hollis Blanchard IBM Linux Technology Center