|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [v7][RFC][PATCH 01/13] xen: RMRR fix
On 2014/10/29 16:45, Jan Beulich wrote: On 29.10.14 at 03:51, <tiejun.chen@xxxxxxxxx> wrote:On 2014/10/29 8:48, Chen, Tiejun wrote:On 2014/10/28 17:34, Jan Beulich wrote:On 28.10.14 at 09:36, <tiejun.chen@xxxxxxxxx> wrote:On 2014/10/27 17:41, Jan Beulich wrote:On 27.10.14 at 03:00, <tiejun.chen@xxxxxxxxx> wrote:n 2014/10/24 18:52, Jan Beulich wrote:On 24.10.14 at 09:34, <tiejun.chen@xxxxxxxxx> wrote: I think we just guarantee no one set mem_access for those ranges, but its fine to get mem_access:
diff --git a/xen/common/mem_access.c b/xen/common/mem_access.c
index 6c2724b..4c84f88 100644
--- a/xen/common/mem_access.c
+++ b/xen/common/mem_access.c
@@ -55,6 +55,31 @@ void mem_access_resume(struct domain *d)
}
}
+/* We can't expose reserved device memory. */
+static int mem_access_check_rdm(struct domain *d, uint64_aligned_t start,
+ uint32_t nr)
+{
+ uint32_t i;
+ uint64_aligned_t gfn;
+ int rc = 0;
+
+ if ( !is_hardware_domain(d) )
+ {
+ for ( i = 0; i < nr; i++ )
+ {
+ gfn = start + i;
+ rc =
iommu_get_reserved_device_memory(p2m_check_reserved_device_memory,
+ &gfn);
+ if ( rc < 0 )
+ printk(XENLOG_WARNING
+ "Domain %d can't check reserved device memory.\n",
+ d->domain_id);
+ }
+ }
+
+ return rc;
+}
+
int mem_access_memop(unsigned long cmd,
XEN_GUEST_HANDLE_PARAM(xen_mem_access_op_t) arg)
{
@@ -99,6 +124,15 @@ int mem_access_memop(unsigned long cmd,
((mao.pfn + mao.nr - 1) > domain_get_maximum_gpfn(d))) )
break;
+ rc = mem_access_check_rdm(d, mao.pfn, mao.nr);
+ if ( rc == 1 )
+ {
+ printk(XENLOG_WARNING
+ "Domain %d: we shouldn't mem_access reserved device
memory.\n",
+ d->domain_id);
+ break;
+ }
+
rc = p2m_set_mem_access(d, mao.pfn, mao.nr, start_iter,
MEMOP_CMD_MASK, mao.access);
if ( rc > 0 )
Thanks
Tiejun
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |