qemu/hw
Alexander Graf f35ea98cd9 PPC: dbdma: Support more multi-issue DMA requests
A DMA request can happen for data that hasn't been completely been
provided by the IDE core yet. For example

  - DBDMA request for 0x1000 bytes
  - IDE request for 1 sector
  - DBDMA wants to read 0x1000 bytes (8 sectors) from bdrv
  - breakage

Instead, we should truncate our bdrv request to the maximum number
of sectors we're allowed to read at that given time. Once that transfer
is through, we will fall into our recently introduced waiting logic.

  - DBDMA requests for 0x1000 bytes
  - IDE request for 1 sector
  - DBDMA wants to read MIN(0x1000, 1 * 512) bytes
  - DBDMA finishes reading, indicates to IDE core that transfer is complete
  - IDE request for 7 sectors
  - DBDMA finishes the DMA

Reported-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Signed-off-by: Alexander Graf <agraf@suse.de>
2013-07-11 18:51:25 +02:00
..
9pfs hw/9pfs: Fix memory leak in error path 2013-07-09 13:38:56 -05:00
acpi hw/a*: pass owner to memory_region_init* functions 2013-07-04 17:42:47 +02:00
alpha cpu: Replace cpu_single_env with CPUState current_cpu 2013-07-09 21:20:28 +02:00
arm QOM CPUState refactorings 2013-07-10 10:54:16 -05:00
audio hw/a*: pass owner to memory_region_init* functions 2013-07-04 17:42:47 +02:00
block hw/block: pass owner to memory_region_init* functions 2013-07-04 17:42:47 +02:00
bt sysemu: avoid proliferation of include/ subdirectories 2013-04-15 18:19:25 +02:00
char hw/c*: pass owner to memory_region_init* functions 2013-07-04 17:42:47 +02:00
core hw/c*: pass owner to memory_region_init* functions 2013-07-04 17:42:47 +02:00
cpu hw/c*: pass owner to memory_region_init* functions 2013-07-04 17:42:47 +02:00
cris memory: add owner argument to initialization functions 2013-07-04 17:42:44 +02:00
display add a header file for atomic operations 2013-07-04 17:42:49 +02:00
dma hw/d*: pass owner to memory_region_init* functions 2013-07-04 17:42:47 +02:00
gpio hw/gpio: pass owner to memory_region_init* functions 2013-07-04 17:42:47 +02:00
i2c Extend support of SMBUS(module pm_smbus.c) HST_STS register. 2013-07-09 13:38:55 -05:00
i386 cpu: Make first_cpu and next_cpu CPUState 2013-07-09 21:32:54 +02:00
ide PPC: dbdma: Support more multi-issue DMA requests 2013-07-11 18:51:25 +02:00
input hw/i*: pass owner to memory_region_init* functions 2013-07-04 17:42:48 +02:00
intc pseries: move interrupt controllers to hw/intc/ 2013-07-11 18:51:23 +02:00
isa cpu: Make first_cpu and next_cpu CPUState 2013-07-09 21:32:54 +02:00
lm32 memory: add owner argument to initialization functions 2013-07-04 17:42:44 +02:00
m68k memory: add owner argument to initialization functions 2013-07-04 17:42:44 +02:00
microblaze microblaze: Fix latent bug with default DTB lookup 2013-07-09 13:38:58 -05:00
mips cpu: Make first_cpu and next_cpu CPUState 2013-07-09 21:32:54 +02:00
misc PPC: Add timer handler for newworld mac-io 2013-07-11 18:51:25 +02:00
moxie memory: add owner argument to initialization functions 2013-07-04 17:42:44 +02:00
net pci,misc enhancements 2013-07-08 08:00:23 -05:00
nvram hw/n*: pass owner to memory_region_init* functions 2013-07-04 17:42:48 +02:00
openrisc memory: add owner argument to initialization functions 2013-07-04 17:42:44 +02:00
pci pci,misc enhancements 2013-07-08 08:00:23 -05:00
pci-bridge hw/p*: pass owner to memory_region_init* functions 2013-07-04 17:42:48 +02:00
pci-host pci,misc enhancements 2013-07-08 08:00:23 -05:00
ppc PPC: dbdma: Wait for DMA until we have data 2013-07-11 18:51:25 +02:00
s390x memory: add owner argument to initialization functions 2013-07-04 17:42:44 +02:00
scsi hw/s*: pass owner to memory_region_init* functions 2013-07-04 17:42:48 +02:00
sd hw/s*: pass owner to memory_region_init* functions 2013-07-04 17:42:48 +02:00
sh4 pci,misc enhancements 2013-07-08 08:00:23 -05:00
sparc cpu: Replace cpu_single_env with CPUState current_cpu 2013-07-09 21:20:28 +02:00
sparc64 pci,misc enhancements 2013-07-08 08:00:23 -05:00
ssi hw/s*: pass owner to memory_region_init* functions 2013-07-04 17:42:48 +02:00
timer timer/arm_mptimer: Build arm_mptimer only once 2013-07-09 21:33:02 +02:00
tpm hw/t*: pass owner to memory_region_init* functions 2013-07-04 17:42:48 +02:00
unicore32 memory: add owner argument to initialization functions 2013-07-04 17:42:44 +02:00
usb hw/[u-x]*: pass owner to memory_region_init* functions 2013-07-04 17:42:48 +02:00
virtio add a header file for atomic operations 2013-07-04 17:42:49 +02:00
watchdog hw/[u-x]*: pass owner to memory_region_init* functions 2013-07-04 17:42:48 +02:00
xen hw/[u-x]*: pass owner to memory_region_init* functions 2013-07-04 17:42:48 +02:00
xtensa hw/[u-x]*: pass owner to memory_region_init* functions 2013-07-04 17:42:48 +02:00
Makefile.objs virtio: simplify Makefile conditionals 2013-04-19 16:18:11 +02:00