qemu-patch-raspberry4/hw/ide
Alexander Graf c9b308d20b AHCI: Fix port reset race
bdrv_aio_cancel() can trigger bdrv_aio_flush() which makes all aio
that is currently in flight finish. So what we do is:

  port reset
  detect ncq in flight
  cancel ncq
  delete ncq sg list

at which point we have double freed the sg list. Instead, with this
patch we do:

  port reset
  detect ncq in flight
  cancel ncq
  check if we are really still in flight
  delete ncq sg list

which makes things work and gets rid of the race.

Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2012-02-09 16:17:51 +01:00
..
ahci.c AHCI: Fix port reset race 2012-02-09 16:17:51 +01:00
ahci.h ahci: add port I/O index-data pair 2011-09-21 14:32:20 +02:00
atapi.c block: bdrv_aio_* do not return NULL 2011-12-15 12:40:07 +01:00
cmd646.c qdev: register all types natively through QEMU Object Model 2012-02-03 10:41:06 -06:00
core.c Merge remote-tracking branch 'stefanha/trivial-patches' into staging 2011-12-19 09:10:49 -06:00
ich.c qdev: remove baked in notion of aliases (v2) 2012-02-03 10:41:07 -06:00
internal.h ide: convert to QEMU Object Model 2012-01-27 10:50:49 -06:00
isa.c qdev: register all types natively through QEMU Object Model 2012-02-03 10:41:06 -06:00
macio.c block: dma_bdrv_* does not return NULL 2011-12-15 12:40:08 +01:00
microdrive.c hw: Trim superfluous #include "block_int.h" 2011-09-12 15:17:21 +02:00
mmio.c ide/mmio: convert to memory API 2011-11-24 18:31:59 +02:00
pci.c Correct types in bmdma_addr_{read,write} 2012-01-21 05:17:01 +01:00
pci.h ide: convert to memory API 2011-08-08 10:15:54 -05:00
piix.c qdev: register all types natively through QEMU Object Model 2012-02-03 10:41:06 -06:00
qdev.c qdev: kill off DeviceInfo 2012-02-03 10:41:06 -06:00
via.c qdev: register all types natively through QEMU Object Model 2012-02-03 10:41:06 -06:00