[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] Make get_page_from_l1e refcount correctly onforeign pagetables.



On 14/05/2009 09:22, "Tim Deegan" <Tim.Deegan@xxxxxxxxxx> wrote:

>> I have to admit that the change to mod_l1_entry() look suspicious to me -
>> as I understand it, the third parameter of get_page_from_l1e_for() represents
>> the target domain, and that's what FOREIGNDOM is to be used for.
> 
> Possibly.  IIUC get_page_from_l1e_for()'s first domain argument is the
> domain whose rights we are testing; so e.g. dom0 mapping domU memory
> uses FOREIGNDOM there to say "this should be domU's page".  The second
> argument (whose pagetables are these) has always implicitly been "mine",
> i.e. current->domain.  Again correct when dom0 maps domU's page.
> 
> In the case we're trying to fix, although current->domain is dom0 (who
> is making a shadow control hypercall) the pagetables belong to domU.

Yes, there can be three domains involved: the one making the hypercall, the
one who owns the PTE, and the one who owns the page being mapped into the
PTE. I think some of the confusion around get_page_from_l1e() is that the
domain argument is the page-owner not the PTE-owner. It would make sense for
it to be the latter, and then as far as possible do the
is-the-page-owner-valid checks hidden inside get_page_from_l1e(). The only
fly in the ointment there is that FOREIGNDOM should only be permitted from
mod_l1_entry(). Possibly that should be the only caller that directly
accesses a more complex interface to get_page_from_l1e() (where the extra
argument would be the page-owner, not the PTE-owner!).

 -- Keir



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.