[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] x86-64 machine_to_phys vs NX bit
>>> Keir Fraser <Keir.Fraser@xxxxxxxxxxxx> 25.08.06 09:32 >>> >On 24/8/06 8:25 pm, "Rik van Riel" <riel@xxxxxxxxxx> 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 I'd suggest not changing machine_to_phys(), but its callers (where needed), in order to prevent hiding errors. >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? That must __supported_pte_mask is all ones on a system I just checked this on; pte_val() for a page with _PAGE_NX set indeed returns (end_pfn << PAGE_SHIFT) | prot_flags. With that I guess there are just too few pages making use of _PAGE_NX yet, so the problem went unnoticed so far. >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. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |