|
|
|
|
|
|
|
|
|
|
xen-devel
[Xen-devel] A question about hvm_copy_from_guest_virt
current hvm_copy_from_guest_virt implementation can't hanle momery
access crossing a page boundary if the 2 guest physical pages are not
contiguous, but the following code in vmx_io_instruction requires
hvm_copy_from_guest_virt can do that. I remember the original code from
Keir can handle that case, although I don't think there will be a real
case in a OS that the 2 guest physical pages are not contiguous.
The same to movs handling in handle_mmio.
Thanks
-Xin
/*
* Handle string pio instructions that cross pages or that
* are unaligned. See the comments in hvm_domain.c/handle_mmio()
*/
if ( (addr & PAGE_MASK) != ((addr + size - 1) & PAGE_MASK) ) {
unsigned long value = 0;
pio_opp->flags |= OVERLAP;
if ( dir == IOREQ_WRITE ) /* OUTS */
{
if ( hvm_paging_enabled(current) )
(void)hvm_copy_from_guest_virt(&value, addr, size);
else
(void)hvm_copy_from_guest_phys(&value, addr, size);
} else
pio_opp->addr = addr;
if ( count == 1 )
regs->eip += inst_len;
send_pio_req(port, 1, size, value, dir, df, 0);
} else {
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- [Xen-devel] A question about hvm_copy_from_guest_virt,
Li, Xin B <=
|
|
|
|
|