Message ID | 1464931021-25117-1-git-send-email-mark.cave-ayland@ilande.co.uk (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
在 2016年06月03日 13:17, Mark Cave-Ayland 写道: > Commit fcaafb1001b9c42817714dd3b2aadcfdb997b53d accidentally broke reads from > scsi-disk devices when being updated from its original form to use the new > byte-based block functions. Add the extra missing sector to offset conversion > in order to restore read functionality. > > Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> > --- > hw/scsi/scsi-disk.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c > index ace65e0..ab7cf9c 100644 > --- a/hw/scsi/scsi-disk.c > +++ b/hw/scsi/scsi-disk.c > @@ -347,7 +347,7 @@ static void scsi_do_read(SCSIDiskReq *r, int ret) > scsi_init_iovec(r, SCSI_DMA_BUF_SIZE); > block_acct_start(blk_get_stats(s->qdev.conf.blk), &r->acct, > r->qiov.size, BLOCK_ACCT_READ); > - r->req.aiocb = sdc->dma_readv(r->sector, &r->qiov, > + r->req.aiocb = sdc->dma_readv(r->sector << BDRV_SECTOR_BITS, &r->qiov, > scsi_read_complete, r, r); > } > This patch fix the qemu-system-arm booting issue. Tested-by: xiaoqiang zhao <zxq_yx_007@163.com>
On 06/02/2016 11:17 PM, Mark Cave-Ayland wrote: > Commit fcaafb1001b9c42817714dd3b2aadcfdb997b53d accidentally broke reads from > scsi-disk devices when being updated from its original form to use the new > byte-based block functions. Add the extra missing sector to offset conversion > in order to restore read functionality. > > Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> > --- > hw/scsi/scsi-disk.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) Reviewed-by: Eric Blake <eblake@redhat.com> > > diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c > index ace65e0..ab7cf9c 100644 > --- a/hw/scsi/scsi-disk.c > +++ b/hw/scsi/scsi-disk.c > @@ -347,7 +347,7 @@ static void scsi_do_read(SCSIDiskReq *r, int ret) > scsi_init_iovec(r, SCSI_DMA_BUF_SIZE); > block_acct_start(blk_get_stats(s->qdev.conf.blk), &r->acct, > r->qiov.size, BLOCK_ACCT_READ); > - r->req.aiocb = sdc->dma_readv(r->sector, &r->qiov, > + r->req.aiocb = sdc->dma_readv(r->sector << BDRV_SECTOR_BITS, &r->qiov, > scsi_read_complete, r, r); > } > >
On 3 June 2016 at 13:42, Eric Blake <eblake@redhat.com> wrote: > On 06/02/2016 11:17 PM, Mark Cave-Ayland wrote: >> Commit fcaafb1001b9c42817714dd3b2aadcfdb997b53d accidentally broke reads from >> scsi-disk devices when being updated from its original form to use the new >> byte-based block functions. Add the extra missing sector to offset conversion >> in order to restore read functionality. >> >> Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> >> --- >> hw/scsi/scsi-disk.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) > > Reviewed-by: Eric Blake <eblake@redhat.com> Thanks. Applied to master, since it's awkward to leave scsi disks broken... thanks -- PMM
On Fri, 2016-06-03 at 06:17 +0100, Mark Cave-Ayland wrote: > Commit fcaafb1001b9c42817714dd3b2aadcfdb997b53d accidentally broke > reads from > scsi-disk devices when being updated from its original form to use > the new > byte-based block functions. Add the extra missing sector to offset > conversion > in order to restore read functionality. > > Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> This fixes powerpc PAPR booting Tested-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> > --- > hw/scsi/scsi-disk.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c > index ace65e0..ab7cf9c 100644 > --- a/hw/scsi/scsi-disk.c > +++ b/hw/scsi/scsi-disk.c > @@ -347,7 +347,7 @@ static void scsi_do_read(SCSIDiskReq *r, int ret) > scsi_init_iovec(r, SCSI_DMA_BUF_SIZE); > block_acct_start(blk_get_stats(s->qdev.conf.blk), &r->acct, > r->qiov.size, BLOCK_ACCT_READ); > - r->req.aiocb = sdc->dma_readv(r->sector, &r->qiov, > + r->req.aiocb = sdc->dma_readv(r->sector << BDRV_SECTOR_BITS, > &r->qiov, > scsi_read_complete, r, r); > } >
diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c index ace65e0..ab7cf9c 100644 --- a/hw/scsi/scsi-disk.c +++ b/hw/scsi/scsi-disk.c @@ -347,7 +347,7 @@ static void scsi_do_read(SCSIDiskReq *r, int ret) scsi_init_iovec(r, SCSI_DMA_BUF_SIZE); block_acct_start(blk_get_stats(s->qdev.conf.blk), &r->acct, r->qiov.size, BLOCK_ACCT_READ); - r->req.aiocb = sdc->dma_readv(r->sector, &r->qiov, + r->req.aiocb = sdc->dma_readv(r->sector << BDRV_SECTOR_BITS, &r->qiov, scsi_read_complete, r, r); }
Commit fcaafb1001b9c42817714dd3b2aadcfdb997b53d accidentally broke reads from scsi-disk devices when being updated from its original form to use the new byte-based block functions. Add the extra missing sector to offset conversion in order to restore read functionality. Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> --- hw/scsi/scsi-disk.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)