[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 2 of 3] x86/mm: Teach paging to page table-based p2m
On 15/03/2012 17:21, "Tim Deegan" <tim@xxxxxxx> wrote: > At 08:46 -0700 on 15 Mar (1331801170), Andres Lagar-Cavilla wrote: >>> Righto. In that case, I'd be happy with just clipping MFNs and not >>> trying to unpack them. But I think it should happen in the main >>> pte-building macros, not scattered around the p2m code. It should just >>> be a matter of using PADDR_MASK in the right place. >> >> Something along these lines? (RFC, not tested yet) >> Andres >> >> /* Construct a pte from a pfn and access flags. */ >> #define l1e_from_pfn(pfn, flags) \ >> - ((l1_pgentry_t) { ((intpte_t)(pfn) << PAGE_SHIFT) | put_pte_flags(flags) >> }) >> + ((l1_pgentry_t) { ((intpte_t)((pfn) & (PADDR_MASK >> PAGE_SHIFT)) << \ >> + PAGE_SHIFT) | put_pte_flags(flags) }) > > Yes, that's the idea. I think > >> + ((l1_pgentry_t) { (((intpte_t)(pfn) << PAGE_SHIFT) & PADDR_MASK) \ >> + | put_pte_flags(flags) }) > > is a little neater, maybe? > > In any case, I'd like Keir's ack on this, since it will affect all the > PV pagetable code too (hopefully in a trivial and correct way). Fine by me. I don't think any existing users should be intentionally stuffing non-address bits into a pte via the pfn parameter of a pte-constructor. I wonder though whether you should have your own constructor, or wrapper round the generic constructor, for laundering your filthy nasty pfns? ;-) -- Keir > Tim. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |