I think what you say up is right, I will correct them, thank you very much!
+ bdrv_aio_readv(cur_drv->bs, fd_sector(cur_drv), +&fdctrl->qiov, fdc_sector_num, fdctrl_read_DMA_cb, opaque_cb); + return dma_len;Should be return 0 since we haven't completed I/O yet. Stefan
I think the return value is not used not, so no matter what is returned it not necessary.
if set the dma_len = 0, when call void DMA_set_return(int nret) function will return the real value; :)