Skip to content
  • Sarah Sharp's avatar
    UAS: Re-add workqueue items if submission fails. · ea9da1c7
    Sarah Sharp authored
    
    
    If the original submission (or allocation) of the URBs for a SCSI
    command fails, the UAS driver sticks the command structure in a
    workqueue and schedules uas_do_work() to run.  That function removes the
    entire queue before walking across it and attempting to resubmit.
    
    Unfortunately, if the second submission fails, we will leak memory
    (because an allocated URB was not submitted) and possibly leave the SCSI
    command partially enqueued on some of the stream rings.  Fix this by
    checking whether the second submission failed and re-queueing the
    command to the UAS workqueue and scheduling it.
    
    Signed-off-by: default avatarSarah Sharp <sarah.a.sharp@linux.intel.com>
    Cc: Matthew Wilcox <willy@linux.intel.com>
    Signed-off-by: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
    ea9da1c7