• Hans de Goede's avatar
    uas: Fix memory management · 21fc05b6
    Hans de Goede authored
    The scsi-host structure is refcounted, scsi_remove_host tears down the
    scsi-host but does not decrement the refcount, so we need to call
    scsi_put_host on disconnect to get the underlying memory to be freed.
    After calling scsi_remove_host, the scsi-core may still hold a reference to
    the scsi-host, iow we may still get called after uas_disconnect, but we
    do our own life cycle management of uas_devinfo, freeing it on disconnect,
    and thus may end up using devinfo after it has been freed. Switch to letting
    scsi_host_alloc allocate and manage the memory for us.
    Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
    Signed-off-by: default avatarSarah Sharp <sarah.a.sharp@linux.intel.com>
uas.c 32.5 KB