aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/cciss.txt29
-rw-r--r--Documentation/scsi/00-INDEX2
-rw-r--r--Documentation/scsi/qlogicfas.txt3
-rw-r--r--Documentation/scsi/qlogicisp.txt30
-rw-r--r--Documentation/scsi/scsi_eh.txt8
-rw-r--r--Documentation/scsi/scsi_mid_low_api.txt4
6 files changed, 36 insertions, 40 deletions
diff --git a/Documentation/cciss.txt b/Documentation/cciss.txt
index 68a711fb82cf..15378422fc46 100644
--- a/Documentation/cciss.txt
+++ b/Documentation/cciss.txt
@@ -133,3 +133,32 @@ hardware and it is important to prevent the kernel from attempting to directly
133access these devices too, as if the array controller were merely a SCSI 133access these devices too, as if the array controller were merely a SCSI
134controller in the same way that we are allowing it to access SCSI tape drives. 134controller in the same way that we are allowing it to access SCSI tape drives.
135 135
136SCSI error handling for tape drives and medium changers
137-------------------------------------------------------
138
139The linux SCSI mid layer provides an error handling protocol which
140kicks into gear whenever a SCSI command fails to complete within a
141certain amount of time (which can vary depending on the command).
142The cciss driver participates in this protocol to some extent. The
143normal protocol is a four step process. First the device is told
144to abort the command. If that doesn't work, the device is reset.
145If that doesn't work, the SCSI bus is reset. If that doesn't work
146the host bus adapter is reset. Because the cciss driver is a block
147driver as well as a SCSI driver and only the tape drives and medium
148changers are presented to the SCSI mid layer, and unlike more
149straightforward SCSI drivers, disk i/o continues through the block
150side during the SCSI error recovery process, the cciss driver only
151implements the first two of these actions, aborting the command, and
152resetting the device. Additionally, most tape drives will not oblige
153in aborting commands, and sometimes it appears they will not even
154obey a reset coommand, though in most circumstances they will. In
155the case that the command cannot be aborted and the device cannot be
156reset, the device will be set offline.
157
158In the event the error handling code is triggered and a tape drive is
159successfully reset or the tardy command is successfully aborted, the
160tape drive may still not allow i/o to continue until some command
161is issued which positions the tape to a known position. Typically you
162must rewind the tape (by issuing "mt -f /dev/st0 rewind" for example)
163before i/o can proceed again to a tape drive which was reset.
164
diff --git a/Documentation/scsi/00-INDEX b/Documentation/scsi/00-INDEX
index fef92ebf266f..e7da8c3a255b 100644
--- a/Documentation/scsi/00-INDEX
+++ b/Documentation/scsi/00-INDEX
@@ -52,8 +52,6 @@ ppa.txt
52 - info on driver for IOmega zip drive 52 - info on driver for IOmega zip drive
53qlogicfas.txt 53qlogicfas.txt
54 - info on driver for QLogic FASxxx based adapters 54 - info on driver for QLogic FASxxx based adapters
55qlogicisp.txt
56 - info on driver for QLogic ISP 1020 based adapters
57scsi-generic.txt 55scsi-generic.txt
58 - info on the sg driver for generic (non-disk/CD/tape) SCSI devices. 56 - info on the sg driver for generic (non-disk/CD/tape) SCSI devices.
59scsi.txt 57scsi.txt
diff --git a/Documentation/scsi/qlogicfas.txt b/Documentation/scsi/qlogicfas.txt
index 398f99168077..c211d827fef2 100644
--- a/Documentation/scsi/qlogicfas.txt
+++ b/Documentation/scsi/qlogicfas.txt
@@ -11,8 +11,7 @@ Qlogic boards:
11 * IQ-PCI-10 11 * IQ-PCI-10
12 * IQ-PCI-D 12 * IQ-PCI-D
13 13
14is provided by the qlogicisp.c driver. Check README.qlogicisp for 14is provided by the qla1280 driver.
15details.
16 15
17Nor does it support the PCI-Basic, which is supported by the 16Nor does it support the PCI-Basic, which is supported by the
18'am53c974' driver. 17'am53c974' driver.
diff --git a/Documentation/scsi/qlogicisp.txt b/Documentation/scsi/qlogicisp.txt
deleted file mode 100644
index 6920f6c76a9f..000000000000
--- a/Documentation/scsi/qlogicisp.txt
+++ /dev/null
@@ -1,30 +0,0 @@
1Notes for the QLogic ISP1020 PCI SCSI Driver:
2
3This driver works well in practice, but does not support disconnect/
4reconnect, which makes using it with tape drives impractical.
5
6It should work for most host adaptors with the ISP1020 chip. The
7QLogic Corporation produces several PCI SCSI adapters which should
8work:
9
10 * IQ-PCI
11 * IQ-PCI-10
12 * IQ-PCI-D
13
14This driver may work with boards containing the ISP1020A or ISP1040A
15chips, but that has not been tested.
16
17This driver will NOT work with:
18
19 * ISA or VL Bus Qlogic cards (they use the 'qlogicfas' driver)
20 * PCI-basic (it uses the 'am53c974' driver)
21
22Much thanks to QLogic's tech support for providing the latest ISP1020
23firmware, and for taking the time to review my code.
24
25Erik Moe
26ehm@cris.com
27
28Revised:
29Michael A. Griffith
30grif@cs.ucr.edu
diff --git a/Documentation/scsi/scsi_eh.txt b/Documentation/scsi/scsi_eh.txt
index 534a50922a7b..331afd791cbb 100644
--- a/Documentation/scsi/scsi_eh.txt
+++ b/Documentation/scsi/scsi_eh.txt
@@ -83,11 +83,11 @@ with the command.
83 The timeout handler is scsi_times_out(). When a timeout occurs, this 83 The timeout handler is scsi_times_out(). When a timeout occurs, this
84function 84function
85 85
86 1. invokes optional hostt->eh_timedout() callback. Return value can 86 1. invokes optional hostt->eh_timed_out() callback. Return value can
87 be one of 87 be one of
88 88
89 - EH_HANDLED 89 - EH_HANDLED
90 This indicates that eh_timedout() dealt with the timeout. The 90 This indicates that eh_timed_out() dealt with the timeout. The
91 scmd is passed to __scsi_done() and thus linked into per-cpu 91 scmd is passed to __scsi_done() and thus linked into per-cpu
92 scsi_done_q. Normal command completion described in [1-2-1] 92 scsi_done_q. Normal command completion described in [1-2-1]
93 follows. 93 follows.
@@ -105,7 +105,7 @@ function
105 command will time out again. 105 command will time out again.
106 106
107 - EH_NOT_HANDLED 107 - EH_NOT_HANDLED
108 This is the same as when eh_timedout() callback doesn't exist. 108 This is the same as when eh_timed_out() callback doesn't exist.
109 Step #2 is taken. 109 Step #2 is taken.
110 110
111 2. scsi_eh_scmd_add(scmd, SCSI_EH_CANCEL_CMD) is invoked for the 111 2. scsi_eh_scmd_add(scmd, SCSI_EH_CANCEL_CMD) is invoked for the
@@ -142,7 +142,7 @@ are linked on shost->eh_cmd_q.
142 Note that this does not mean lower layers are quiescent. If a LLDD 142 Note that this does not mean lower layers are quiescent. If a LLDD
143completed a scmd with error status, the LLDD and lower layers are 143completed a scmd with error status, the LLDD and lower layers are
144assumed to forget about the scmd at that point. However, if a scmd 144assumed to forget about the scmd at that point. However, if a scmd
145has timed out, unless hostt->eh_timedout() made lower layers forget 145has timed out, unless hostt->eh_timed_out() made lower layers forget
146about the scmd, which currently no LLDD does, the command is still 146about the scmd, which currently no LLDD does, the command is still
147active as long as lower layers are concerned and completion could 147active as long as lower layers are concerned and completion could
148occur at any time. Of course, all such completions are ignored as the 148occur at any time. Of course, all such completions are ignored as the
diff --git a/Documentation/scsi/scsi_mid_low_api.txt b/Documentation/scsi/scsi_mid_low_api.txt
index 44df89c9c049..66565d42288f 100644
--- a/Documentation/scsi/scsi_mid_low_api.txt
+++ b/Documentation/scsi/scsi_mid_low_api.txt
@@ -346,7 +346,7 @@ Next, there is a movement to "outlaw" typedefs introducing synonyms for
346struct tags. Both can be still found in the SCSI subsystem, but 346struct tags. Both can be still found in the SCSI subsystem, but
347the typedefs have been moved to a single file, scsi_typedefs.h to 347the typedefs have been moved to a single file, scsi_typedefs.h to
348make their future removal easier, for example: 348make their future removal easier, for example:
349"typedef struct scsi_host_template Scsi_Host_Template;" 349"typedef struct scsi_cmnd Scsi_Cmnd;"
350 350
351Also, most C99 enhancements are encouraged to the extent they are supported 351Also, most C99 enhancements are encouraged to the extent they are supported
352by the relevant gcc compilers. So C99 style structure and array 352by the relevant gcc compilers. So C99 style structure and array
@@ -718,7 +718,7 @@ void scsi_report_bus_reset(struct Scsi_Host * shost, int channel)
718 * 718 *
719 * Defined in: drivers/scsi/scsi.c . 719 * Defined in: drivers/scsi/scsi.c .
720 **/ 720 **/
721int scsi_track_queue_full(Scsi_Device *sdev, int depth) 721int scsi_track_queue_full(struct scsi_device *sdev, int depth)
722 722
723 723
724/** 724/**