On 10/02/2014 12:55 AM, John Snow wrote: > Based off of feedback from the RFC of the same name, > this series batches together a group of fixes that > improve the AHCI device to fix a number of bugs. > > A number of fixes included in the RFC that provide more > radical changes are omitted for now in favor of a smaller, > more easily reviewable set for QEMU 2.2. > > In summary: > > Patch #1 and #6 correct the format of FIS packet responses > that are available to the guest operating system upon interrupt. > > Patch #2 corrects an oversight where we do not inform the > guest how many bytes we've transferred. This is relied upon > for non-NCQ modes and in some early bootup and shutdown code. > > Patch #5 corrects cases with malformed scatter-gather lists that > may cause leaks, or cause QEMU to hang in an allocation loop.
I only had a comment on this patch. The assertion you added might work for IDE, but I'm afraid not in general. With the change suggested there, Reviewed-by: Paolo Bonzini <pbonz...@redhat.com> > Patch #4 attempts to continue minimizing the divergence of the > multiple pathways through the AHCI device by re-using existing > callbacks. > > Taken together, these patches should allow non-ncq operation > for Windows hosts, as well as enable hibernation for Windows 7. > > Hibernation for Windows 8 and AHCI remains non-functional. > > John Snow (6): > ahci: Correct PIO/D2H FIS responses > ahci: Update byte count after DMA completion > ide: repair PIO transfers for cases where nsector > 1 > ahci: unify sglist preparation > ide: Correct handling of malformed/short PRDTs > ahci: Fix SDB FIS Construction > > dma-helpers.c | 3 ++ > hw/ide/ahci.c | 113 > ++++++++++++++++++++++++++++++++---------------------- > hw/ide/ahci.h | 8 ++++ > hw/ide/core.c | 17 ++++++-- > hw/ide/internal.h | 2 + > hw/ide/pci.c | 5 ++- > 6 files changed, 97 insertions(+), 51 deletions(-) >