]> git.proxmox.com Git - mirror_qemu.git/commit
scsi: Replace scsi_bus_new() with scsi_bus_init(), scsi_bus_init_named()
authorPeter Maydell <peter.maydell@linaro.org>
Thu, 23 Sep 2021 12:11:48 +0000 (13:11 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Thu, 30 Sep 2021 12:42:10 +0000 (13:42 +0100)
commit739e95f5741b8efd74331bb74b9446bcb5ede71e
treeae0706caf70760c30d5b88856f6a2377d6e51608
parentb355f08a3724d3f29e1c177dde3a01b649108f98
scsi: Replace scsi_bus_new() with scsi_bus_init(), scsi_bus_init_named()

The function scsi_bus_new() creates a new SCSI bus; callers can
either pass in a name argument to specify the name of the new bus, or
they can pass in NULL to allow the bus to be given an automatically
generated unique name.  Almost all callers want to use the
autogenerated name; the only exception is the virtio-scsi device.

Taking a name argument that should almost always be NULL is an
easy-to-misuse API design -- it encourages callers to think perhaps
they should pass in some standard name like "scsi" or "scsi-bus".  We
don't do this anywhere for SCSI, but we do (incorrectly) do it for
other bus types such as i2c.

The function name also implies that it will return a newly allocated
object, when it in fact does in-place allocation.  We more commonly
name such functions foo_init(), with foo_new() being the
allocate-and-return variant.

Replace all the scsi_bus_new() callsites with either:
 * scsi_bus_init() for the usual case where the caller wants
   an autogenerated bus name
 * scsi_bus_init_named() for the rare case where the caller
   needs to specify the bus name

and document that for the _named() version it's then the caller's
responsibility to think about uniqueness of bus names.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Message-id: 20210923121153.23754-2-peter.maydell@linaro.org
13 files changed:
hw/scsi/esp-pci.c
hw/scsi/esp.c
hw/scsi/lsi53c895a.c
hw/scsi/megasas.c
hw/scsi/mptsas.c
hw/scsi/scsi-bus.c
hw/scsi/spapr_vscsi.c
hw/scsi/virtio-scsi.c
hw/scsi/vmw_pvscsi.c
hw/usb/dev-storage-bot.c
hw/usb/dev-storage-classic.c
hw/usb/dev-uas.c
include/hw/scsi/scsi.h