mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
synced 2026-04-25 00:52:45 -04:00
scsi: scsi_debug: Reset tape setting at device reset
Set tape block size, density and compression to default values when the device is reset (either directly or via target, bus or host reset). Signed-off-by: Kai Mäkisara <Kai.Makisara@kolumbus.fi> Link: https://lore.kernel.org/r/20250213092636.2510-7-Kai.Makisara@kolumbus.fi Reviewed-by: John Meneghini <jmeneghi@redhat.com> Tested-by: John Meneghini <jmeneghi@redhat.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
committed by
Martin K. Petersen
parent
568354b24c
commit
862a5556b1
@@ -6772,6 +6772,20 @@ static int sdebug_fail_lun_reset(struct scsi_cmnd *cmnd)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void scsi_tape_reset_clear(struct sdebug_dev_info *devip)
|
||||
{
|
||||
if (sdebug_ptype == TYPE_TAPE) {
|
||||
int i;
|
||||
|
||||
devip->tape_blksize = TAPE_DEF_BLKSIZE;
|
||||
devip->tape_density = TAPE_DEF_DENSITY;
|
||||
devip->tape_partition = 0;
|
||||
devip->tape_dce = 0;
|
||||
for (i = 0; i < TAPE_MAX_PARTITIONS; i++)
|
||||
devip->tape_location[i] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
static int scsi_debug_device_reset(struct scsi_cmnd *SCpnt)
|
||||
{
|
||||
struct scsi_device *sdp = SCpnt->device;
|
||||
@@ -6785,8 +6799,10 @@ static int scsi_debug_device_reset(struct scsi_cmnd *SCpnt)
|
||||
sdev_printk(KERN_INFO, sdp, "%s\n", __func__);
|
||||
|
||||
scsi_debug_stop_all_queued(sdp);
|
||||
if (devip)
|
||||
if (devip) {
|
||||
set_bit(SDEBUG_UA_POR, devip->uas_bm);
|
||||
scsi_tape_reset_clear(devip);
|
||||
}
|
||||
|
||||
if (sdebug_fail_lun_reset(SCpnt)) {
|
||||
scmd_printk(KERN_INFO, SCpnt, "fail lun reset 0x%x\n", opcode);
|
||||
@@ -6824,6 +6840,7 @@ static int scsi_debug_target_reset(struct scsi_cmnd *SCpnt)
|
||||
list_for_each_entry(devip, &sdbg_host->dev_info_list, dev_list) {
|
||||
if (devip->target == sdp->id) {
|
||||
set_bit(SDEBUG_UA_BUS_RESET, devip->uas_bm);
|
||||
scsi_tape_reset_clear(devip);
|
||||
++k;
|
||||
}
|
||||
}
|
||||
@@ -6855,6 +6872,7 @@ static int scsi_debug_bus_reset(struct scsi_cmnd *SCpnt)
|
||||
|
||||
list_for_each_entry(devip, &sdbg_host->dev_info_list, dev_list) {
|
||||
set_bit(SDEBUG_UA_BUS_RESET, devip->uas_bm);
|
||||
scsi_tape_reset_clear(devip);
|
||||
++k;
|
||||
}
|
||||
|
||||
@@ -6878,6 +6896,7 @@ static int scsi_debug_host_reset(struct scsi_cmnd *SCpnt)
|
||||
list_for_each_entry(devip, &sdbg_host->dev_info_list,
|
||||
dev_list) {
|
||||
set_bit(SDEBUG_UA_BUS_RESET, devip->uas_bm);
|
||||
scsi_tape_reset_clear(devip);
|
||||
++k;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user