qemu-e2k/hw
John Snow fac7aa7fc2 ahci: properly shadow the TFD register
In a real AHCI device, several S/ATA registers are mirrored or shadowed
within the AHCI register set. These registers are not updated
synchronously for each read access, but are instead updated after a
Device-to-Host Register FIS packet is received. The D2H FIS contains
the values from these registers on the device.

In QEMU, by reaching directly into the device to grab these bits before
they are "sent," we may introduce race conditions where unexpected
values are present "before they are sent" which could cause issues for
some guests, particularly if an attempt is made to read the PxTFD
register prior to enabling the port, where incorrect values will be read.

This patch also addresses the boot-time values for the PxTFD and PxSIG
registers to bring them in line with the AHCI 1.3 specification.

Lastly, several fields (PxTFD, PxSIG and PxSACT) are read-only,
and any attempts to write to them should be ignored.

Signed-off-by: John Snow <jsnow@redhat.com>
Message-id: 1408643079-30675-6-git-send-email-jsnow@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2014-09-22 11:39:41 +01:00
..
9pfs hw/9pfs: Don't return type from host in readdir on local 9p filesystem 2014-09-04 10:51:13 -05:00
acpi pcihp: fix possible array out of bounds 2014-08-25 00:16:06 +02:00
alpha memory: add parameter errp to memory_region_init_ram 2014-09-09 13:41:43 +02:00
arm - Memory: improve error reporting and avoid crashes on hotplug 2014-09-12 16:55:49 +01:00
audio SCSI changes that enable sending vendor-specific commands via virtio-scsi. 2014-08-19 13:00:57 +01:00
block Block patches 2014-09-15 17:35:22 +01:00
bt l2cap: fix access to freed memory 2014-08-15 19:12:48 +04:00
char serial: fixing vmstate for save/restore 2014-09-11 12:20:32 +02:00
core pci, pc, virtio, misc bugfixes 2014-09-18 20:02:01 +01:00
cpu
cris memory: add parameter errp to memory_region_init_ram 2014-09-09 13:41:43 +02:00
display - Memory: improve error reporting and avoid crashes on hotplug 2014-09-12 16:55:49 +01:00
dma dma: axidma: Variablise repeated s->streams[i] sub-expr 2014-08-24 13:16:32 +04:00
gpio pl061: implement input interrupt logic 2014-09-12 14:06:48 +01:00
i2c Fix debug print warning 2014-09-02 22:38:16 +04:00
i386 pci, pc, virtio, misc bugfixes 2014-09-18 20:02:01 +01:00
ide ahci: properly shadow the TFD register 2014-09-22 11:39:41 +01:00
input pckbd: adding new fields to vmstate 2014-09-11 12:20:32 +02:00
intc Fix debug print warning 2014-09-02 22:38:16 +04:00
ipack memory: remove memory_region_destroy 2014-08-18 12:06:21 +02:00
isa Fix debug print warning 2014-09-02 22:38:16 +04:00
lm32 memory: add parameter errp to memory_region_init_ram 2014-09-09 13:41:43 +02:00
m68k memory: add parameter errp to memory_region_init_ram 2014-09-09 13:41:43 +02:00
mem pc-dimm: fix up error message 2014-08-14 13:22:00 +02:00
microblaze memory: add parameter errp to memory_region_init_ram 2014-09-09 13:41:43 +02:00
mips memory: add parameter errp to memory_region_init_ram 2014-09-09 13:41:43 +02:00
misc PPC: Cuda: Use cuda timer to expose tbfreq to guest 2014-09-08 12:50:52 +02:00
moxie memory: add parameter errp to memory_region_init_ram 2014-09-09 13:41:43 +02:00
net pci, pc, virtio, misc bugfixes 2014-09-18 20:02:01 +01:00
nvram PPC: mac_nvram: Split NVRAM into OF and OSX parts 2014-09-08 12:50:52 +02:00
openrisc memory: add parameter errp to memory_region_init_ram 2014-09-09 13:41:43 +02:00
pci memory: add parameter errp to memory_region_init_ram 2014-09-09 13:41:43 +02:00
pci-bridge ioh3420: remove unused ioh3420_init() declaration 2014-09-02 17:28:26 +03:00
pci-host - Memory: improve error reporting and avoid crashes on hotplug 2014-09-12 16:55:49 +01:00
pcmcia
ppc - Memory: improve error reporting and avoid crashes on hotplug 2014-09-12 16:55:49 +01:00
s390x memory: add parameter errp to memory_region_init_ram 2014-09-09 13:41:43 +02:00
scsi block: Make the block accounting functions operate on BlockAcctStats 2014-09-10 10:41:29 +02:00
sd sd: sdhci: Fix ADMA dma_memory_read access 2014-08-04 14:41:54 +01:00
sh4 memory: add parameter errp to memory_region_init_ram 2014-09-09 13:41:43 +02:00
sparc memory: add parameter errp to memory_region_init_ram 2014-09-09 13:41:43 +02:00
sparc64 memory: add parameter errp to memory_region_init_ram 2014-09-09 13:41:43 +02:00
ssi ssi: xilinx_spi: Initialise CS GPIOs as NULL 2014-08-15 18:54:40 +04:00
timer mc146818rtc: add missed field to vmstate 2014-09-11 12:20:32 +02:00
tpm Add ACPI tables for TPM 2014-08-25 00:16:06 +02:00
tricore memory: add parameter errp to memory_region_init_ram 2014-09-09 13:41:43 +02:00
unicore32 memory: add parameter errp to memory_region_init_ram 2014-09-09 13:41:43 +02:00
usb xhci PCIe endpoint migration compatibility fix 2014-09-10 07:20:53 +02:00
virtio virtio-pci: fix migration for pci bus master 2014-09-18 21:51:24 +03:00
watchdog memory: remove memory_region_destroy 2014-08-18 12:06:21 +02:00
xen memory: remove memory_region_destroy 2014-08-18 12:06:21 +02:00
xenpv
xtensa memory: add parameter errp to memory_region_init_ram 2014-09-09 13:41:43 +02:00
Makefile.objs