qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [QEMU] [PATCH v5 5/8] bootdevice: Gather LCHS from all


From: Max Reitz
Subject: Re: [Qemu-devel] [QEMU] [PATCH v5 5/8] bootdevice: Gather LCHS from all relevant devices
Date: Tue, 13 Aug 2019 21:05:54 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0

On 26.06.19 14:39, Sam Eiderman wrote:
> Relevant devices are:
>     * ide-hd (and ide-cd, ide-drive)
>     * scsi-hd (and scsi-cd, scsi-disk, scsi-block)
>     * virtio-blk-pci
> 
> We do not call del_boot_device_lchs() for ide-* since we don't need to -
> IDE block devices do not support unplugging.
> 
> Reviewed-by: Karl Heubaum <address@hidden>
> Reviewed-by: Arbel Moshe <address@hidden>
> Signed-off-by: Sam Eiderman <address@hidden>
> ---
>  hw/block/virtio-blk.c |  6 ++++++
>  hw/ide/qdev.c         |  5 +++++
>  hw/scsi/scsi-disk.c   | 14 ++++++++++++++
>  3 files changed, 25 insertions(+)
> 
> diff --git a/hw/block/virtio-blk.c b/hw/block/virtio-blk.c
> index 06e57a4d39..787bbd768a 100644
> --- a/hw/block/virtio-blk.c
> +++ b/hw/block/virtio-blk.c
> @@ -1182,6 +1182,11 @@ static void virtio_blk_device_realize(DeviceState 
> *dev, Error **errp)
>      blk_set_guest_block_size(s->blk, s->conf.conf.logical_block_size);
>  
>      blk_iostatus_enable(s->blk);
> +
> +    add_boot_device_lchs(dev, "/disk@0,0",
> +                         (&conf->conf)->lcyls,
> +                         (&conf->conf)->lheads,
> +                         (&conf->conf)->lsecs);

...why not simply “conf->conf.lcyls” and so on?

[...]

> diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c
> index 7b89ac798b..3451aefdea 100644
> --- a/hw/scsi/scsi-disk.c
> +++ b/hw/scsi/scsi-disk.c

[...]

> @@ -2988,6 +2998,7 @@ static void scsi_hd_class_initfn(ObjectClass *klass, 
> void *data)
>      SCSIDeviceClass *sc = SCSI_DEVICE_CLASS(klass);
>  
>      sc->realize      = scsi_hd_realize;
> +    sc->unrealize    = scsi_unrealize;
>      sc->alloc_req    = scsi_new_request;
>      sc->unit_attention_reported = scsi_disk_unit_attention_reported;
>      dc->desc = "virtual SCSI disk";
> @@ -3019,6 +3030,7 @@ static void scsi_cd_class_initfn(ObjectClass *klass, 
> void *data)
>      SCSIDeviceClass *sc = SCSI_DEVICE_CLASS(klass);
>  
>      sc->realize      = scsi_cd_realize;
> +    sc->unrealize    = scsi_unrealize;
>      sc->alloc_req    = scsi_new_request;
>      sc->unit_attention_reported = scsi_disk_unit_attention_reported;
>      dc->desc = "virtual SCSI CD-ROM";
> @@ -3054,6 +3066,7 @@ static void scsi_block_class_initfn(ObjectClass *klass, 
> void *data)
>      SCSIDiskClass *sdc = SCSI_DISK_BASE_CLASS(klass);
>  
>      sc->realize      = scsi_block_realize;
> +    sc->unrealize    = scsi_unrealize;
>      sc->alloc_req    = scsi_block_new_request;
>      sc->parse_cdb    = scsi_block_parse_cdb;
>      sdc->dma_readv   = scsi_block_dma_readv;
> @@ -3095,6 +3108,7 @@ static void scsi_disk_class_initfn(ObjectClass *klass, 
> void *data)
>      SCSIDeviceClass *sc = SCSI_DEVICE_CLASS(klass);
>  
>      sc->realize      = scsi_disk_realize;
> +    sc->unrealize    = scsi_unrealize;
>      sc->alloc_req    = scsi_new_request;
>      sc->unit_attention_reported = scsi_disk_unit_attention_reported;
>      dc->fw_name = "disk";

Only scsi-hd has the lchs properties, though, so what’s the purpose of
defining the unrealize function for all other classes?

Max

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]