[Qemu-devel] [PATCH] macio: handle non-block ATAPI DMA transfers the same as block DMA transfers

2015-08-01 Thread Mark Cave-Ayland
The existing code incorrectly changes the dma_active flag when a non-block transfer has completed leading to a hang on newer versions of Linux because the IDE and DMA engines deadlock waiting for each other. Instead copy the buffer directly to RAM, set the remaining transfer size to 0 and then in

Re: [Qemu-devel] [PATCH] macio: handle non-block ATAPI DMA transfers

2014-05-19 Thread Alexander Graf
On 18.05.14 14:20, Mark Cave-Ayland wrote: Currently the macio DMA routines assume that all DMA requests are for read/write block transfers. This is not always the case for ATAPI, for example when requesting a TOC where the response is generated directly in the IDE buffer. Detect these non-bloc

[Qemu-devel] [PATCH] macio: handle non-block ATAPI DMA transfers

2014-05-18 Thread Mark Cave-Ayland
Currently the macio DMA routines assume that all DMA requests are for read/write block transfers. This is not always the case for ATAPI, for example when requesting a TOC where the response is generated directly in the IDE buffer. Detect these non-block ATAPI DMA transfers (where no lba is specifi