• Mike Christie's avatar
    scsi: target: usb: gadget: Convert to new submission API · 12340930
    Mike Christie authored
    target_submit_cmd() is now only for simple drivers that do their own sync
    during shutdown and do not use target_stop_session(). It will never return
    a failure, so we can remove that code from the driver.
    
    Note: Before these patches target_submit_cmd() would never return an error
    for usb since it does not use target_stop_session(). If it did then we
    would have hit a refcount error here:
    
        transport_send_check_condition_and_sense(se_cmd,
                                 TCM_UNSUPPORTED_SCSI_OPCODE, 1);
        transport_generic_free_cmd(&cmd->se_cmd, 0);
    
    transport_send_check_condition_and_sense() calls queue_status and the
    driver can sometimes do transport_generic_free_cmd() from there via
    uasp_status_data_cmpl(). In that case, the above
    transport_generic_free_cmd() would then hit a refcount error.
    
    So that other use of the above error path in the driver is also probably
    wrong, but someone with the hardware needs to fix that.
    
    Link: https://lore.kernel.org/r/20210227170006.5077-11-michael.christie@oracle.com
    Cc: Felipe Balbi <balbi@kernel.org>
    Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
    Signed-off-by: default avatarMike Christie <michael.christie@oracle.com>
    Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
    12340930
f_tcm.c 56.1 KB