diff -rupN old/drivers/scsi/megaraid/megaraid_sas.c new/drivers/scsi/megaraid/megaraid_sas.c --- old/drivers/scsi/megaraid/megaraid_sas.c 2010-11-14 15:33:25.000000000 -0500 +++ new/drivers/scsi/megaraid/megaraid_sas.c 2010-11-14 15:34:00.000000000 -0500 @@ -1445,15 +1445,22 @@ static int megasas_slave_configure(struc * That will be fixed once LSI engineers have audited the * firmware for possible issues. */ - if (sdev->channel < MEGASAS_MAX_PD_CHANNELS && - sdev->type == TYPE_DISK) { - pd_index = (sdev->channel * MEGASAS_MAX_DEV_PER_CHANNEL) + - sdev->id; - if (instance->pd_list[pd_index].driveState == - MR_PD_STATE_SYSTEM) { + if (sdev->channel < MEGASAS_MAX_PD_CHANNELS) { + if (sdev->type == TYPE_TAPE) { blk_queue_rq_timeout(sdev->request_queue, MEGASAS_DEFAULT_CMD_TIMEOUT * HZ); return 0; + } else if (sdev->type == TYPE_DISK) { + pd_index = + (sdev->channel * MEGASAS_MAX_DEV_PER_CHANNEL) + sdev->id; + if ((instance->pd_list[pd_index].driveState == + MR_PD_STATE_SYSTEM) && + (instance->pd_list[pd_index].driveType == + TYPE_DISK)) { + blk_queue_rq_timeout(sdev->request_queue, + MEGASAS_DEFAULT_CMD_TIMEOUT * HZ); + return 0; + } } return -ENXIO; }