All of lore.kernel.org
 help / color / mirror / Atom feed
From: Markus Armbruster <armbru@redhat.com>
To: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Cc: Kevin Wolf <kwolf@redhat.com>,
	qemu-devel@nongnu.org, "Justin M. Forbes" <jforbes@redhat.com>,
	Christoph Hellwig <hch@lst.de>
Subject: Re: [Qemu-devel] [PATCH v3 2/4] scsi: Allow SCSI devices to override the removable bit
Date: Fri, 21 Jan 2011 18:26:14 +0100	[thread overview]
Message-ID: <m31v465ft5.fsf@blackfin.pond.sub.org> (raw)
In-Reply-To: <1295607609-21091-3-git-send-email-stefanha@linux.vnet.ibm.com> (Stefan Hajnoczi's message of "Fri, 21 Jan 2011 11:00:07 +0000")

Stefan Hajnoczi <stefanha@linux.vnet.ibm.com> writes:

> Some SCSI devices may wish to override the removable bit.  Add support
> for a qdev property on the SCSI device.

I find this description a bit misleading.  The qdev property is added in
1/4.  Here, you merely extend scsi_bus_legacy_add_drive() to provide
access to it.  Its primary users (-drive if=scsi & friends) don't use
that access.  But there's another user: usb_msd_initfn()[*], and 3/4
will make that one use the access.

I guess I'd squash 2+3 together, but that's strictly a matter of taste.

>
> Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
> ---
>  hw/pci-hotplug.c |    2 +-
>  hw/scsi-bus.c    |    8 ++++++--
>  hw/scsi.h        |    3 ++-
>  hw/usb-msd.c     |    2 +-
>  4 files changed, 10 insertions(+), 5 deletions(-)
>
> diff --git a/hw/pci-hotplug.c b/hw/pci-hotplug.c
> index 716133c..270a982 100644
> --- a/hw/pci-hotplug.c
> +++ b/hw/pci-hotplug.c
> @@ -90,7 +90,7 @@ static int scsi_hot_add(Monitor *mon, DeviceState *adapter,
>       * specified).
>       */
>      dinfo->unit = qemu_opt_get_number(dinfo->opts, "unit", -1);
> -    scsidev = scsi_bus_legacy_add_drive(scsibus, dinfo->bdrv, dinfo->unit);
> +    scsidev = scsi_bus_legacy_add_drive(scsibus, dinfo->bdrv, dinfo->unit, false);
>      if (!scsidev) {
>          return -1;
>      }
> diff --git a/hw/scsi-bus.c b/hw/scsi-bus.c
> index 7febb86..ceeb4ec 100644
> --- a/hw/scsi-bus.c
> +++ b/hw/scsi-bus.c
> @@ -87,7 +87,8 @@ void scsi_qdev_register(SCSIDeviceInfo *info)
>  }
>  
>  /* handle legacy '-drive if=scsi,...' cmd line args */
> -SCSIDevice *scsi_bus_legacy_add_drive(SCSIBus *bus, BlockDriverState *bdrv, int unit)
> +SCSIDevice *scsi_bus_legacy_add_drive(SCSIBus *bus, BlockDriverState *bdrv,
> +                                      int unit, bool removable)
>  {
>      const char *driver;
>      DeviceState *dev;
> @@ -95,6 +96,9 @@ SCSIDevice *scsi_bus_legacy_add_drive(SCSIBus *bus, BlockDriverState *bdrv, int
>      driver = bdrv_is_sg(bdrv) ? "scsi-generic" : "scsi-disk";
>      dev = qdev_create(&bus->qbus, driver);
>      qdev_prop_set_uint32(dev, "scsi-id", unit);
> +    if (qdev_prop_exists(dev, "removable")) {

Isn't this just a funky way to check for "scsi-disk"?

Removable gets silently ignored for -device usb-storage with a scsi
generic drive.  Worth nothing in 4/4.

> +        qdev_prop_set_bit(dev, "removable", removable);
> +    }
>      if (qdev_prop_set_drive(dev, "drive", bdrv) < 0) {
>          qdev_free(dev);
>          return NULL;
> @@ -117,7 +121,7 @@ int scsi_bus_legacy_handle_cmdline(SCSIBus *bus)
>              continue;
>          }
>          qemu_opts_loc_restore(dinfo->opts);
> -        if (!scsi_bus_legacy_add_drive(bus, dinfo->bdrv, unit)) {
> +        if (!scsi_bus_legacy_add_drive(bus, dinfo->bdrv, unit, false)) {
>              res = -1;
>              break;
>          }
[...]


[*] I hate that usb_msd_initfn() uses scsi_bus_legacy_add_drive().
Actually, I hate pretty much everything about usb-msd.c.  But it's not
your fault.

  reply	other threads:[~2011-01-21 17:28 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-01-21 11:00 [Qemu-devel] [PATCH v3 0/4] usb-msd: Add usb-storage, removable=on|off property Stefan Hajnoczi
2011-01-21 11:00 ` [Qemu-devel] [PATCH v3 1/4] scsi-disk: Allow overriding SCSI INQUIRY removable bit Stefan Hajnoczi
2011-01-21 11:00 ` [Qemu-devel] [PATCH v3 2/4] scsi: Allow SCSI devices to override the " Stefan Hajnoczi
2011-01-21 17:26   ` Markus Armbruster [this message]
2011-01-24 14:47     ` Stefan Hajnoczi
2011-01-21 11:00 ` [Qemu-devel] [PATCH v3 3/4] usb-msd: Propagate removable bit to SCSI device Stefan Hajnoczi
2011-01-21 11:00 ` [Qemu-devel] [PATCH v3 4/4] docs: Document scsi-disk and usb-storage removable parameter Stefan Hajnoczi
2011-01-21 12:28 ` [Qemu-devel] Re: [PATCH v3 0/4] usb-msd: Add usb-storage, removable=on|off property Kevin Wolf

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m31v465ft5.fsf@blackfin.pond.sub.org \
    --to=armbru@redhat.com \
    --cc=hch@lst.de \
    --cc=jforbes@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@linux.vnet.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.