[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH] x86/HVM: correct last address emulation acceptance check
For REPeated memory access instructions the repeat count also needs to be considered. Utilize that "last" already takes this into account. Also defer computing "last" until we really know we need it. Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx> --- a/xen/arch/x86/hvm/intercept.c +++ b/xen/arch/x86/hvm/intercept.c @@ -34,16 +34,16 @@ static bool_t hvm_mmio_accept(const struct hvm_io_handler *handler, const ioreq_t *p) { - paddr_t first = hvm_mmio_first_byte(p); - paddr_t last = hvm_mmio_last_byte(p); + paddr_t first = hvm_mmio_first_byte(p), last; BUG_ON(handler->type != IOREQ_TYPE_COPY); if ( !handler->mmio.ops->check(current, first) ) return 0; - /* Make sure the handler will accept the whole access */ - if ( p->size > 1 && + /* Make sure the handler will accept the whole access. */ + last = hvm_mmio_last_byte(p); + if ( last != first && !handler->mmio.ops->check(current, last) ) domain_crash(current->domain); Attachment:
x86-HVM-MMIO-accept-rep.patch _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |