|
|
|
|
|
|
|
|
|
|
xen-devel
[Xen-devel] string mmio/pio across page boundaries
When preparing arguments for send_mmio_req() or send_pio_req() in hvm
where a single iteration crosses a page boundary, the value to be written
is copied from guest memory, but I can't see where the value read is copied
to guest memory. Is this case simply missing?
Also, a long while back the logic to calculate when wrapping occurs was
changed with two subsequent patches. As I'm looking at the code now it
seems like
- only the first patch got applied to handle_mmio() (i.e., the logic is still
broken
- neither patch got applied to {svm,vmx}_io_instruction().
Further, there is a comment in handle_mmio() now saying "We need to
make sure we advance to the point where the next request will be on a
different page. If we're going down, that means advancing until one
byte before the start of the page, hence +1." This wasn't applied
similarly to {svm,vmx}_io_instruction(). And the actual code seems
wrong: If e.g. addr is on a page boundary, count will become zero. I
would think that the +1 must be outside of the division.
Was this intentional in some way? Otherwise, I'll prepare a patch to
address all of these.
Thanks, Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
<Prev in Thread] |
Current Thread |
[Next in Thread>
|
- [Xen-devel] string mmio/pio across page boundaries,
Jan Beulich <=
|
|
|
|
|