On 03/06/16 03:56, xiaoqiang zhao wrote: > 在 2016年06月02日 03:07, Mark Cave-Ayland 写道: >> On 23/05/16 13:54, Paolo Bonzini wrote: >> >>> >These are replacements for blk_aio_preadv and blk_aio_pwritev that >>> allow >>> >customization of the data path. They reuse the DMA helpers' DMAIOFunc >>> >callback type, so that the same function can be used in either the >>> >QEMUSGList or the bounce-buffered case. >>> > >>> >This customization will be needed in the next patch to do zero-copy >>> >SG_IO on scsi-block. >>> > >>> >Signed-off-by: Paolo Bonzini<pbonz...@redhat.com> >>> >--- >>> > hw/scsi/scsi-disk.c | 63 >>> +++++++++++++++++++++++++++++++++++++++++++---------- >>> > 1 file changed, 52 insertions(+), 11 deletions(-) >>> > >> Hi Paolo, >> >> This patch appears to break qemu-system-sparc booting from CDROM with >> the following command line: >> >> ./qemu-system-sparc -cdrom debian-40r4a-sparc-netinst.iso -boot d >> >> Instead of booting straight into SILO, OpenBIOS hangs when trying to >> read from the CDROM device. > Paolo: > By using git bisect on master branch , I found this patch also break > qemu-system-arm from booting. > command line: > qemu-system-arm -M versatilepb -kernel vmlinuz-3.2.0-4-versatile > -initrd initrd.img-3.2.0-4-versatile -hda > /home/hitmoon/debian_wheezy_armel_standard.qcow2 -append 'root=/dev/sda1' > > The booting process stops at mounting the root partition and after > timeout droped into a initramfs shell. The device '/dev/sda1' is > presented . I guess it can not read properly from sda1.
I've just sent through a patch which fixes the issue for me - please test and report back! Paolo - not sure if it's worth a follow-up patch that renames the relevant _readv/_writev functions in scsi-disk.c to _preadv/_pwritev to try and help avoid such confusion in future? ATB, Mark.