aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/scsi.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2007-07-15 19:51:54 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-07-15 19:51:54 -0400
commitbc06cffdec85d487c77109dffcd2f285bdc502d3 (patch)
treeadc6e6398243da87e66c56102840597a329183a0 /drivers/scsi/scsi.c
parentd3502d7f25b22cfc9762bf1781faa9db1bb3be2e (diff)
parent9413d7b8aa777dd1fc7db9563ce5e80d769fe7b5 (diff)
Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (166 commits) [SCSI] ibmvscsi: convert to use the data buffer accessors [SCSI] dc395x: convert to use the data buffer accessors [SCSI] ncr53c8xx: convert to use the data buffer accessors [SCSI] sym53c8xx: convert to use the data buffer accessors [SCSI] ppa: coding police and printk levels [SCSI] aic7xxx_old: remove redundant GFP_ATOMIC from kmalloc [SCSI] i2o: remove redundant GFP_ATOMIC from kmalloc from device.c [SCSI] remove the dead CYBERSTORMIII_SCSI option [SCSI] don't build scsi_dma_{map,unmap} for !HAS_DMA [SCSI] Clean up scsi_add_lun a bit [SCSI] 53c700: Remove printk, which triggers because of low scsi clock on SNI RMs [SCSI] sni_53c710: Cleanup [SCSI] qla4xxx: Fix underrun/overrun conditions [SCSI] megaraid_mbox: use mutex instead of semaphore [SCSI] aacraid: add 51245, 51645 and 52245 adapters to documentation. [SCSI] qla2xxx: update version to 8.02.00-k1. [SCSI] qla2xxx: add support for NPIV [SCSI] stex: use resid for xfer len information [SCSI] Add Brownie 1200U3P to blacklist [SCSI] scsi.c: convert to use the data buffer accessors ...
Diffstat (limited to 'drivers/scsi/scsi.c')
-rw-r--r--drivers/scsi/scsi.c48
1 files changed, 1 insertions, 47 deletions
diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c
index 4c1e31334765..a691dda40d2c 100644
--- a/drivers/scsi/scsi.c
+++ b/drivers/scsi/scsi.c
@@ -368,7 +368,7 @@ void scsi_log_send(struct scsi_cmnd *cmd)
368 if (level > 3) { 368 if (level > 3) {
369 printk(KERN_INFO "buffer = 0x%p, bufflen = %d," 369 printk(KERN_INFO "buffer = 0x%p, bufflen = %d,"
370 " done = 0x%p, queuecommand 0x%p\n", 370 " done = 0x%p, queuecommand 0x%p\n",
371 cmd->request_buffer, cmd->request_bufflen, 371 scsi_sglist(cmd), scsi_bufflen(cmd),
372 cmd->done, 372 cmd->done,
373 cmd->device->host->hostt->queuecommand); 373 cmd->device->host->hostt->queuecommand);
374 374
@@ -1016,52 +1016,6 @@ struct scsi_device *scsi_device_lookup(struct Scsi_Host *shost,
1016} 1016}
1017EXPORT_SYMBOL(scsi_device_lookup); 1017EXPORT_SYMBOL(scsi_device_lookup);
1018 1018
1019/**
1020 * scsi_device_cancel - cancel outstanding IO to this device
1021 * @sdev: Pointer to struct scsi_device
1022 * @recovery: Boolean instructing function to recover device or not.
1023 *
1024 **/
1025int scsi_device_cancel(struct scsi_device *sdev, int recovery)
1026{
1027 struct scsi_cmnd *scmd;
1028 LIST_HEAD(active_list);
1029 struct list_head *lh, *lh_sf;
1030 unsigned long flags;
1031
1032 scsi_device_set_state(sdev, SDEV_CANCEL);
1033
1034 spin_lock_irqsave(&sdev->list_lock, flags);
1035 list_for_each_entry(scmd, &sdev->cmd_list, list) {
1036 if (scmd->request) {
1037 /*
1038 * If we are unable to remove the timer, it means
1039 * that the command has already timed out or
1040 * finished.
1041 */
1042 if (!scsi_delete_timer(scmd))
1043 continue;
1044 list_add_tail(&scmd->eh_entry, &active_list);
1045 }
1046 }
1047 spin_unlock_irqrestore(&sdev->list_lock, flags);
1048
1049 if (!list_empty(&active_list)) {
1050 list_for_each_safe(lh, lh_sf, &active_list) {
1051 scmd = list_entry(lh, struct scsi_cmnd, eh_entry);
1052 list_del_init(lh);
1053 if (recovery &&
1054 !scsi_eh_scmd_add(scmd, SCSI_EH_CANCEL_CMD)) {
1055 scmd->result = (DID_ABORT << 16);
1056 scsi_finish_command(scmd);
1057 }
1058 }
1059 }
1060
1061 return 0;
1062}
1063EXPORT_SYMBOL(scsi_device_cancel);
1064
1065MODULE_DESCRIPTION("SCSI core"); 1019MODULE_DESCRIPTION("SCSI core");
1066MODULE_LICENSE("GPL"); 1020MODULE_LICENSE("GPL");
1067 1021