Skip to content
  • Peter Maydell's avatar
    739e95f5
    scsi: Replace scsi_bus_new() with scsi_bus_init(), scsi_bus_init_named() · 739e95f5
    Peter Maydell authored
    
    
    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: default avatarPeter Maydell <peter.maydell@linaro.org>
    Reviewed-by: default avatarPhilippe Mathieu-Daudé <philmd@redhat.com>
    Reviewed-by: default avatarMichael S. Tsirkin <mst@redhat.com>
    Acked-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    Message-id: 20210923121153.23754-2-peter.maydell@linaro.org
    739e95f5
    scsi: Replace scsi_bus_new() with scsi_bus_init(), scsi_bus_init_named()
    Peter Maydell authored
    
    
    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: default avatarPeter Maydell <peter.maydell@linaro.org>
    Reviewed-by: default avatarPhilippe Mathieu-Daudé <philmd@redhat.com>
    Reviewed-by: default avatarMichael S. Tsirkin <mst@redhat.com>
    Acked-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    Message-id: 20210923121153.23754-2-peter.maydell@linaro.org
Loading