diff options
Diffstat (limited to 'drivers/scsi')
| -rw-r--r-- | drivers/scsi/aacraid/linit.c | 4 | ||||
| -rw-r--r-- | drivers/scsi/advansys.c | 4 | ||||
| -rw-r--r-- | drivers/scsi/device_handler/scsi_dh_hp_sw.c | 12 | ||||
| -rw-r--r-- | drivers/scsi/dpt_i2o.c | 4 | ||||
| -rw-r--r-- | drivers/scsi/gdth.c | 12 | ||||
| -rw-r--r-- | drivers/scsi/ibmvscsi/ibmvscsi.c | 2 | ||||
| -rw-r--r-- | drivers/scsi/megaraid.c | 11 | ||||
| -rw-r--r-- | drivers/scsi/megaraid.h | 2 | ||||
| -rw-r--r-- | drivers/scsi/megaraid/megaraid_sas.c | 3 | ||||
| -rw-r--r-- | drivers/scsi/qla2xxx/qla_def.h | 1 | ||||
| -rw-r--r-- | drivers/scsi/qla2xxx/qla_init.c | 26 | ||||
| -rw-r--r-- | drivers/scsi/qla2xxx/qla_mbx.c | 2 | ||||
| -rw-r--r-- | drivers/scsi/qla2xxx/qla_os.c | 1 | ||||
| -rw-r--r-- | drivers/scsi/qla2xxx/qla_sup.c | 19 | ||||
| -rw-r--r-- | drivers/scsi/qla2xxx/qla_version.h | 2 | ||||
| -rw-r--r-- | drivers/scsi/scsi_error.c | 8 | ||||
| -rw-r--r-- | drivers/scsi/scsi_lib.c | 23 | ||||
| -rw-r--r-- | drivers/scsi/sd.c | 2 | ||||
| -rw-r--r-- | drivers/scsi/sr.c | 2 | ||||
| -rw-r--r-- | drivers/scsi/stex.c | 2 |
20 files changed, 67 insertions, 75 deletions
diff --git a/drivers/scsi/aacraid/linit.c b/drivers/scsi/aacraid/linit.c index 9aa301c1ed07..162cd927d94b 100644 --- a/drivers/scsi/aacraid/linit.c +++ b/drivers/scsi/aacraid/linit.c | |||
| @@ -427,8 +427,8 @@ static int aac_slave_configure(struct scsi_device *sdev) | |||
| 427 | * Firmware has an individual device recovery time typically | 427 | * Firmware has an individual device recovery time typically |
| 428 | * of 35 seconds, give us a margin. | 428 | * of 35 seconds, give us a margin. |
| 429 | */ | 429 | */ |
| 430 | if (sdev->timeout < (45 * HZ)) | 430 | if (sdev->request_queue->rq_timeout < (45 * HZ)) |
| 431 | sdev->timeout = 45 * HZ; | 431 | blk_queue_rq_timeout(sdev->request_queue, 45*HZ); |
| 432 | for (cid = 0; cid < aac->maximum_num_containers; ++cid) | 432 | for (cid = 0; cid < aac->maximum_num_containers; ++cid) |
| 433 | if (aac->fsa_dev[cid].valid) | 433 | if (aac->fsa_dev[cid].valid) |
| 434 | ++num_lsu; | 434 | ++num_lsu; |
diff --git a/drivers/scsi/advansys.c b/drivers/scsi/advansys.c index 218777bfc143..399fe559e4de 100644 --- a/drivers/scsi/advansys.c +++ b/drivers/scsi/advansys.c | |||
| @@ -13872,8 +13872,10 @@ static int __devinit advansys_board_found(struct Scsi_Host *shost, | |||
| 13872 | advansys_wide_free_mem(boardp); | 13872 | advansys_wide_free_mem(boardp); |
| 13873 | free_irq(boardp->irq, shost); | 13873 | free_irq(boardp->irq, shost); |
| 13874 | err_free_dma: | 13874 | err_free_dma: |
| 13875 | #ifdef CONFIG_ISA | ||
| 13875 | if (shost->dma_channel != NO_ISA_DMA) | 13876 | if (shost->dma_channel != NO_ISA_DMA) |
| 13876 | free_dma(shost->dma_channel); | 13877 | free_dma(shost->dma_channel); |
| 13878 | #endif | ||
| 13877 | err_free_proc: | 13879 | err_free_proc: |
| 13878 | kfree(boardp->prtbuf); | 13880 | kfree(boardp->prtbuf); |
| 13879 | err_unmap: | 13881 | err_unmap: |
| @@ -13894,10 +13896,12 @@ static int advansys_release(struct Scsi_Host *shost) | |||
| 13894 | ASC_DBG(1, "begin\n"); | 13896 | ASC_DBG(1, "begin\n"); |
| 13895 | scsi_remove_host(shost); | 13897 | scsi_remove_host(shost); |
| 13896 | free_irq(board->irq, shost); | 13898 | free_irq(board->irq, shost); |
| 13899 | #ifdef CONFIG_ISA | ||
| 13897 | if (shost->dma_channel != NO_ISA_DMA) { | 13900 | if (shost->dma_channel != NO_ISA_DMA) { |
| 13898 | ASC_DBG(1, "free_dma()\n"); | 13901 | ASC_DBG(1, "free_dma()\n"); |
| 13899 | free_dma(shost->dma_channel); | 13902 | free_dma(shost->dma_channel); |
| 13900 | } | 13903 | } |
| 13904 | #endif | ||
| 13901 | if (ASC_NARROW_BOARD(board)) { | 13905 | if (ASC_NARROW_BOARD(board)) { |
| 13902 | dma_unmap_single(board->dev, | 13906 | dma_unmap_single(board->dev, |
| 13903 | board->dvc_var.asc_dvc_var.overrun_dma, | 13907 | board->dvc_var.asc_dvc_var.overrun_dma, |
diff --git a/drivers/scsi/device_handler/scsi_dh_hp_sw.c b/drivers/scsi/device_handler/scsi_dh_hp_sw.c index 9aec4ca64e56..f7da7530875e 100644 --- a/drivers/scsi/device_handler/scsi_dh_hp_sw.c +++ b/drivers/scsi/device_handler/scsi_dh_hp_sw.c | |||
| @@ -107,6 +107,7 @@ static int hp_sw_tur(struct scsi_device *sdev, struct hp_sw_dh_data *h) | |||
| 107 | struct request *req; | 107 | struct request *req; |
| 108 | int ret; | 108 | int ret; |
| 109 | 109 | ||
| 110 | retry: | ||
| 110 | req = blk_get_request(sdev->request_queue, WRITE, GFP_NOIO); | 111 | req = blk_get_request(sdev->request_queue, WRITE, GFP_NOIO); |
| 111 | if (!req) | 112 | if (!req) |
| 112 | return SCSI_DH_RES_TEMP_UNAVAIL; | 113 | return SCSI_DH_RES_TEMP_UNAVAIL; |
| @@ -121,7 +122,6 @@ static int hp_sw_tur(struct scsi_device *sdev, struct hp_sw_dh_data *h) | |||
| 121 | memset(req->sense, 0, SCSI_SENSE_BUFFERSIZE); | 122 | memset(req->sense, 0, SCSI_SENSE_BUFFERSIZE); |
| 122 | req->sense_len = 0; | 123 | req->sense_len = 0; |
| 123 | 124 | ||
| 124 | retry: | ||
| 125 | ret = blk_execute_rq(req->q, NULL, req, 1); | 125 | ret = blk_execute_rq(req->q, NULL, req, 1); |
| 126 | if (ret == -EIO) { | 126 | if (ret == -EIO) { |
| 127 | if (req->sense_len > 0) { | 127 | if (req->sense_len > 0) { |
| @@ -136,8 +136,10 @@ retry: | |||
| 136 | h->path_state = HP_SW_PATH_ACTIVE; | 136 | h->path_state = HP_SW_PATH_ACTIVE; |
| 137 | ret = SCSI_DH_OK; | 137 | ret = SCSI_DH_OK; |
| 138 | } | 138 | } |
| 139 | if (ret == SCSI_DH_IMM_RETRY) | 139 | if (ret == SCSI_DH_IMM_RETRY) { |
| 140 | blk_put_request(req); | ||
| 140 | goto retry; | 141 | goto retry; |
| 142 | } | ||
| 141 | if (ret == SCSI_DH_DEV_OFFLINED) { | 143 | if (ret == SCSI_DH_DEV_OFFLINED) { |
| 142 | h->path_state = HP_SW_PATH_PASSIVE; | 144 | h->path_state = HP_SW_PATH_PASSIVE; |
| 143 | ret = SCSI_DH_OK; | 145 | ret = SCSI_DH_OK; |
| @@ -200,6 +202,7 @@ static int hp_sw_start_stop(struct scsi_device *sdev, struct hp_sw_dh_data *h) | |||
| 200 | struct request *req; | 202 | struct request *req; |
| 201 | int ret, retry; | 203 | int ret, retry; |
| 202 | 204 | ||
| 205 | retry: | ||
| 203 | req = blk_get_request(sdev->request_queue, WRITE, GFP_NOIO); | 206 | req = blk_get_request(sdev->request_queue, WRITE, GFP_NOIO); |
| 204 | if (!req) | 207 | if (!req) |
| 205 | return SCSI_DH_RES_TEMP_UNAVAIL; | 208 | return SCSI_DH_RES_TEMP_UNAVAIL; |
| @@ -216,7 +219,6 @@ static int hp_sw_start_stop(struct scsi_device *sdev, struct hp_sw_dh_data *h) | |||
| 216 | req->sense_len = 0; | 219 | req->sense_len = 0; |
| 217 | retry = h->retries; | 220 | retry = h->retries; |
| 218 | 221 | ||
| 219 | retry: | ||
| 220 | ret = blk_execute_rq(req->q, NULL, req, 1); | 222 | ret = blk_execute_rq(req->q, NULL, req, 1); |
| 221 | if (ret == -EIO) { | 223 | if (ret == -EIO) { |
| 222 | if (req->sense_len > 0) { | 224 | if (req->sense_len > 0) { |
| @@ -231,8 +233,10 @@ retry: | |||
| 231 | ret = SCSI_DH_OK; | 233 | ret = SCSI_DH_OK; |
| 232 | 234 | ||
| 233 | if (ret == SCSI_DH_RETRY) { | 235 | if (ret == SCSI_DH_RETRY) { |
| 234 | if (--retry) | 236 | if (--retry) { |
| 237 | blk_put_request(req); | ||
| 235 | goto retry; | 238 | goto retry; |
| 239 | } | ||
| 236 | ret = SCSI_DH_IO; | 240 | ret = SCSI_DH_IO; |
| 237 | } | 241 | } |
| 238 | 242 | ||
diff --git a/drivers/scsi/dpt_i2o.c b/drivers/scsi/dpt_i2o.c index 8aba4fdfb522..6194ed5d02c4 100644 --- a/drivers/scsi/dpt_i2o.c +++ b/drivers/scsi/dpt_i2o.c | |||
| @@ -2445,7 +2445,7 @@ static s32 adpt_i2o_to_scsi(void __iomem *reply, struct scsi_cmnd* cmd) | |||
| 2445 | hba_status = detailed_status >> 8; | 2445 | hba_status = detailed_status >> 8; |
| 2446 | 2446 | ||
| 2447 | // calculate resid for sg | 2447 | // calculate resid for sg |
| 2448 | scsi_set_resid(cmd, scsi_bufflen(cmd) - readl(reply+5)); | 2448 | scsi_set_resid(cmd, scsi_bufflen(cmd) - readl(reply+20)); |
| 2449 | 2449 | ||
| 2450 | pHba = (adpt_hba*) cmd->device->host->hostdata[0]; | 2450 | pHba = (adpt_hba*) cmd->device->host->hostdata[0]; |
| 2451 | 2451 | ||
| @@ -2456,7 +2456,7 @@ static s32 adpt_i2o_to_scsi(void __iomem *reply, struct scsi_cmnd* cmd) | |||
| 2456 | case I2O_SCSI_DSC_SUCCESS: | 2456 | case I2O_SCSI_DSC_SUCCESS: |
| 2457 | cmd->result = (DID_OK << 16); | 2457 | cmd->result = (DID_OK << 16); |
| 2458 | // handle underflow | 2458 | // handle underflow |
| 2459 | if(readl(reply+5) < cmd->underflow ) { | 2459 | if (readl(reply+20) < cmd->underflow) { |
| 2460 | cmd->result = (DID_ERROR <<16); | 2460 | cmd->result = (DID_ERROR <<16); |
| 2461 | printk(KERN_WARNING"%s: SCSI CMD underflow\n",pHba->name); | 2461 | printk(KERN_WARNING"%s: SCSI CMD underflow\n",pHba->name); |
| 2462 | } | 2462 | } |
diff --git a/drivers/scsi/gdth.c b/drivers/scsi/gdth.c index c387c15a2128..fb247fdfa2bd 100644 --- a/drivers/scsi/gdth.c +++ b/drivers/scsi/gdth.c | |||
| @@ -588,7 +588,7 @@ static struct pci_driver gdth_pci_driver = { | |||
| 588 | .remove = gdth_pci_remove_one, | 588 | .remove = gdth_pci_remove_one, |
| 589 | }; | 589 | }; |
| 590 | 590 | ||
| 591 | static void gdth_pci_remove_one(struct pci_dev *pdev) | 591 | static void __devexit gdth_pci_remove_one(struct pci_dev *pdev) |
| 592 | { | 592 | { |
| 593 | gdth_ha_str *ha = pci_get_drvdata(pdev); | 593 | gdth_ha_str *ha = pci_get_drvdata(pdev); |
| 594 | 594 | ||
| @@ -600,7 +600,7 @@ static void gdth_pci_remove_one(struct pci_dev *pdev) | |||
| 600 | pci_disable_device(pdev); | 600 | pci_disable_device(pdev); |
| 601 | } | 601 | } |
| 602 | 602 | ||
| 603 | static int gdth_pci_init_one(struct pci_dev *pdev, | 603 | static int __devinit gdth_pci_init_one(struct pci_dev *pdev, |
| 604 | const struct pci_device_id *ent) | 604 | const struct pci_device_id *ent) |
| 605 | { | 605 | { |
| 606 | ushort vendor = pdev->vendor; | 606 | ushort vendor = pdev->vendor; |
| @@ -853,7 +853,7 @@ static int __init gdth_init_isa(ulong32 bios_adr,gdth_ha_str *ha) | |||
| 853 | #endif /* CONFIG_ISA */ | 853 | #endif /* CONFIG_ISA */ |
| 854 | 854 | ||
| 855 | #ifdef CONFIG_PCI | 855 | #ifdef CONFIG_PCI |
| 856 | static int gdth_init_pci(struct pci_dev *pdev, gdth_pci_str *pcistr, | 856 | static int __devinit gdth_init_pci(struct pci_dev *pdev, gdth_pci_str *pcistr, |
| 857 | gdth_ha_str *ha) | 857 | gdth_ha_str *ha) |
| 858 | { | 858 | { |
| 859 | register gdt6_dpram_str __iomem *dp6_ptr; | 859 | register gdt6_dpram_str __iomem *dp6_ptr; |
| @@ -1237,7 +1237,7 @@ static int gdth_init_pci(struct pci_dev *pdev, gdth_pci_str *pcistr, | |||
| 1237 | 1237 | ||
| 1238 | /* controller protocol functions */ | 1238 | /* controller protocol functions */ |
| 1239 | 1239 | ||
| 1240 | static void __init gdth_enable_int(gdth_ha_str *ha) | 1240 | static void __devinit gdth_enable_int(gdth_ha_str *ha) |
| 1241 | { | 1241 | { |
| 1242 | ulong flags; | 1242 | ulong flags; |
| 1243 | gdt2_dpram_str __iomem *dp2_ptr; | 1243 | gdt2_dpram_str __iomem *dp2_ptr; |
| @@ -1553,7 +1553,7 @@ static int gdth_internal_cmd(gdth_ha_str *ha, unchar service, ushort opcode, | |||
| 1553 | 1553 | ||
| 1554 | /* search for devices */ | 1554 | /* search for devices */ |
| 1555 | 1555 | ||
| 1556 | static int __init gdth_search_drives(gdth_ha_str *ha) | 1556 | static int __devinit gdth_search_drives(gdth_ha_str *ha) |
| 1557 | { | 1557 | { |
| 1558 | ushort cdev_cnt, i; | 1558 | ushort cdev_cnt, i; |
| 1559 | int ok; | 1559 | int ok; |
| @@ -4935,7 +4935,7 @@ static int __init gdth_eisa_probe_one(ushort eisa_slot) | |||
| 4935 | #endif /* CONFIG_EISA */ | 4935 | #endif /* CONFIG_EISA */ |
| 4936 | 4936 | ||
| 4937 | #ifdef CONFIG_PCI | 4937 | #ifdef CONFIG_PCI |
| 4938 | static int gdth_pci_probe_one(gdth_pci_str *pcistr, | 4938 | static int __devinit gdth_pci_probe_one(gdth_pci_str *pcistr, |
| 4939 | gdth_ha_str **ha_out) | 4939 | gdth_ha_str **ha_out) |
| 4940 | { | 4940 | { |
| 4941 | struct Scsi_Host *shp; | 4941 | struct Scsi_Host *shp; |
diff --git a/drivers/scsi/ibmvscsi/ibmvscsi.c b/drivers/scsi/ibmvscsi/ibmvscsi.c index 87e09f35d3d4..6cad1758243a 100644 --- a/drivers/scsi/ibmvscsi/ibmvscsi.c +++ b/drivers/scsi/ibmvscsi/ibmvscsi.c | |||
| @@ -1442,7 +1442,7 @@ static int ibmvscsi_slave_configure(struct scsi_device *sdev) | |||
| 1442 | spin_lock_irqsave(shost->host_lock, lock_flags); | 1442 | spin_lock_irqsave(shost->host_lock, lock_flags); |
| 1443 | if (sdev->type == TYPE_DISK) { | 1443 | if (sdev->type == TYPE_DISK) { |
| 1444 | sdev->allow_restart = 1; | 1444 | sdev->allow_restart = 1; |
| 1445 | sdev->timeout = 60 * HZ; | 1445 | blk_queue_rq_timeout(sdev->request_queue, 60 * HZ); |
| 1446 | } | 1446 | } |
| 1447 | scsi_adjust_queue_depth(sdev, 0, shost->cmd_per_lun); | 1447 | scsi_adjust_queue_depth(sdev, 0, shost->cmd_per_lun); |
| 1448 | spin_unlock_irqrestore(shost->host_lock, lock_flags); | 1448 | spin_unlock_irqrestore(shost->host_lock, lock_flags); |
diff --git a/drivers/scsi/megaraid.c b/drivers/scsi/megaraid.c index 28c9da7d4a5c..7dc62deb4087 100644 --- a/drivers/scsi/megaraid.c +++ b/drivers/scsi/megaraid.c | |||
| @@ -4402,6 +4402,10 @@ mega_internal_command(adapter_t *adapter, megacmd_t *mc, mega_passthru *pthru) | |||
| 4402 | scb_t *scb; | 4402 | scb_t *scb; |
| 4403 | int rval; | 4403 | int rval; |
| 4404 | 4404 | ||
| 4405 | scmd = scsi_allocate_command(GFP_KERNEL); | ||
| 4406 | if (!scmd) | ||
| 4407 | return -ENOMEM; | ||
| 4408 | |||
| 4405 | /* | 4409 | /* |
| 4406 | * The internal commands share one command id and hence are | 4410 | * The internal commands share one command id and hence are |
| 4407 | * serialized. This is so because we want to reserve maximum number of | 4411 | * serialized. This is so because we want to reserve maximum number of |
| @@ -4412,12 +4416,11 @@ mega_internal_command(adapter_t *adapter, megacmd_t *mc, mega_passthru *pthru) | |||
| 4412 | scb = &adapter->int_scb; | 4416 | scb = &adapter->int_scb; |
| 4413 | memset(scb, 0, sizeof(scb_t)); | 4417 | memset(scb, 0, sizeof(scb_t)); |
| 4414 | 4418 | ||
| 4415 | scmd = &adapter->int_scmd; | ||
| 4416 | memset(scmd, 0, sizeof(Scsi_Cmnd)); | ||
| 4417 | |||
| 4418 | sdev = kzalloc(sizeof(struct scsi_device), GFP_KERNEL); | 4419 | sdev = kzalloc(sizeof(struct scsi_device), GFP_KERNEL); |
| 4419 | scmd->device = sdev; | 4420 | scmd->device = sdev; |
| 4420 | 4421 | ||
| 4422 | memset(adapter->int_cdb, 0, sizeof(adapter->int_cdb)); | ||
| 4423 | scmd->cmnd = adapter->int_cdb; | ||
| 4421 | scmd->device->host = adapter->host; | 4424 | scmd->device->host = adapter->host; |
| 4422 | scmd->host_scribble = (void *)scb; | 4425 | scmd->host_scribble = (void *)scb; |
| 4423 | scmd->cmnd[0] = MEGA_INTERNAL_CMD; | 4426 | scmd->cmnd[0] = MEGA_INTERNAL_CMD; |
| @@ -4456,6 +4459,8 @@ mega_internal_command(adapter_t *adapter, megacmd_t *mc, mega_passthru *pthru) | |||
| 4456 | 4459 | ||
| 4457 | mutex_unlock(&adapter->int_mtx); | 4460 | mutex_unlock(&adapter->int_mtx); |
| 4458 | 4461 | ||
| 4462 | scsi_free_command(GFP_KERNEL, scmd); | ||
| 4463 | |||
| 4459 | return rval; | 4464 | return rval; |
| 4460 | } | 4465 | } |
| 4461 | 4466 | ||
diff --git a/drivers/scsi/megaraid.h b/drivers/scsi/megaraid.h index ee70bd4ae4ba..795201fa0b48 100644 --- a/drivers/scsi/megaraid.h +++ b/drivers/scsi/megaraid.h | |||
| @@ -888,8 +888,8 @@ typedef struct { | |||
| 888 | 888 | ||
| 889 | u8 sglen; /* f/w supported scatter-gather list length */ | 889 | u8 sglen; /* f/w supported scatter-gather list length */ |
| 890 | 890 | ||
| 891 | unsigned char int_cdb[MAX_COMMAND_SIZE]; | ||
| 891 | scb_t int_scb; | 892 | scb_t int_scb; |
| 892 | Scsi_Cmnd int_scmd; | ||
| 893 | struct mutex int_mtx; /* To synchronize the internal | 893 | struct mutex int_mtx; /* To synchronize the internal |
| 894 | commands */ | 894 | commands */ |
| 895 | struct completion int_waitq; /* wait queue for internal | 895 | struct completion int_waitq; /* wait queue for internal |
diff --git a/drivers/scsi/megaraid/megaraid_sas.c b/drivers/scsi/megaraid/megaraid_sas.c index a454f94623d7..17ce7abe17ee 100644 --- a/drivers/scsi/megaraid/megaraid_sas.c +++ b/drivers/scsi/megaraid/megaraid_sas.c | |||
| @@ -1016,7 +1016,8 @@ static int megasas_slave_configure(struct scsi_device *sdev) | |||
| 1016 | * The RAID firmware may require extended timeouts. | 1016 | * The RAID firmware may require extended timeouts. |
| 1017 | */ | 1017 | */ |
| 1018 | if (sdev->channel >= MEGASAS_MAX_PD_CHANNELS) | 1018 | if (sdev->channel >= MEGASAS_MAX_PD_CHANNELS) |
| 1019 | sdev->timeout = MEGASAS_DEFAULT_CMD_TIMEOUT * HZ; | 1019 | blk_queue_rq_timeout(sdev->request_queue, |
| 1020 | MEGASAS_DEFAULT_CMD_TIMEOUT * HZ); | ||
| 1020 | return 0; | 1021 | return 0; |
| 1021 | } | 1022 | } |
| 1022 | 1023 | ||
diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h index f25f41a499e5..b97194096d8e 100644 --- a/drivers/scsi/qla2xxx/qla_def.h +++ b/drivers/scsi/qla2xxx/qla_def.h | |||
| @@ -2547,7 +2547,6 @@ typedef struct scsi_qla_host { | |||
| 2547 | uint8_t fcode_revision[16]; | 2547 | uint8_t fcode_revision[16]; |
| 2548 | uint32_t fw_revision[4]; | 2548 | uint32_t fw_revision[4]; |
| 2549 | 2549 | ||
| 2550 | uint16_t fdt_odd_index; | ||
| 2551 | uint32_t fdt_wrt_disable; | 2550 | uint32_t fdt_wrt_disable; |
| 2552 | uint32_t fdt_erase_cmd; | 2551 | uint32_t fdt_erase_cmd; |
| 2553 | uint32_t fdt_block_size; | 2552 | uint32_t fdt_block_size; |
diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c index a470f2d3270d..4218f20f5ed5 100644 --- a/drivers/scsi/qla2xxx/qla_init.c +++ b/drivers/scsi/qla2xxx/qla_init.c | |||
| @@ -140,7 +140,6 @@ int | |||
| 140 | qla2100_pci_config(scsi_qla_host_t *ha) | 140 | qla2100_pci_config(scsi_qla_host_t *ha) |
| 141 | { | 141 | { |
| 142 | uint16_t w; | 142 | uint16_t w; |
| 143 | uint32_t d; | ||
| 144 | unsigned long flags; | 143 | unsigned long flags; |
| 145 | struct device_reg_2xxx __iomem *reg = &ha->iobase->isp; | 144 | struct device_reg_2xxx __iomem *reg = &ha->iobase->isp; |
| 146 | 145 | ||
| @@ -151,10 +150,7 @@ qla2100_pci_config(scsi_qla_host_t *ha) | |||
| 151 | w |= (PCI_COMMAND_PARITY | PCI_COMMAND_SERR); | 150 | w |= (PCI_COMMAND_PARITY | PCI_COMMAND_SERR); |
| 152 | pci_write_config_word(ha->pdev, PCI_COMMAND, w); | 151 | pci_write_config_word(ha->pdev, PCI_COMMAND, w); |
| 153 | 152 | ||
| 154 | /* Reset expansion ROM address decode enable */ | 153 | pci_disable_rom(ha->pdev); |
| 155 | pci_read_config_dword(ha->pdev, PCI_ROM_ADDRESS, &d); | ||
| 156 | d &= ~PCI_ROM_ADDRESS_ENABLE; | ||
| 157 | pci_write_config_dword(ha->pdev, PCI_ROM_ADDRESS, d); | ||
| 158 | 154 | ||
| 159 | /* Get PCI bus information. */ | 155 | /* Get PCI bus information. */ |
| 160 | spin_lock_irqsave(&ha->hardware_lock, flags); | 156 | spin_lock_irqsave(&ha->hardware_lock, flags); |
| @@ -174,7 +170,6 @@ int | |||
| 174 | qla2300_pci_config(scsi_qla_host_t *ha) | 170 | qla2300_pci_config(scsi_qla_host_t *ha) |
| 175 | { | 171 | { |
| 176 | uint16_t w; | 172 | uint16_t w; |
| 177 | uint32_t d; | ||
| 178 | unsigned long flags = 0; | 173 | unsigned long flags = 0; |
| 179 | uint32_t cnt; | 174 | uint32_t cnt; |
| 180 | struct device_reg_2xxx __iomem *reg = &ha->iobase->isp; | 175 | struct device_reg_2xxx __iomem *reg = &ha->iobase->isp; |
| @@ -236,10 +231,7 @@ qla2300_pci_config(scsi_qla_host_t *ha) | |||
| 236 | 231 | ||
| 237 | pci_write_config_byte(ha->pdev, PCI_LATENCY_TIMER, 0x80); | 232 | pci_write_config_byte(ha->pdev, PCI_LATENCY_TIMER, 0x80); |
| 238 | 233 | ||
| 239 | /* Reset expansion ROM address decode enable */ | 234 | pci_disable_rom(ha->pdev); |
| 240 | pci_read_config_dword(ha->pdev, PCI_ROM_ADDRESS, &d); | ||
| 241 | d &= ~PCI_ROM_ADDRESS_ENABLE; | ||
| 242 | pci_write_config_dword(ha->pdev, PCI_ROM_ADDRESS, d); | ||
| 243 | 235 | ||
| 244 | /* Get PCI bus information. */ | 236 | /* Get PCI bus information. */ |
| 245 | spin_lock_irqsave(&ha->hardware_lock, flags); | 237 | spin_lock_irqsave(&ha->hardware_lock, flags); |
| @@ -259,7 +251,6 @@ int | |||
| 259 | qla24xx_pci_config(scsi_qla_host_t *ha) | 251 | qla24xx_pci_config(scsi_qla_host_t *ha) |
| 260 | { | 252 | { |
| 261 | uint16_t w; | 253 | uint16_t w; |
| 262 | uint32_t d; | ||
| 263 | unsigned long flags = 0; | 254 | unsigned long flags = 0; |
| 264 | struct device_reg_24xx __iomem *reg = &ha->iobase->isp24; | 255 | struct device_reg_24xx __iomem *reg = &ha->iobase->isp24; |
| 265 | 256 | ||
| @@ -281,10 +272,7 @@ qla24xx_pci_config(scsi_qla_host_t *ha) | |||
| 281 | if (pci_find_capability(ha->pdev, PCI_CAP_ID_EXP)) | 272 | if (pci_find_capability(ha->pdev, PCI_CAP_ID_EXP)) |
| 282 | pcie_set_readrq(ha->pdev, 2048); | 273 | pcie_set_readrq(ha->pdev, 2048); |
| 283 | 274 | ||
| 284 | /* Reset expansion ROM address decode enable */ | 275 | pci_disable_rom(ha->pdev); |
| 285 | pci_read_config_dword(ha->pdev, PCI_ROM_ADDRESS, &d); | ||
| 286 | d &= ~PCI_ROM_ADDRESS_ENABLE; | ||
| 287 | pci_write_config_dword(ha->pdev, PCI_ROM_ADDRESS, d); | ||
| 288 | 276 | ||
| 289 | ha->chip_revision = ha->pdev->revision; | 277 | ha->chip_revision = ha->pdev->revision; |
| 290 | 278 | ||
| @@ -306,7 +294,6 @@ int | |||
| 306 | qla25xx_pci_config(scsi_qla_host_t *ha) | 294 | qla25xx_pci_config(scsi_qla_host_t *ha) |
| 307 | { | 295 | { |
| 308 | uint16_t w; | 296 | uint16_t w; |
| 309 | uint32_t d; | ||
| 310 | 297 | ||
| 311 | pci_set_master(ha->pdev); | 298 | pci_set_master(ha->pdev); |
| 312 | pci_try_set_mwi(ha->pdev); | 299 | pci_try_set_mwi(ha->pdev); |
| @@ -320,10 +307,7 @@ qla25xx_pci_config(scsi_qla_host_t *ha) | |||
| 320 | if (pci_find_capability(ha->pdev, PCI_CAP_ID_EXP)) | 307 | if (pci_find_capability(ha->pdev, PCI_CAP_ID_EXP)) |
| 321 | pcie_set_readrq(ha->pdev, 2048); | 308 | pcie_set_readrq(ha->pdev, 2048); |
| 322 | 309 | ||
| 323 | /* Reset expansion ROM address decode enable */ | 310 | pci_disable_rom(ha->pdev); |
| 324 | pci_read_config_dword(ha->pdev, PCI_ROM_ADDRESS, &d); | ||
| 325 | d &= ~PCI_ROM_ADDRESS_ENABLE; | ||
| 326 | pci_write_config_dword(ha->pdev, PCI_ROM_ADDRESS, d); | ||
| 327 | 311 | ||
| 328 | ha->chip_revision = ha->pdev->revision; | 312 | ha->chip_revision = ha->pdev->revision; |
| 329 | 313 | ||
| @@ -980,7 +964,6 @@ qla2x00_setup_chip(scsi_qla_host_t *ha) | |||
| 980 | &ha->fw_minor_version, | 964 | &ha->fw_minor_version, |
| 981 | &ha->fw_subminor_version, | 965 | &ha->fw_subminor_version, |
| 982 | &ha->fw_attributes, &ha->fw_memory_size); | 966 | &ha->fw_attributes, &ha->fw_memory_size); |
| 983 | qla2x00_resize_request_q(ha); | ||
| 984 | ha->flags.npiv_supported = 0; | 967 | ha->flags.npiv_supported = 0; |
| 985 | if ((IS_QLA24XX(ha) || IS_QLA25XX(ha) || | 968 | if ((IS_QLA24XX(ha) || IS_QLA25XX(ha) || |
| 986 | IS_QLA84XX(ha)) && | 969 | IS_QLA84XX(ha)) && |
| @@ -992,6 +975,7 @@ qla2x00_setup_chip(scsi_qla_host_t *ha) | |||
| 992 | ha->max_npiv_vports = | 975 | ha->max_npiv_vports = |
| 993 | MIN_MULTI_ID_FABRIC - 1; | 976 | MIN_MULTI_ID_FABRIC - 1; |
| 994 | } | 977 | } |
| 978 | qla2x00_resize_request_q(ha); | ||
| 995 | 979 | ||
| 996 | if (ql2xallocfwdump) | 980 | if (ql2xallocfwdump) |
| 997 | qla2x00_alloc_fw_dump(ha); | 981 | qla2x00_alloc_fw_dump(ha); |
diff --git a/drivers/scsi/qla2xxx/qla_mbx.c b/drivers/scsi/qla2xxx/qla_mbx.c index 36bc6851e23d..3402746ec128 100644 --- a/drivers/scsi/qla2xxx/qla_mbx.c +++ b/drivers/scsi/qla2xxx/qla_mbx.c | |||
| @@ -1964,7 +1964,7 @@ qla2x00_get_resource_cnts(scsi_qla_host_t *ha, uint16_t *cur_xchg_cnt, | |||
| 1964 | *cur_iocb_cnt = mcp->mb[7]; | 1964 | *cur_iocb_cnt = mcp->mb[7]; |
| 1965 | if (orig_iocb_cnt) | 1965 | if (orig_iocb_cnt) |
| 1966 | *orig_iocb_cnt = mcp->mb[10]; | 1966 | *orig_iocb_cnt = mcp->mb[10]; |
| 1967 | if (max_npiv_vports) | 1967 | if (ha->flags.npiv_supported && max_npiv_vports) |
| 1968 | *max_npiv_vports = mcp->mb[11]; | 1968 | *max_npiv_vports = mcp->mb[11]; |
| 1969 | } | 1969 | } |
| 1970 | 1970 | ||
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c index 21dd182ad512..35567203ef61 100644 --- a/drivers/scsi/qla2xxx/qla_os.c +++ b/drivers/scsi/qla2xxx/qla_os.c | |||
| @@ -728,6 +728,7 @@ qla2xxx_eh_abort(struct scsi_cmnd *cmd) | |||
| 728 | if (ha->isp_ops->abort_command(ha, sp)) { | 728 | if (ha->isp_ops->abort_command(ha, sp)) { |
| 729 | DEBUG2(printk("%s(%ld): abort_command " | 729 | DEBUG2(printk("%s(%ld): abort_command " |
| 730 | "mbx failed.\n", __func__, ha->host_no)); | 730 | "mbx failed.\n", __func__, ha->host_no)); |
| 731 | ret = FAILED; | ||
| 731 | } else { | 732 | } else { |
| 732 | DEBUG3(printk("%s(%ld): abort_command " | 733 | DEBUG3(printk("%s(%ld): abort_command " |
| 733 | "mbx success.\n", __func__, ha->host_no)); | 734 | "mbx success.\n", __func__, ha->host_no)); |
diff --git a/drivers/scsi/qla2xxx/qla_sup.c b/drivers/scsi/qla2xxx/qla_sup.c index 90a13211717f..e4af678eb2d6 100644 --- a/drivers/scsi/qla2xxx/qla_sup.c +++ b/drivers/scsi/qla2xxx/qla_sup.c | |||
| @@ -722,6 +722,7 @@ done: | |||
| 722 | static void | 722 | static void |
| 723 | qla2xxx_get_fdt_info(scsi_qla_host_t *ha) | 723 | qla2xxx_get_fdt_info(scsi_qla_host_t *ha) |
| 724 | { | 724 | { |
| 725 | #define FLASH_BLK_SIZE_4K 0x1000 | ||
| 725 | #define FLASH_BLK_SIZE_32K 0x8000 | 726 | #define FLASH_BLK_SIZE_32K 0x8000 |
| 726 | #define FLASH_BLK_SIZE_64K 0x10000 | 727 | #define FLASH_BLK_SIZE_64K 0x10000 |
| 727 | const char *loc, *locations[] = { "MID", "FDT" }; | 728 | const char *loc, *locations[] = { "MID", "FDT" }; |
| @@ -755,7 +756,6 @@ qla2xxx_get_fdt_info(scsi_qla_host_t *ha) | |||
| 755 | loc = locations[1]; | 756 | loc = locations[1]; |
| 756 | mid = le16_to_cpu(fdt->man_id); | 757 | mid = le16_to_cpu(fdt->man_id); |
| 757 | fid = le16_to_cpu(fdt->id); | 758 | fid = le16_to_cpu(fdt->id); |
| 758 | ha->fdt_odd_index = mid == 0x1f; | ||
| 759 | ha->fdt_wrt_disable = fdt->wrt_disable_bits; | 759 | ha->fdt_wrt_disable = fdt->wrt_disable_bits; |
| 760 | ha->fdt_erase_cmd = flash_conf_to_access_addr(0x0300 | fdt->erase_cmd); | 760 | ha->fdt_erase_cmd = flash_conf_to_access_addr(0x0300 | fdt->erase_cmd); |
| 761 | ha->fdt_block_size = le32_to_cpu(fdt->block_size); | 761 | ha->fdt_block_size = le32_to_cpu(fdt->block_size); |
| @@ -788,8 +788,7 @@ no_flash_data: | |||
| 788 | ha->fdt_block_size = FLASH_BLK_SIZE_64K; | 788 | ha->fdt_block_size = FLASH_BLK_SIZE_64K; |
| 789 | break; | 789 | break; |
| 790 | case 0x1f: /* Atmel 26DF081A. */ | 790 | case 0x1f: /* Atmel 26DF081A. */ |
| 791 | ha->fdt_odd_index = 1; | 791 | ha->fdt_block_size = FLASH_BLK_SIZE_4K; |
| 792 | ha->fdt_block_size = FLASH_BLK_SIZE_64K; | ||
| 793 | ha->fdt_erase_cmd = flash_conf_to_access_addr(0x0320); | 792 | ha->fdt_erase_cmd = flash_conf_to_access_addr(0x0320); |
| 794 | ha->fdt_unprotect_sec_cmd = flash_conf_to_access_addr(0x0339); | 793 | ha->fdt_unprotect_sec_cmd = flash_conf_to_access_addr(0x0339); |
| 795 | ha->fdt_protect_sec_cmd = flash_conf_to_access_addr(0x0336); | 794 | ha->fdt_protect_sec_cmd = flash_conf_to_access_addr(0x0336); |
| @@ -801,9 +800,9 @@ no_flash_data: | |||
| 801 | } | 800 | } |
| 802 | done: | 801 | done: |
| 803 | DEBUG2(qla_printk(KERN_DEBUG, ha, "FDT[%s]: (0x%x/0x%x) erase=0x%x " | 802 | DEBUG2(qla_printk(KERN_DEBUG, ha, "FDT[%s]: (0x%x/0x%x) erase=0x%x " |
| 804 | "pro=%x upro=%x idx=%d wrtd=0x%x blk=0x%x.\n", loc, mid, fid, | 803 | "pro=%x upro=%x wrtd=0x%x blk=0x%x.\n", loc, mid, fid, |
| 805 | ha->fdt_erase_cmd, ha->fdt_protect_sec_cmd, | 804 | ha->fdt_erase_cmd, ha->fdt_protect_sec_cmd, |
| 806 | ha->fdt_unprotect_sec_cmd, ha->fdt_odd_index, ha->fdt_wrt_disable, | 805 | ha->fdt_unprotect_sec_cmd, ha->fdt_wrt_disable, |
| 807 | ha->fdt_block_size)); | 806 | ha->fdt_block_size)); |
| 808 | } | 807 | } |
| 809 | 808 | ||
| @@ -987,13 +986,9 @@ qla24xx_write_flash_data(scsi_qla_host_t *ha, uint32_t *dwptr, uint32_t faddr, | |||
| 987 | qla24xx_unprotect_flash(ha); | 986 | qla24xx_unprotect_flash(ha); |
| 988 | 987 | ||
| 989 | for (liter = 0; liter < dwords; liter++, faddr++, dwptr++) { | 988 | for (liter = 0; liter < dwords; liter++, faddr++, dwptr++) { |
| 990 | if (ha->fdt_odd_index) { | 989 | |
| 991 | findex = faddr << 2; | 990 | findex = faddr; |
| 992 | fdata = findex & sec_mask; | 991 | fdata = (findex & sec_mask) << 2; |
| 993 | } else { | ||
| 994 | findex = faddr; | ||
| 995 | fdata = (findex & sec_mask) << 2; | ||
| 996 | } | ||
| 997 | 992 | ||
| 998 | /* Are we at the beginning of a sector? */ | 993 | /* Are we at the beginning of a sector? */ |
| 999 | if ((findex & rest_addr) == 0) { | 994 | if ((findex & rest_addr) == 0) { |
diff --git a/drivers/scsi/qla2xxx/qla_version.h b/drivers/scsi/qla2xxx/qla_version.h index be5e299df528..eea6720adf16 100644 --- a/drivers/scsi/qla2xxx/qla_version.h +++ b/drivers/scsi/qla2xxx/qla_version.h | |||
| @@ -7,7 +7,7 @@ | |||
| 7 | /* | 7 | /* |
| 8 | * Driver version | 8 | * Driver version |
| 9 | */ | 9 | */ |
| 10 | #define QLA2XXX_VERSION "8.02.01-k8" | 10 | #define QLA2XXX_VERSION "8.02.01-k9" |
| 11 | 11 | ||
| 12 | #define QLA_DRIVER_MAJOR_VER 8 | 12 | #define QLA_DRIVER_MAJOR_VER 8 |
| 13 | #define QLA_DRIVER_MINOR_VER 2 | 13 | #define QLA_DRIVER_MINOR_VER 2 |
diff --git a/drivers/scsi/scsi_error.c b/drivers/scsi/scsi_error.c index 94ed262bdf0c..edfaf241c5ba 100644 --- a/drivers/scsi/scsi_error.c +++ b/drivers/scsi/scsi_error.c | |||
| @@ -932,8 +932,7 @@ static int scsi_eh_try_stu(struct scsi_cmnd *scmd) | |||
| 932 | int i, rtn = NEEDS_RETRY; | 932 | int i, rtn = NEEDS_RETRY; |
| 933 | 933 | ||
| 934 | for (i = 0; rtn == NEEDS_RETRY && i < 2; i++) | 934 | for (i = 0; rtn == NEEDS_RETRY && i < 2; i++) |
| 935 | rtn = scsi_send_eh_cmnd(scmd, stu_command, 6, | 935 | rtn = scsi_send_eh_cmnd(scmd, stu_command, 6, scmd->device->request_queue->rq_timeout, 0); |
| 936 | scmd->device->timeout, 0); | ||
| 937 | 936 | ||
| 938 | if (rtn == SUCCESS) | 937 | if (rtn == SUCCESS) |
| 939 | return 0; | 938 | return 0; |
| @@ -1340,9 +1339,10 @@ int scsi_decide_disposition(struct scsi_cmnd *scmd) | |||
| 1340 | * LLD/transport was disrupted during processing of the IO. | 1339 | * LLD/transport was disrupted during processing of the IO. |
| 1341 | * The transport class is now blocked/blocking, | 1340 | * The transport class is now blocked/blocking, |
| 1342 | * and the transport will decide what to do with the IO | 1341 | * and the transport will decide what to do with the IO |
| 1343 | * based on its timers and recovery capablilities. | 1342 | * based on its timers and recovery capablilities if |
| 1343 | * there are enough retries. | ||
| 1344 | */ | 1344 | */ |
| 1345 | return ADD_TO_MLQUEUE; | 1345 | goto maybe_retry; |
| 1346 | case DID_TRANSPORT_FAILFAST: | 1346 | case DID_TRANSPORT_FAILFAST: |
| 1347 | /* | 1347 | /* |
| 1348 | * The transport decided to failfast the IO (most likely | 1348 | * The transport decided to failfast the IO (most likely |
diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c index f5d3b96890dc..fa45a1a66867 100644 --- a/drivers/scsi/scsi_lib.c +++ b/drivers/scsi/scsi_lib.c | |||
| @@ -567,15 +567,18 @@ static inline int scsi_host_is_busy(struct Scsi_Host *shost) | |||
| 567 | */ | 567 | */ |
| 568 | static void scsi_run_queue(struct request_queue *q) | 568 | static void scsi_run_queue(struct request_queue *q) |
| 569 | { | 569 | { |
| 570 | struct scsi_device *starved_head = NULL, *sdev = q->queuedata; | 570 | struct scsi_device *sdev = q->queuedata; |
| 571 | struct Scsi_Host *shost = sdev->host; | 571 | struct Scsi_Host *shost = sdev->host; |
| 572 | LIST_HEAD(starved_list); | ||
| 572 | unsigned long flags; | 573 | unsigned long flags; |
| 573 | 574 | ||
| 574 | if (scsi_target(sdev)->single_lun) | 575 | if (scsi_target(sdev)->single_lun) |
| 575 | scsi_single_lun_run(sdev); | 576 | scsi_single_lun_run(sdev); |
| 576 | 577 | ||
| 577 | spin_lock_irqsave(shost->host_lock, flags); | 578 | spin_lock_irqsave(shost->host_lock, flags); |
| 578 | while (!list_empty(&shost->starved_list) && !scsi_host_is_busy(shost)) { | 579 | list_splice_init(&shost->starved_list, &starved_list); |
| 580 | |||
| 581 | while (!list_empty(&starved_list)) { | ||
| 579 | int flagset; | 582 | int flagset; |
| 580 | 583 | ||
| 581 | /* | 584 | /* |
| @@ -588,24 +591,18 @@ static void scsi_run_queue(struct request_queue *q) | |||
| 588 | * scsi_request_fn must get the host_lock before checking | 591 | * scsi_request_fn must get the host_lock before checking |
| 589 | * or modifying starved_list or starved_entry. | 592 | * or modifying starved_list or starved_entry. |
| 590 | */ | 593 | */ |
| 591 | sdev = list_entry(shost->starved_list.next, | 594 | if (scsi_host_is_busy(shost)) |
| 592 | struct scsi_device, starved_entry); | ||
| 593 | /* | ||
| 594 | * The *queue_ready functions can add a device back onto the | ||
| 595 | * starved list's tail, so we must check for a infinite loop. | ||
| 596 | */ | ||
| 597 | if (sdev == starved_head) | ||
| 598 | break; | 595 | break; |
| 599 | if (!starved_head) | ||
| 600 | starved_head = sdev; | ||
| 601 | 596 | ||
| 597 | sdev = list_entry(starved_list.next, | ||
| 598 | struct scsi_device, starved_entry); | ||
| 599 | list_del_init(&sdev->starved_entry); | ||
| 602 | if (scsi_target_is_busy(scsi_target(sdev))) { | 600 | if (scsi_target_is_busy(scsi_target(sdev))) { |
| 603 | list_move_tail(&sdev->starved_entry, | 601 | list_move_tail(&sdev->starved_entry, |
| 604 | &shost->starved_list); | 602 | &shost->starved_list); |
| 605 | continue; | 603 | continue; |
| 606 | } | 604 | } |
| 607 | 605 | ||
| 608 | list_del_init(&sdev->starved_entry); | ||
| 609 | spin_unlock(shost->host_lock); | 606 | spin_unlock(shost->host_lock); |
| 610 | 607 | ||
| 611 | spin_lock(sdev->request_queue->queue_lock); | 608 | spin_lock(sdev->request_queue->queue_lock); |
| @@ -621,6 +618,8 @@ static void scsi_run_queue(struct request_queue *q) | |||
| 621 | 618 | ||
| 622 | spin_lock(shost->host_lock); | 619 | spin_lock(shost->host_lock); |
| 623 | } | 620 | } |
| 621 | /* put any unprocessed entries back */ | ||
| 622 | list_splice(&starved_list, &shost->starved_list); | ||
| 624 | spin_unlock_irqrestore(shost->host_lock, flags); | 623 | spin_unlock_irqrestore(shost->host_lock, flags); |
| 625 | 624 | ||
| 626 | blk_run_queue(q); | 625 | blk_run_queue(q); |
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c index c9e1242eaf25..5081b3981d3c 100644 --- a/drivers/scsi/sd.c +++ b/drivers/scsi/sd.c | |||
| @@ -757,7 +757,7 @@ static int sd_ioctl(struct block_device *bdev, fmode_t mode, | |||
| 757 | * access to the device is prohibited. | 757 | * access to the device is prohibited. |
| 758 | */ | 758 | */ |
| 759 | error = scsi_nonblockable_ioctl(sdp, cmd, p, | 759 | error = scsi_nonblockable_ioctl(sdp, cmd, p, |
| 760 | (mode & FMODE_NDELAY_NOW) != 0); | 760 | (mode & FMODE_NDELAY) != 0); |
| 761 | if (!scsi_block_when_processing_errors(sdp) || !error) | 761 | if (!scsi_block_when_processing_errors(sdp) || !error) |
| 762 | return error; | 762 | return error; |
| 763 | 763 | ||
diff --git a/drivers/scsi/sr.c b/drivers/scsi/sr.c index 62b6633e3a97..45b66b98a516 100644 --- a/drivers/scsi/sr.c +++ b/drivers/scsi/sr.c | |||
| @@ -521,7 +521,7 @@ static int sr_block_ioctl(struct block_device *bdev, fmode_t mode, unsigned cmd, | |||
| 521 | * if it doesn't recognise the ioctl | 521 | * if it doesn't recognise the ioctl |
| 522 | */ | 522 | */ |
| 523 | ret = scsi_nonblockable_ioctl(sdev, cmd, argp, | 523 | ret = scsi_nonblockable_ioctl(sdev, cmd, argp, |
| 524 | (mode & FMODE_NDELAY_NOW) != 0); | 524 | (mode & FMODE_NDELAY) != 0); |
| 525 | if (ret != -ENODEV) | 525 | if (ret != -ENODEV) |
| 526 | return ret; | 526 | return ret; |
| 527 | return scsi_ioctl(sdev, cmd, argp); | 527 | return scsi_ioctl(sdev, cmd, argp); |
diff --git a/drivers/scsi/stex.c b/drivers/scsi/stex.c index 3790906a77d1..2fa830c0be27 100644 --- a/drivers/scsi/stex.c +++ b/drivers/scsi/stex.c | |||
| @@ -477,7 +477,7 @@ stex_slave_config(struct scsi_device *sdev) | |||
| 477 | { | 477 | { |
| 478 | sdev->use_10_for_rw = 1; | 478 | sdev->use_10_for_rw = 1; |
| 479 | sdev->use_10_for_ms = 1; | 479 | sdev->use_10_for_ms = 1; |
| 480 | sdev->timeout = 60 * HZ; | 480 | blk_queue_rq_timeout(sdev->request_queue, 60 * HZ); |
| 481 | sdev->tagged_supported = 1; | 481 | sdev->tagged_supported = 1; |
| 482 | 482 | ||
| 483 | return 0; | 483 | return 0; |
