On 10/29/2014 12:54 AM, John Snow wrote: > > > On 10/28/2014 09:51 AM, Stefan Hajnoczi wrote: >> On Wed, Oct 01, 2014 at 06:55:45PM -0400, 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. >>> >>> 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(-) >> >> Dropped the broken assert that Paolo spotted. >> >> Thanks, applied to my block tree: >> https://github.com/stefanha/qemu/commits/block >> >> Stefan > > Drop the PIO patch for now (#3), I ran into a regression with it with > CDROM drives. I believe the others are still fine.
Yeah, I was wondering if any commands could have <512 bytes response... I sort of convinced myself that the answer was no for ATA commands, but stupidly forgot about packet (SCSI) commands. Their results are obviously shorter than 512 bytes. Paolo