Jan Beulich
2012-Feb-14 14:54 UTC
[PATCH] x86: don''t allow Dom0 to map MSI-X table writably
With the traditional qemu tree fixed to not use PROT_WRITE anymore in the mmap() call for this region, and with the upstream qemu tree not being capable of handling passthrough, yet, there''s no need to treat Dom specially here anymore. This continues to leave unaddressed the case where PV guests map the MSI-X table page(s) before setting up the first MSI-X interrupt (see the original c/s 22182:68cc3c514a0a description for options). Signed-off-by: Jan Beulich <jbeulich@suse.com> --- a/xen/arch/x86/mm.c +++ b/xen/arch/x86/mm.c @@ -869,7 +869,7 @@ get_page_from_l1e( return -EINVAL; } - if ( !(l1f & _PAGE_RW) || IS_PRIV(pg_owner) || + if ( !(l1f & _PAGE_RW) || !rangeset_contains_singleton(mmio_ro_ranges, mfn) ) return 0; dprintk(XENLOG_G_WARNING, _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Keir Fraser
2012-Feb-14 18:32 UTC
Re: [PATCH] x86: don''t allow Dom0 to map MSI-X table writably
On 14/02/2012 14:54, "Jan Beulich" <JBeulich@suse.com> wrote:> With the traditional qemu tree fixed to not use PROT_WRITE anymore in > the mmap() call for this region, and with the upstream qemu tree not > being capable of handling passthrough, yet, there''s no need to treat > Dom specially here anymore. > > This continues to leave unaddressed the case where PV guests map the > MSI-X table page(s) before setting up the first MSI-X interrupt (see > the original c/s 22182:68cc3c514a0a description for options). > > Signed-off-by: Jan Beulich <jbeulich@suse.com>Acked-by: Keir Fraser <keir@xen.org>> --- a/xen/arch/x86/mm.c > +++ b/xen/arch/x86/mm.c > @@ -869,7 +869,7 @@ get_page_from_l1e( > return -EINVAL; > } > > - if ( !(l1f & _PAGE_RW) || IS_PRIV(pg_owner) || > + if ( !(l1f & _PAGE_RW) || > !rangeset_contains_singleton(mmio_ro_ranges, mfn) ) > return 0; > dprintk(XENLOG_G_WARNING, > > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xensource.com > http://lists.xensource.com/xen-devel