From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rik van Riel Subject: Re: x86-64 machine_to_phys vs NX bit Date: Fri, 25 Aug 2006 09:54:46 -0400 Message-ID: <44EF0126.2050002@redhat.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Keir Fraser Cc: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org Keir Fraser wrote: > On 24/8/06 8:25 pm, "Rik van Riel" wrote: > >> Say, something like the following? >> >> - paddr_t phys = mfn_to_pfn(machine >> PAGE_SHIFT); >> + paddr_t phys = mfn_to_pfn((machine >> PAGE_SHIFT) & PHYSICAL_MASK); >> >> I'm still thinking I may have missed something in the code >> somewhere, but I've been looking at this for over an hour now >> and can't seem to find it... >> >> Any ideas? > > Your suggested patch looks reasonable but it'd be good to find out why this > hasn't caused us problems. For example, perhaps supported_pte_mask doesn't > include PAGE_NX, so we're never setting the NX bit on 64-bit PTEs? We do set the NX bit. Including on vmalloced pages... > That must be worth checking out, possibly also tracing > machine_to_phys to find out where that bit 63 goes -- I agree that it > looks like mfn_to_pfn() shouldn't work if bit63 is set in the > 'maddr' argument. Absolutely :) -- What is important? What you want to be true, or what is true?