qemu/hw
Niklas Cassel 9c7e2253eb hw/ide/ahci: fix ahci_write_fis_sdb()
When there is an error, we need to raise a TFES error irq, see AHCI 1.3.1,
5.3.13.1 SDB:Entry.

If ERR_STAT is set, we jump to state ERR:FatalTaskfile, which will raise
a TFES IRQ unconditionally, regardless if the I bit is set in the FIS or
not.

Thus, we should never raise a normal IRQ after having sent an error IRQ.

It is valid to signal successfully completed commands as finished in the
same SDB FIS that generates the error IRQ. The important thing is that
commands that did not complete successfully (e.g. commands that were
aborted, do not get the finished bit set).

Before this commit, there was never a TFES IRQ raised on NCQ error.

Signed-off-by: Niklas Cassel <niklas.cassel@wdc.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-id: 20230609140844.202795-8-nks@flawful.org
Signed-off-by: John Snow <jsnow@redhat.com>
(cherry picked from commit 7e85cb0db4)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
2023-09-10 19:40:11 +03:00
..
9pfs hw: replace most qemu_bh_new calls with qemu_bh_new_guarded 2023-09-10 19:38:01 +03:00
acpi acpi: pcihp: allow repeating hot-unplug requests 2023-05-10 20:50:38 +03:00
adc hw/adc: Make adci[*] R/W in NPCM7XX ADC 2022-07-18 13:20:14 +01:00
alpha Drop duplicate #include 2023-02-08 07:28:05 +01:00
arm hw/arm/smmu: Handle big-endian hosts correctly 2023-07-31 09:10:51 +03:00
audio hw/audio/via-ac97: Basic implementation of audio playback 2023-03-08 00:37:48 +01:00
avr Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
block hw: replace most qemu_bh_new calls with qemu_bh_new_guarded 2023-09-10 19:38:01 +03:00
char hw: replace most qemu_bh_new calls with qemu_bh_new_guarded 2023-09-10 19:38:01 +03:00
core machine: Add helpers to get cores/threads per socket 2023-09-10 19:39:41 +03:00
cpu hw/cpu: Mark arm11 and realview mpcore as target-independent code 2023-01-16 17:51:20 +01:00
cris Do not include exec/address-spaces.h if it's not really necessary 2021-05-02 17:24:51 +02:00
cxl hw/pxb-cxl: Support passthrough HDM Decoders unless overridden 2023-03-07 19:51:07 -05:00
display hw: replace most qemu_bh_new calls with qemu_bh_new_guarded 2023-09-10 19:38:01 +03:00
dma hw/dma/xilinx_axidma: Check DMASR.HALTED to prevent infinite loop. 2023-05-31 09:42:37 +03:00
gpio replace TABs with spaces 2023-03-20 12:43:50 +01:00
hppa target/hppa: Provide qemu version via fw_cfg to firmware 2023-06-26 19:34:58 +03:00
hyperv win32: replace closesocket() with close() wrapper 2023-03-13 15:39:31 +04:00
i2c hw/i2c: Fix bitbang_i2c_data trace event 2023-09-10 19:39:41 +03:00
i386 hw/i386/x86-iommu: Fix endianness issue in x86_iommu_irq_to_msi_message() 2023-08-04 19:14:46 +03:00
ide hw/ide/ahci: fix ahci_write_fis_sdb() 2023-09-10 19:40:11 +03:00
input replace TABs with spaces 2023-03-20 12:43:50 +01:00
intc loongarch: mark loongarch_ipi_iocsr re-entrnacy safe 2023-09-10 19:38:01 +03:00
ipack include/hw/pci: Split pci_device.h off pci.h 2023-01-08 01:54:22 -05:00
ipmi include/hw/pci: Split pci_device.h off pci.h 2023-01-08 01:54:22 -05:00
isa virtio,pc,pci: features, fixes 2023-03-10 14:31:37 +00:00
loongarch hw/loongarch/virt: Fix virt_to_phys_addr function 2023-04-04 19:29:13 +08:00
m68k *: Add missing includes of qemu/error-report.h 2023-03-22 15:06:57 +00:00
mem *: Add missing includes of qemu/error-report.h 2023-03-22 15:06:57 +00:00
microblaze hw/char/xilinx_uartlite: Open-code xilinx_uartlite_create() 2023-02-27 13:27:05 +00:00
mips kvm: Introduce kvm_arch_get_default_type hook 2023-09-10 19:39:41 +03:00
misc bcm2835_property: disable reentrancy detection for iomem 2023-09-10 19:38:01 +03:00
net hw: replace most qemu_bh_new calls with qemu_bh_new_guarded 2023-09-10 19:38:01 +03:00
nios2 hw/nios2: set machine->fdt in nios2_load_dtb() 2022-10-17 16:15:10 -03:00
nubus hw/nubus/nubus-device: Fix memory leak in nubus_device_realize 2023-02-27 22:29:01 +01:00
nvme hw/nvme: fix null pointer access in ruh update 2023-09-10 19:39:41 +03:00
nvram aspeed queue: 2023-03-03 17:11:22 +00:00
openrisc *: Add missing includes of qemu/error-report.h 2023-03-22 15:06:57 +00:00
pci pci: do not respond config requests after PCI device eject 2023-08-04 19:14:46 +03:00
pci-bridge hw/pci-bridge: pci_expander_bridge fix type in pxb_cxl_dev_reset() 2023-05-10 20:50:38 +03:00
pci-host raven: disable reentrancy detection for iomem 2023-09-10 19:38:01 +03:00
pcmcia hw/pcmcia: Do not register PCMCIA type if not required 2021-05-02 17:24:50 +02:00
ppc ppc/vof: Fix missed fields in VOF cleanup 2023-09-10 19:39:41 +03:00
rdma Drop duplicate #include 2023-02-08 07:28:05 +01:00
remote hw/remote: Fix vfu_cfg trace offset format 2023-06-11 11:02:28 +03:00
riscv hw/riscv: qemu crash when NUMA nodes exceed available CPUs 2023-06-14 13:02:36 +03:00
rtc replace TABs with spaces 2023-03-20 12:43:50 +01:00
rx rx: re-randomize rng-seed on reboot 2022-10-27 11:34:31 +01:00
s390x s390x/pv: Fix spurious warning with asynchronous teardown 2023-05-17 12:27:58 +03:00
scsi lsi53c895a: disable reentrancy detection for MMIO region, too 2023-09-10 19:38:01 +03:00
sd hw/sd/sdhci: Do not force sdhci_mmio_*_ops onto all SD controllers 2023-09-10 19:39:41 +03:00
sensor Do not include hw/hw.h if it is not necessary 2023-02-27 09:15:38 +01:00
sh4 hw/ide/mmio: Extract TYPE_MMIO_IDE declarations to 'hw/ide/mmio.h' 2023-02-27 22:29:02 +01:00
smbios hw/smbios: Fix core count in type4 2023-09-10 19:39:41 +03:00
sparc machine: make memory-backend a link property 2022-05-12 12:29:44 +02:00
sparc64 Revert "hw/sparc64/niagara: Use blk_name() instead of open-coding it" 2023-06-28 18:57:11 +03:00
ssi hw/ssi: Fix Linux driver init issue with xilinx_spi 2023-04-03 16:12:30 +01:00
timer hw/timer/nrf51_timer: Don't lose time when timer is queried in tight loop 2023-06-22 10:38:38 +03:00
tpm hw/tpm: Move tpm_ppi.c out of target-specific source set 2023-01-16 17:51:20 +01:00
tricore hw/tricore: fix inclusion of tricore_testboard 2021-07-20 20:10:21 +02:00
usb hw: replace most qemu_bh_new calls with qemu_bh_new_guarded 2023-09-10 19:38:01 +03:00
vfio vfio/pci: Disable INTx in vfio_realize error path 2023-08-05 08:39:54 +03:00
virtio hw: replace most qemu_bh_new calls with qemu_bh_new_guarded 2023-09-10 19:38:01 +03:00
watchdog replace TABs with spaces 2023-03-20 12:43:50 +01:00
xen hw/xen: Fix memory leak in libxenstore_open() for Xen 2023-06-07 22:47:46 +03:00
xenpv hw/xenpv: Initialize Xen backend operations 2023-03-24 14:52:14 +00:00
xtensa hw/xtensa: fix reset value of MIROUT register of MX PIC 2022-05-06 15:27:40 -07:00
Kconfig xen: add CONFIG_XEN_BUS and CONFIG_XEN_EMU options for Xen emulation 2023-03-01 08:22:49 +00:00
meson.build hw/loongarch: Add support loongson3 virt machine type. 2022-06-06 18:09:03 +00:00