• Nicholas Bellinger's avatar
    target: Add workaround for zero-length control CDB handling · 91ec1d35
    Nicholas Bellinger authored
    This patch adds a work-around for handling zero allocation length
    control CDBs (type SCF_SCSI_CONTROL_SG_IO_CDB) that was causing an
    OOPs with the following raw calls:
    
       # sg_raw -v /dev/sdd 3 0 0 0 0 0
       # sg_raw -v /dev/sdd 0x1a 0 1 0 0 0
    
    This patch will follow existing zero-length handling for data I/O
    and silently return with GOOD status.  This addresses the zero length
    issue, but the proper long-term resolution for handling arbitary
    allocation lengths will be to refactor out data-phase handling in
    individual CDB emulation logic within target_core_cdb.c
    Reported-by: default avatarRoland Dreier <roland@purestorage.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
    91ec1d35
target_core_transport.c 130 KB