diff options
Diffstat (limited to 'drivers/scsi')
| -rw-r--r-- | drivers/scsi/atari_NCR5380.c | 3 | ||||
| -rw-r--r-- | drivers/scsi/cxgb3i/Kbuild | 2 | ||||
| -rw-r--r-- | drivers/scsi/cxgb3i/cxgb3i_iscsi.c | 4 | ||||
| -rw-r--r-- | drivers/scsi/fnic/fnic_main.c | 8 | ||||
| -rw-r--r-- | drivers/scsi/fnic/fnic_scsi.c | 7 | ||||
| -rw-r--r-- | drivers/scsi/ibmvscsi/ibmvscsi.c | 7 | ||||
| -rw-r--r-- | drivers/scsi/mac53c94.c | 5 | ||||
| -rw-r--r-- | drivers/scsi/qla2xxx/qla_mid.c | 1 | ||||
| -rw-r--r-- | drivers/scsi/scsi_transport_fc.c | 5 | ||||
| -rw-r--r-- | drivers/scsi/sg.c | 10 | ||||
| -rw-r--r-- | drivers/scsi/sun3_NCR5380.c | 3 | ||||
| -rw-r--r-- | drivers/scsi/zalon.c | 2 |
12 files changed, 32 insertions, 25 deletions
diff --git a/drivers/scsi/atari_NCR5380.c b/drivers/scsi/atari_NCR5380.c index 0471f8800483..4240b05aef6d 100644 --- a/drivers/scsi/atari_NCR5380.c +++ b/drivers/scsi/atari_NCR5380.c | |||
| @@ -2826,8 +2826,7 @@ int NCR5380_abort(Scsi_Cmnd *cmd) | |||
| 2826 | */ | 2826 | */ |
| 2827 | 2827 | ||
| 2828 | local_irq_restore(flags); | 2828 | local_irq_restore(flags); |
| 2829 | printk(KERN_INFO "scsi%d: warning : SCSI command probably completed successfully\n" | 2829 | printk(KERN_INFO "scsi%d: warning : SCSI command probably completed successfully before abortion\n", HOSTNO); |
| 2830 | KERN_INFO " before abortion\n", HOSTNO); | ||
| 2831 | 2830 | ||
| 2832 | /* Maybe it is sufficient just to release the ST-DMA lock... (if | 2831 | /* Maybe it is sufficient just to release the ST-DMA lock... (if |
| 2833 | * possible at all) At least, we should check if the lock could be | 2832 | * possible at all) At least, we should check if the lock could be |
diff --git a/drivers/scsi/cxgb3i/Kbuild b/drivers/scsi/cxgb3i/Kbuild index 25a2032bfa26..70d060b7ff4f 100644 --- a/drivers/scsi/cxgb3i/Kbuild +++ b/drivers/scsi/cxgb3i/Kbuild | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | EXTRA_CFLAGS += -I$(TOPDIR)/drivers/net/cxgb3 | 1 | EXTRA_CFLAGS += -I$(srctree)/drivers/net/cxgb3 |
| 2 | 2 | ||
| 3 | cxgb3i-y := cxgb3i_init.o cxgb3i_iscsi.o cxgb3i_pdu.o cxgb3i_offload.o cxgb3i_ddp.o | 3 | cxgb3i-y := cxgb3i_init.o cxgb3i_iscsi.o cxgb3i_pdu.o cxgb3i_offload.o cxgb3i_ddp.o |
| 4 | obj-$(CONFIG_SCSI_CXGB3_ISCSI) += cxgb3i.o | 4 | obj-$(CONFIG_SCSI_CXGB3_ISCSI) += cxgb3i.o |
diff --git a/drivers/scsi/cxgb3i/cxgb3i_iscsi.c b/drivers/scsi/cxgb3i/cxgb3i_iscsi.c index 74369a3f963b..c399f485aa7d 100644 --- a/drivers/scsi/cxgb3i/cxgb3i_iscsi.c +++ b/drivers/scsi/cxgb3i/cxgb3i_iscsi.c | |||
| @@ -13,6 +13,7 @@ | |||
| 13 | 13 | ||
| 14 | #include <linux/inet.h> | 14 | #include <linux/inet.h> |
| 15 | #include <linux/crypto.h> | 15 | #include <linux/crypto.h> |
| 16 | #include <linux/if_vlan.h> | ||
| 16 | #include <net/dst.h> | 17 | #include <net/dst.h> |
| 17 | #include <net/tcp.h> | 18 | #include <net/tcp.h> |
| 18 | #include <scsi/scsi_cmnd.h> | 19 | #include <scsi/scsi_cmnd.h> |
| @@ -184,6 +185,9 @@ static struct cxgb3i_hba *cxgb3i_hba_find_by_netdev(struct net_device *ndev) | |||
| 184 | struct cxgb3i_adapter *snic; | 185 | struct cxgb3i_adapter *snic; |
| 185 | int i; | 186 | int i; |
| 186 | 187 | ||
| 188 | if (ndev->priv_flags & IFF_802_1Q_VLAN) | ||
| 189 | ndev = vlan_dev_real_dev(ndev); | ||
| 190 | |||
| 187 | read_lock(&cxgb3i_snic_rwlock); | 191 | read_lock(&cxgb3i_snic_rwlock); |
| 188 | list_for_each_entry(snic, &cxgb3i_snic_list, list_head) { | 192 | list_for_each_entry(snic, &cxgb3i_snic_list, list_head) { |
| 189 | for (i = 0; i < snic->hba_cnt; i++) { | 193 | for (i = 0; i < snic->hba_cnt; i++) { |
diff --git a/drivers/scsi/fnic/fnic_main.c b/drivers/scsi/fnic/fnic_main.c index a84072865fc2..2c266c01dc5a 100644 --- a/drivers/scsi/fnic/fnic_main.c +++ b/drivers/scsi/fnic/fnic_main.c | |||
| @@ -473,16 +473,16 @@ static int __devinit fnic_probe(struct pci_dev *pdev, | |||
| 473 | * limitation for the device. Try 40-bit first, and | 473 | * limitation for the device. Try 40-bit first, and |
| 474 | * fail to 32-bit. | 474 | * fail to 32-bit. |
| 475 | */ | 475 | */ |
| 476 | err = pci_set_dma_mask(pdev, DMA_40BIT_MASK); | 476 | err = pci_set_dma_mask(pdev, DMA_BIT_MASK(40)); |
| 477 | if (err) { | 477 | if (err) { |
| 478 | err = pci_set_dma_mask(pdev, DMA_32BIT_MASK); | 478 | err = pci_set_dma_mask(pdev, DMA_BIT_MASK(32)); |
| 479 | if (err) { | 479 | if (err) { |
| 480 | shost_printk(KERN_ERR, fnic->lport->host, | 480 | shost_printk(KERN_ERR, fnic->lport->host, |
| 481 | "No usable DMA configuration " | 481 | "No usable DMA configuration " |
| 482 | "aborting\n"); | 482 | "aborting\n"); |
| 483 | goto err_out_release_regions; | 483 | goto err_out_release_regions; |
| 484 | } | 484 | } |
| 485 | err = pci_set_consistent_dma_mask(pdev, DMA_32BIT_MASK); | 485 | err = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32)); |
| 486 | if (err) { | 486 | if (err) { |
| 487 | shost_printk(KERN_ERR, fnic->lport->host, | 487 | shost_printk(KERN_ERR, fnic->lport->host, |
| 488 | "Unable to obtain 32-bit DMA " | 488 | "Unable to obtain 32-bit DMA " |
| @@ -490,7 +490,7 @@ static int __devinit fnic_probe(struct pci_dev *pdev, | |||
| 490 | goto err_out_release_regions; | 490 | goto err_out_release_regions; |
| 491 | } | 491 | } |
| 492 | } else { | 492 | } else { |
| 493 | err = pci_set_consistent_dma_mask(pdev, DMA_40BIT_MASK); | 493 | err = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(40)); |
| 494 | if (err) { | 494 | if (err) { |
| 495 | shost_printk(KERN_ERR, fnic->lport->host, | 495 | shost_printk(KERN_ERR, fnic->lport->host, |
| 496 | "Unable to obtain 40-bit DMA " | 496 | "Unable to obtain 40-bit DMA " |
diff --git a/drivers/scsi/fnic/fnic_scsi.c b/drivers/scsi/fnic/fnic_scsi.c index eabf36502856..bfc996971b81 100644 --- a/drivers/scsi/fnic/fnic_scsi.c +++ b/drivers/scsi/fnic/fnic_scsi.c | |||
| @@ -245,7 +245,7 @@ static inline int fnic_queue_wq_copy_desc(struct fnic *fnic, | |||
| 245 | struct vnic_wq_copy *wq, | 245 | struct vnic_wq_copy *wq, |
| 246 | struct fnic_io_req *io_req, | 246 | struct fnic_io_req *io_req, |
| 247 | struct scsi_cmnd *sc, | 247 | struct scsi_cmnd *sc, |
| 248 | u32 sg_count) | 248 | int sg_count) |
| 249 | { | 249 | { |
| 250 | struct scatterlist *sg; | 250 | struct scatterlist *sg; |
| 251 | struct fc_rport *rport = starget_to_rport(scsi_target(sc->device)); | 251 | struct fc_rport *rport = starget_to_rport(scsi_target(sc->device)); |
| @@ -260,9 +260,6 @@ static inline int fnic_queue_wq_copy_desc(struct fnic *fnic, | |||
| 260 | char msg[2]; | 260 | char msg[2]; |
| 261 | 261 | ||
| 262 | if (sg_count) { | 262 | if (sg_count) { |
| 263 | BUG_ON(sg_count < 0); | ||
| 264 | BUG_ON(sg_count > FNIC_MAX_SG_DESC_CNT); | ||
| 265 | |||
| 266 | /* For each SGE, create a device desc entry */ | 263 | /* For each SGE, create a device desc entry */ |
| 267 | desc = io_req->sgl_list; | 264 | desc = io_req->sgl_list; |
| 268 | for_each_sg(scsi_sglist(sc), sg, sg_count, i) { | 265 | for_each_sg(scsi_sglist(sc), sg, sg_count, i) { |
| @@ -344,7 +341,7 @@ int fnic_queuecommand(struct scsi_cmnd *sc, void (*done)(struct scsi_cmnd *)) | |||
| 344 | struct fnic *fnic; | 341 | struct fnic *fnic; |
| 345 | struct vnic_wq_copy *wq; | 342 | struct vnic_wq_copy *wq; |
| 346 | int ret; | 343 | int ret; |
| 347 | u32 sg_count; | 344 | int sg_count; |
| 348 | unsigned long flags; | 345 | unsigned long flags; |
| 349 | unsigned long ptr; | 346 | unsigned long ptr; |
| 350 | 347 | ||
diff --git a/drivers/scsi/ibmvscsi/ibmvscsi.c b/drivers/scsi/ibmvscsi/ibmvscsi.c index 869a11bdccbd..9928704e235f 100644 --- a/drivers/scsi/ibmvscsi/ibmvscsi.c +++ b/drivers/scsi/ibmvscsi/ibmvscsi.c | |||
| @@ -1095,9 +1095,14 @@ static void adapter_info_rsp(struct srp_event_struct *evt_struct) | |||
| 1095 | MAX_INDIRECT_BUFS); | 1095 | MAX_INDIRECT_BUFS); |
| 1096 | hostdata->host->sg_tablesize = MAX_INDIRECT_BUFS; | 1096 | hostdata->host->sg_tablesize = MAX_INDIRECT_BUFS; |
| 1097 | } | 1097 | } |
| 1098 | |||
| 1099 | if (hostdata->madapter_info.os_type == 3) { | ||
| 1100 | enable_fast_fail(hostdata); | ||
| 1101 | return; | ||
| 1102 | } | ||
| 1098 | } | 1103 | } |
| 1099 | 1104 | ||
| 1100 | enable_fast_fail(hostdata); | 1105 | send_srp_login(hostdata); |
| 1101 | } | 1106 | } |
| 1102 | 1107 | ||
| 1103 | /** | 1108 | /** |
diff --git a/drivers/scsi/mac53c94.c b/drivers/scsi/mac53c94.c index b12ad7c7c673..18735b39b3d3 100644 --- a/drivers/scsi/mac53c94.c +++ b/drivers/scsi/mac53c94.c | |||
| @@ -75,8 +75,9 @@ static int mac53c94_queue(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd * | |||
| 75 | int i; | 75 | int i; |
| 76 | printk(KERN_DEBUG "mac53c94_queue %p: command is", cmd); | 76 | printk(KERN_DEBUG "mac53c94_queue %p: command is", cmd); |
| 77 | for (i = 0; i < cmd->cmd_len; ++i) | 77 | for (i = 0; i < cmd->cmd_len; ++i) |
| 78 | printk(" %.2x", cmd->cmnd[i]); | 78 | printk(KERN_CONT " %.2x", cmd->cmnd[i]); |
| 79 | printk("\n" KERN_DEBUG "use_sg=%d request_bufflen=%d request_buffer=%p\n", | 79 | printk(KERN_CONT "\n"); |
| 80 | printk(KERN_DEBUG "use_sg=%d request_bufflen=%d request_buffer=%p\n", | ||
| 80 | scsi_sg_count(cmd), scsi_bufflen(cmd), scsi_sglist(cmd)); | 81 | scsi_sg_count(cmd), scsi_bufflen(cmd), scsi_sglist(cmd)); |
| 81 | } | 82 | } |
| 82 | #endif | 83 | #endif |
diff --git a/drivers/scsi/qla2xxx/qla_mid.c b/drivers/scsi/qla2xxx/qla_mid.c index 650bcef08f2a..cd78c501803a 100644 --- a/drivers/scsi/qla2xxx/qla_mid.c +++ b/drivers/scsi/qla2xxx/qla_mid.c | |||
| @@ -9,7 +9,6 @@ | |||
| 9 | 9 | ||
| 10 | #include <linux/moduleparam.h> | 10 | #include <linux/moduleparam.h> |
| 11 | #include <linux/vmalloc.h> | 11 | #include <linux/vmalloc.h> |
| 12 | #include <linux/smp_lock.h> | ||
| 13 | #include <linux/list.h> | 12 | #include <linux/list.h> |
| 14 | 13 | ||
| 15 | #include <scsi/scsi_tcq.h> | 14 | #include <scsi/scsi_tcq.h> |
diff --git a/drivers/scsi/scsi_transport_fc.c b/drivers/scsi/scsi_transport_fc.c index 2eee9e6e4fe8..292c02f810d0 100644 --- a/drivers/scsi/scsi_transport_fc.c +++ b/drivers/scsi/scsi_transport_fc.c | |||
| @@ -3670,13 +3670,14 @@ static void | |||
| 3670 | fc_bsg_goose_queue(struct fc_rport *rport) | 3670 | fc_bsg_goose_queue(struct fc_rport *rport) |
| 3671 | { | 3671 | { |
| 3672 | int flagset; | 3672 | int flagset; |
| 3673 | unsigned long flags; | ||
| 3673 | 3674 | ||
| 3674 | if (!rport->rqst_q) | 3675 | if (!rport->rqst_q) |
| 3675 | return; | 3676 | return; |
| 3676 | 3677 | ||
| 3677 | get_device(&rport->dev); | 3678 | get_device(&rport->dev); |
| 3678 | 3679 | ||
| 3679 | spin_lock(rport->rqst_q->queue_lock); | 3680 | spin_lock_irqsave(rport->rqst_q->queue_lock, flags); |
| 3680 | flagset = test_bit(QUEUE_FLAG_REENTER, &rport->rqst_q->queue_flags) && | 3681 | flagset = test_bit(QUEUE_FLAG_REENTER, &rport->rqst_q->queue_flags) && |
| 3681 | !test_bit(QUEUE_FLAG_REENTER, &rport->rqst_q->queue_flags); | 3682 | !test_bit(QUEUE_FLAG_REENTER, &rport->rqst_q->queue_flags); |
| 3682 | if (flagset) | 3683 | if (flagset) |
| @@ -3684,7 +3685,7 @@ fc_bsg_goose_queue(struct fc_rport *rport) | |||
| 3684 | __blk_run_queue(rport->rqst_q); | 3685 | __blk_run_queue(rport->rqst_q); |
| 3685 | if (flagset) | 3686 | if (flagset) |
| 3686 | queue_flag_clear(QUEUE_FLAG_REENTER, rport->rqst_q); | 3687 | queue_flag_clear(QUEUE_FLAG_REENTER, rport->rqst_q); |
| 3687 | spin_unlock(rport->rqst_q->queue_lock); | 3688 | spin_unlock_irqrestore(rport->rqst_q->queue_lock, flags); |
| 3688 | 3689 | ||
| 3689 | put_device(&rport->dev); | 3690 | put_device(&rport->dev); |
| 3690 | } | 3691 | } |
diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c index 8201387b4daa..9230402c45af 100644 --- a/drivers/scsi/sg.c +++ b/drivers/scsi/sg.c | |||
| @@ -210,13 +210,11 @@ static void sg_put_dev(Sg_device *sdp); | |||
| 210 | static int sg_allow_access(struct file *filp, unsigned char *cmd) | 210 | static int sg_allow_access(struct file *filp, unsigned char *cmd) |
| 211 | { | 211 | { |
| 212 | struct sg_fd *sfp = (struct sg_fd *)filp->private_data; | 212 | struct sg_fd *sfp = (struct sg_fd *)filp->private_data; |
| 213 | struct request_queue *q = sfp->parentdp->device->request_queue; | ||
| 214 | 213 | ||
| 215 | if (sfp->parentdp->device->type == TYPE_SCANNER) | 214 | if (sfp->parentdp->device->type == TYPE_SCANNER) |
| 216 | return 0; | 215 | return 0; |
| 217 | 216 | ||
| 218 | return blk_verify_command(&q->cmd_filter, | 217 | return blk_verify_command(cmd, filp->f_mode & FMODE_WRITE); |
| 219 | cmd, filp->f_mode & FMODE_WRITE); | ||
| 220 | } | 218 | } |
| 221 | 219 | ||
| 222 | static int | 220 | static int |
| @@ -621,7 +619,7 @@ sg_write(struct file *filp, const char __user *buf, size_t count, loff_t * ppos) | |||
| 621 | if (strcmp(current->comm, cmd) && printk_ratelimit()) { | 619 | if (strcmp(current->comm, cmd) && printk_ratelimit()) { |
| 622 | printk(KERN_WARNING | 620 | printk(KERN_WARNING |
| 623 | "sg_write: data in/out %d/%d bytes for SCSI command 0x%x--" | 621 | "sg_write: data in/out %d/%d bytes for SCSI command 0x%x--" |
| 624 | "guessing data in;\n" KERN_WARNING " " | 622 | "guessing data in;\n " |
| 625 | "program %s not setting count and/or reply_len properly\n", | 623 | "program %s not setting count and/or reply_len properly\n", |
| 626 | old_hdr.reply_len - (int)SZ_SG_HEADER, | 624 | old_hdr.reply_len - (int)SZ_SG_HEADER, |
| 627 | input_size, (unsigned int) cmnd[0], | 625 | input_size, (unsigned int) cmnd[0], |
| @@ -1658,6 +1656,10 @@ static int sg_start_req(Sg_request *srp, unsigned char *cmd) | |||
| 1658 | md->nr_entries = req_schp->k_use_sg; | 1656 | md->nr_entries = req_schp->k_use_sg; |
| 1659 | md->offset = 0; | 1657 | md->offset = 0; |
| 1660 | md->null_mapped = hp->dxferp ? 0 : 1; | 1658 | md->null_mapped = hp->dxferp ? 0 : 1; |
| 1659 | if (dxfer_dir == SG_DXFER_TO_FROM_DEV) | ||
| 1660 | md->from_user = 1; | ||
| 1661 | else | ||
| 1662 | md->from_user = 0; | ||
| 1661 | } | 1663 | } |
| 1662 | 1664 | ||
| 1663 | if (iov_count) { | 1665 | if (iov_count) { |
diff --git a/drivers/scsi/sun3_NCR5380.c b/drivers/scsi/sun3_NCR5380.c index bcaba86060ab..75da6e58ce55 100644 --- a/drivers/scsi/sun3_NCR5380.c +++ b/drivers/scsi/sun3_NCR5380.c | |||
| @@ -2860,8 +2860,7 @@ static int NCR5380_abort(struct scsi_cmnd *cmd) | |||
| 2860 | */ | 2860 | */ |
| 2861 | 2861 | ||
| 2862 | local_irq_restore(flags); | 2862 | local_irq_restore(flags); |
| 2863 | printk(KERN_INFO "scsi%d: warning : SCSI command probably completed successfully\n" | 2863 | printk(KERN_INFO "scsi%d: warning : SCSI command probably completed successfully before abortion\n", HOSTNO); |
| 2864 | KERN_INFO " before abortion\n", HOSTNO); | ||
| 2865 | 2864 | ||
| 2866 | return SCSI_ABORT_NOT_RUNNING; | 2865 | return SCSI_ABORT_NOT_RUNNING; |
| 2867 | } | 2866 | } |
diff --git a/drivers/scsi/zalon.c b/drivers/scsi/zalon.c index 97f3158fa7b5..27e84e4b1fa9 100644 --- a/drivers/scsi/zalon.c +++ b/drivers/scsi/zalon.c | |||
| @@ -134,7 +134,7 @@ zalon_probe(struct parisc_device *dev) | |||
| 134 | 134 | ||
| 135 | host = ncr_attach(&zalon7xx_template, unit, &device); | 135 | host = ncr_attach(&zalon7xx_template, unit, &device); |
| 136 | if (!host) | 136 | if (!host) |
| 137 | goto fail; | 137 | return -ENODEV; |
| 138 | 138 | ||
| 139 | if (request_irq(dev->irq, ncr53c8xx_intr, IRQF_SHARED, "zalon", host)) { | 139 | if (request_irq(dev->irq, ncr53c8xx_intr, IRQF_SHARED, "zalon", host)) { |
| 140 | dev_printk(KERN_ERR, &dev->dev, "irq problem with %d, detaching\n ", | 140 | dev_printk(KERN_ERR, &dev->dev, "irq problem with %d, detaching\n ", |
