[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] RE: [Xen-changelog] Fix MOVS instruction emulation for HVM MMIO.
Petersson, Mats wrote: >> Subject: [Xen-changelog] Fix MOVS instruction emulation for HVM MMIO. >> >> diff -r aab3cd33d2ba -r 7fdc4a8b782b xen/arch/x86/hvm/platform.c >> --- a/xen/arch/x86/hvm/platform.c Tue May 16 16:34:27 2006 +0100 >> +++ b/xen/arch/x86/hvm/platform.c Tue May 16 19:50:23 2006 +0100 >> @@ -865,7 +865,7 @@ void handle_mmio(unsigned long va, unsig >> * copy ourself. After this copy succeeds, "rep >> movs" is executed >> * again. >> */ >> - if ((addr & PAGE_MASK) != ((addr + size - 1) & PAGE_MASK)) { >> + if ((addr & PAGE_MASK) != ((addr + sign * (size - 1)) & >> + PAGE_MASK)) { > > With the risk of being wrong (again), I'd say this is incorrect: The > MOVS instruction will start reading at ESI, and write at the address > indicated by EDI and write with size bytes, even when it's copying > backwards. So there should be no multiplication of sign on this line. I still think this is correct. If I understand things correctly the point of the test is to figure whenever the _next_ repz movs interation will access another page (and if so copy just one data word and let the emulator kick in again for the remaining data on the page above/below). cheers, Gerd -- Gerd Hoffmann <kraxel@xxxxxxx> Erst mal heiraten, ein, zwei Kinder, und wenn alles läuft geh' ich nach drei Jahren mit der Familie an die Börse. http://www.suse.de/~kraxel/julika-dora.jpeg _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |