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
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
block Block patches 2014-09-15 17:35:22 +01:00
bt
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
gpio pl061: implement input interrupt logic 2014-09-12 14:06:48 +01:00
i2c
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
ipack
isa
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
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
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
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
timer mc146818rtc: add missed field to vmstate 2014-09-11 12:20:32 +02:00
tpm
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
xen
xenpv
xtensa memory: add parameter errp to memory_region_init_ram 2014-09-09 13:41:43 +02:00
Makefile.objs