Philippe Mathieu-Daudé <f4...@amsat.org> 于2020年8月14日周五 下午4:34写道: > > Use self-explicit definitions instead of magic '512' value. > > Signed-off-by: Philippe Mathieu-Daudé <f4...@amsat.org>
Reviewed-by: Li Qiang <liq...@gmail.com> > --- > hw/scsi/scsi-disk.c | 44 +++++++++++++++++++++++--------------------- > 1 file changed, 23 insertions(+), 21 deletions(-) > > diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c > index 8ce68a9dd6..7612035a4e 100644 > --- a/hw/scsi/scsi-disk.c > +++ b/hw/scsi/scsi-disk.c > @@ -71,7 +71,7 @@ typedef struct SCSIDiskClass { > > typedef struct SCSIDiskReq { > SCSIRequest req; > - /* Both sector and sector_count are in terms of qemu 512 byte blocks. */ > + /* Both sector and sector_count are in terms of BDRV_SECTOR_SIZE bytes. > */ > uint64_t sector; > uint32_t sector_count; > uint32_t buflen; > @@ -141,7 +141,7 @@ static void scsi_init_iovec(SCSIDiskReq *r, size_t size) > r->buflen = size; > r->iov.iov_base = blk_blockalign(s->qdev.conf.blk, r->buflen); > } > - r->iov.iov_len = MIN(r->sector_count * 512, r->buflen); > + r->iov.iov_len = MIN(r->sector_count * BDRV_SECTOR_SIZE, r->buflen); > qemu_iovec_init_external(&r->qiov, &r->iov, 1); > } > > @@ -311,7 +311,7 @@ static void scsi_read_complete_noio(SCSIDiskReq *r, int > ret) > goto done; > } > > - n = r->qiov.size / 512; > + n = r->qiov.size / BDRV_SECTOR_SIZE; > r->sector += n; > r->sector_count -= n; > scsi_req_data(&r->req, r->qiov.size); > @@ -505,7 +505,7 @@ static void scsi_write_complete_noio(SCSIDiskReq *r, int > ret) > goto done; > } > > - n = r->qiov.size / 512; > + n = r->qiov.size / BDRV_SECTOR_SIZE; > r->sector += n; > r->sector_count -= n; > if (r->sector_count == 0) { > @@ -1284,7 +1284,7 @@ static int scsi_disk_emulate_mode_sense(SCSIDiskReq *r, > uint8_t *outbuf) > } else { /* MODE_SENSE_10 */ > outbuf[7] = 8; /* Block descriptor length */ > } > - nb_sectors /= (s->qdev.blocksize / 512); > + nb_sectors /= (s->qdev.blocksize / BDRV_SECTOR_SIZE); > if (nb_sectors > 0xffffff) { > nb_sectors = 0; > } > @@ -1342,7 +1342,7 @@ static int scsi_disk_emulate_read_toc(SCSIRequest *req, > uint8_t *outbuf) > start_track = req->cmd.buf[6]; > blk_get_geometry(s->qdev.conf.blk, &nb_sectors); > trace_scsi_disk_emulate_read_toc(start_track, format, msf >> 1); > - nb_sectors /= s->qdev.blocksize / 512; > + nb_sectors /= s->qdev.blocksize / BDRV_SECTOR_SIZE; > switch (format) { > case 0: > toclen = cdrom_read_toc(nb_sectors, outbuf, msf, start_track); > @@ -1738,9 +1738,10 @@ static void scsi_write_same_complete(void *opaque, int > ret) > > block_acct_done(blk_get_stats(s->qdev.conf.blk), &r->acct); > > - data->nb_sectors -= data->iov.iov_len / 512; > - data->sector += data->iov.iov_len / 512; > - data->iov.iov_len = MIN(data->nb_sectors * 512, data->iov.iov_len); > + data->nb_sectors -= data->iov.iov_len / BDRV_SECTOR_SIZE; > + data->sector += data->iov.iov_len / BDRV_SECTOR_SIZE; > + data->iov.iov_len = MIN(data->nb_sectors * BDRV_SECTOR_SIZE, > + data->iov.iov_len); > if (data->iov.iov_len) { > block_acct_start(blk_get_stats(s->qdev.conf.blk), &r->acct, > data->iov.iov_len, BLOCK_ACCT_WRITE); > @@ -1805,9 +1806,10 @@ static void scsi_disk_emulate_write_same(SCSIDiskReq > *r, uint8_t *inbuf) > > data = g_new0(WriteSameCBData, 1); > data->r = r; > - data->sector = r->req.cmd.lba * (s->qdev.blocksize / 512); > - data->nb_sectors = nb_sectors * (s->qdev.blocksize / 512); > - data->iov.iov_len = MIN(data->nb_sectors * 512, SCSI_WRITE_SAME_MAX); > + data->sector = r->req.cmd.lba * (s->qdev.blocksize / BDRV_SECTOR_SIZE); > + data->nb_sectors = nb_sectors * (s->qdev.blocksize / BDRV_SECTOR_SIZE); > + data->iov.iov_len = MIN(data->nb_sectors * BDRV_SECTOR_SIZE, > + SCSI_WRITE_SAME_MAX); > data->iov.iov_base = buf = blk_blockalign(s->qdev.conf.blk, > data->iov.iov_len); > qemu_iovec_init_external(&data->qiov, &data->iov, 1); > @@ -1980,7 +1982,7 @@ static int32_t scsi_disk_emulate_command(SCSIRequest > *req, uint8_t *buf) > if ((req->cmd.buf[8] & 1) == 0 && req->cmd.lba) { > goto illegal_request; > } > - nb_sectors /= s->qdev.blocksize / 512; > + nb_sectors /= s->qdev.blocksize / BDRV_SECTOR_SIZE; > /* Returned value is the address of the last sector. */ > nb_sectors--; > /* Remember the new size for read/write sanity checking. */ > @@ -2049,7 +2051,7 @@ static int32_t scsi_disk_emulate_command(SCSIRequest > *req, uint8_t *buf) > if ((req->cmd.buf[14] & 1) == 0 && req->cmd.lba) { > goto illegal_request; > } > - nb_sectors /= s->qdev.blocksize / 512; > + nb_sectors /= s->qdev.blocksize / BDRV_SECTOR_SIZE; > /* Returned value is the address of the last sector. */ > nb_sectors--; > /* Remember the new size for read/write sanity checking. */ > @@ -2180,8 +2182,8 @@ static int32_t scsi_disk_dma_command(SCSIRequest *req, > uint8_t *buf) > if (!check_lba_range(s, r->req.cmd.lba, len)) { > goto illegal_lba; > } > - r->sector = r->req.cmd.lba * (s->qdev.blocksize / 512); > - r->sector_count = len * (s->qdev.blocksize / 512); > + r->sector = r->req.cmd.lba * (s->qdev.blocksize / BDRV_SECTOR_SIZE); > + r->sector_count = len * (s->qdev.blocksize / BDRV_SECTOR_SIZE); > break; > case WRITE_6: > case WRITE_10: > @@ -2211,8 +2213,8 @@ static int32_t scsi_disk_dma_command(SCSIRequest *req, > uint8_t *buf) > if (!check_lba_range(s, r->req.cmd.lba, len)) { > goto illegal_lba; > } > - r->sector = r->req.cmd.lba * (s->qdev.blocksize / 512); > - r->sector_count = len * (s->qdev.blocksize / 512); > + r->sector = r->req.cmd.lba * (s->qdev.blocksize / BDRV_SECTOR_SIZE); > + r->sector_count = len * (s->qdev.blocksize / BDRV_SECTOR_SIZE); > break; > default: > abort(); > @@ -2229,9 +2231,9 @@ static int32_t scsi_disk_dma_command(SCSIRequest *req, > uint8_t *buf) > } > assert(r->iov.iov_len == 0); > if (r->req.cmd.mode == SCSI_XFER_TO_DEV) { > - return -r->sector_count * 512; > + return -r->sector_count * BDRV_SECTOR_SIZE; > } else { > - return r->sector_count * 512; > + return r->sector_count * BDRV_SECTOR_SIZE; > } > } > > @@ -2243,7 +2245,7 @@ static void scsi_disk_reset(DeviceState *dev) > scsi_device_purge_requests(&s->qdev, SENSE_CODE(RESET)); > > blk_get_geometry(s->qdev.conf.blk, &nb_sectors); > - nb_sectors /= s->qdev.blocksize / 512; > + nb_sectors /= s->qdev.blocksize / BDRV_SECTOR_SIZE; > if (nb_sectors) { > nb_sectors--; > } > -- > 2.21.3 > >