[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] x86-64 machine_to_phys vs NX bit
On 13/11/06 8:07 am, "Jan Beulich" <jbeulich@xxxxxxxxxx> wrote: >> There was a bug in my previous patch. (There's nothing like trying to >> get to sleep and realizing you've screwed up.) The x86 pae >> PHYSICAL_PAGE_MASK I defined was incorrect because PAGE_MASK was only a >> long. I hope I haven't done anything else wrong. > > I don't think this is correct - machine_to_phys() translates a machine address > to a physical one, and in that translation the upper bits matter only as much > as mfn_to_pfn() should return an invalid indicator if any of them is set. In > turn, > it should be the caller's responsibility to make sure the NX bit (and any > potential > other one being set beyond bit 52) gets masked off *before* calling this > function. (Specifically, the preserving of the lower bits is to properly > translate > a non-page aligned address, not to preserve attribute bits read from a page > table entry). Yes, we should keep the old machine_to_phys() definition and rename John's new version as pte_machine_to_phys(). The latter should be used in all contexts where machine_to_phys() currently operates on a pte (that's most of its uses, actually). This is a worthwhile cleanup and clarification. Could you respin the patch, John? Thanks, Keir _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |