Skip to content
  • Stefan Richter's avatar
    firewire: sbp2: allow WRITE SAME and REPORT SUPPORTED OPERATION CODES · b0ea5f19
    Stefan Richter authored
    The commits
        3c6bdaea "[SCSI] Add a report opcode helper"
        5db44863
    
     "[SCSI] sd: Implement support for WRITE SAME"
    introduced in-kernel uses of the mentioned commands but cautiously
    blacklisted them for any IEEE 1394 (SBP-2/3) targets and some other
    transports.
    
    I looked through a range of SBP devices and found that the blacklist
    flags can be removed:
    
    The kernel never attempts these commands if the device's INQUIRY
    data claim a SCSI revision of less than 0x05.  This is the case with
    all SBP devices that I checked, except for three more recent devices
    which claimed a revision of 0x05 i.e. conformance with SPC-3 (two
    devices based on the OXUF936QSE chip but having different firmwares,
    one based on OXUF934DSB.)
    
    I tried "sg_opcodes" from sg3_utils on several older and newer devices
    and did not encounter any apparent firmware bugs with it.  All devices
    returned Illegal Request/ Invalid command operation code and carried on.
    I furthermore tried "sg_write_same -U" on the OXUF934DSB device with the
    same result.  Alas I did not have a TRIM enabled SSD available for these
    tests.  All of the bridges were correctly identified by the kernel as
    "fully provisioned", CD-ROM devices aside.
    
    The kernel won't issue WRITE SAME to fully provisioned devices, nor
    would it attempt REPORT SUPPORTED OPERATION CODES or WRITE SAME with
    UNMAP bit on devices which do not claim conformance to SPC-3 or later.
    
    Hence let's remove the no_report_opcodes and no_write_same blacklist
    flags so that these commands can be used on newer targets with
    respective capabilities.  I guess the Linux sbp-target could be such a
    target.
    
    Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
    b0ea5f19