]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
target/pscsi: Fix TYPE_TAPE + TYPE_MEDIMUM_CHANGER export
authorNicholas Bellinger <nab@linux-iscsi.org>
Fri, 4 Nov 2016 06:06:53 +0000 (23:06 -0700)
committerWilly Tarreau <w@1wt.eu>
Tue, 20 Jun 2017 12:03:22 +0000 (14:03 +0200)
commit22e0bbbc6f30e61aa735f59f738caadf3c9784af
treefee84194494f21d1b7edf7842e0e8cc2c871c66f
parentd49e93f927b14e1ac95aaa5847ee1175b177a07c
target/pscsi: Fix TYPE_TAPE + TYPE_MEDIMUM_CHANGER export

commit a04e54f2c35823ca32d56afcd5cea5b783e2f51a upstream.

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.

[js] cast max_sectors to unsigned to avoid warnings

Reported-by: Malcolm Haak <insanemal@gmail.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Signed-off-by: Willy Tarreau <w@1wt.eu>
drivers/target/target_core_pscsi.c