• Nicholas Bellinger's avatar
    target/pscsi: Fix TYPE_TAPE + TYPE_MEDIMUM_CHANGER export · 452c3c92
    Nicholas Bellinger authored
    [ Upstream commit a04e54f2 ]
    
    The following fixes a divide by zero OOPs with TYPE_TAPE
    due to pscsi_tape_read_blocksize() failing causing a zero
    sd->sector_size being propigated up via dev_attrib.hw_block_size.
    
    It also fixes another long-standing bug where TYPE_TAPE and
    TYPE_MEDIMUM_CHANGER where using pscsi_create_type_other(),
    which does not call scsi_device_get() to take the device
    reference.  Instead, rename pscsi_create_type_rom() to
    pscsi_create_type_nondisk() and use it for all cases.
    
    Finally, also drop a dump_stack() in pscsi_get_blocks() for
    non TYPE_DISK, which in modern target-core can get invoked
    via target_sense_desc_format() during CHECK_CONDITION.
    Reported-by: default avatarMalcolm Haak <insanemal@gmail.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
    Signed-off-by: default avatarSasha Levin <alexander.levin@verizon.com>
    452c3c92
target_core_pscsi.c 29 KB