@@ -2317,7 +2317,7 @@ scsi_mode_sense(struct scsi_device *sdev, int dbd, int modepage,
unsigned char cmd[12];
int use_10_for_ms;
int header_length;
- int result, retry_count = retries;
+ int result;
struct scsi_sense_hdr my_sshdr;
memset(data, 0, sizeof(*data));
@@ -2396,11 +2396,6 @@ scsi_mode_sense(struct scsi_device *sdev, int dbd, int modepage,
data->block_descriptor_length = buffer[3];
}
data->header_length = header_length;
- } else if ((status_byte(result) == CHECK_CONDITION) &&
- scsi_sense_valid(sshdr) &&
- sshdr->sense_key == UNIT_ATTENTION && retry_count) {
- retry_count--;
- goto retry;
}
return result;
@@ -2434,15 +2429,11 @@ scsi_test_unit_ready(struct scsi_device *sdev, int timeout, int retries,
else
sshdr = sshdr_external;
- /* try to eat the UNIT_ATTENTION if there are enough retries */
- do {
- result = scsi_execute_req(sdev, cmd, DMA_NONE, NULL, 0, sshdr,
- timeout, retries, NULL);
- if (sdev->removable && scsi_sense_valid(sshdr) &&
- sshdr->sense_key == UNIT_ATTENTION)
- sdev->changed = 1;
- } while (scsi_sense_valid(sshdr) &&
- sshdr->sense_key == UNIT_ATTENTION && --retries);
+ result = scsi_execute_req(sdev, cmd, DMA_NONE, NULL, 0, sshdr,
+ timeout, retries, NULL);
+ if (sdev->removable && scsi_sense_valid(sshdr) &&
+ sshdr->sense_key == UNIT_ATTENTION)
+ sdev->changed = 1;
if (!sshdr_external)
kfree(sshdr);
@@ -179,8 +179,8 @@ static int sr_play_trkind(struct cdrom_device_info *cdi,
}
/* We do our own retries because we want to know what the specific
- error code is. Normally the UNIT_ATTENTION code will automatically
- clear after one error */
+ error code is.
+*/
int sr_do_ioctl(Scsi_CD *cd, struct packet_command *cgc)
{
@@ -220,8 +220,6 @@ int sr_do_ioctl(Scsi_CD *cd, struct packet_command *cgc)
if (!cgc->quiet)
sr_printk(KERN_INFO, cd,
"disc change detected.\n");
- if (retries++ < 10)
- goto retry;
err = -ENOMEDIUM;
break;
case NOT_READY: /* This happens if there is no disc in drive */
These custom handling are no longer necessary, since we always retry UA in scsi_execute now. Signed-off-by: Gabriel Krisman Bertazi <krisman@linux.vnet.ibm.com> --- drivers/scsi/scsi_lib.c | 21 ++++++--------------- drivers/scsi/sr_ioctl.c | 6 ++---- 2 files changed, 8 insertions(+), 19 deletions(-)