qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 0/6] AHCI Device Fixes


From: John Snow
Subject: Re: [Qemu-devel] [PATCH 0/6] AHCI Device Fixes
Date: Tue, 28 Oct 2014 19:54:09 -0400
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.2.0



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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]