• Sebastian Andrzej Siewior's avatar
    usb/uas: use scsi_host_find_tag() to find command from a tag · 22188f4a
    Sebastian Andrzej Siewior authored
    In "usb/uas: use unique tags for all LUNs" we make sure to create unique
    tags across all LUNs. This patch uses scsi_host_find_tag() to obtain the
    correct command which is associated with the tag.
    The following changes are required:
    - don't use sdev->current_cmnd anymore
      Since we can have devices which don't support command queueing we must
      ensure that we can tell the two commands apart. Even if a device
      supports comand queuing we send the INQUIRY command "untagged" for
      LUN1 while we can send a tagged command to LUN0 at the same time.
      devinfo->cmnd is used for stashing the one "untagged" command.
    - tag number is altered. If stream support is used then the tag number
      must match the stream number. Therefore we can't use tag 0 and must
      start at tag 1.
      In case we have untagged commands (at least the first command) we must
      be able to distinguish between command tag 0 (which becomes 1) and
      untagged command (which becomes curently also 1).
      The following tag numbers are used:
      0: never
      1: for untagged commands (devinfo->cmnd)
      2+: tagged commands.
    Signed-off-by: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
    22188f4a
uas.c 19.9 KB