diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2005-11-11 17:04:37 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-11-11 17:04:37 -0500 |
commit | d72d6f1b5647258e83819b51f72fe37e2b7d7965 (patch) | |
tree | d3a08af50624d9b3e2287367b7e9f5fcc93bdce5 /Documentation | |
parent | 33ddcbbfb1d9f1bf1259531ae0ba8400ea3c8ba1 (diff) | |
parent | 8a87a0b6313109d2fea87b1271d497c954ce2ca8 (diff) |
Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-for-linus-2.6
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/cciss.txt | 29 | ||||
-rw-r--r-- | Documentation/scsi/00-INDEX | 2 | ||||
-rw-r--r-- | Documentation/scsi/qlogicfas.txt | 3 | ||||
-rw-r--r-- | Documentation/scsi/qlogicisp.txt | 30 | ||||
-rw-r--r-- | Documentation/scsi/scsi_eh.txt | 8 | ||||
-rw-r--r-- | Documentation/scsi/scsi_mid_low_api.txt | 4 |
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 | |||
133 | access these devices too, as if the array controller were merely a SCSI | 133 | access these devices too, as if the array controller were merely a SCSI |
134 | controller in the same way that we are allowing it to access SCSI tape drives. | 134 | controller in the same way that we are allowing it to access SCSI tape drives. |
135 | 135 | ||
136 | SCSI error handling for tape drives and medium changers | ||
137 | ------------------------------------------------------- | ||
138 | |||
139 | The linux SCSI mid layer provides an error handling protocol which | ||
140 | kicks into gear whenever a SCSI command fails to complete within a | ||
141 | certain amount of time (which can vary depending on the command). | ||
142 | The cciss driver participates in this protocol to some extent. The | ||
143 | normal protocol is a four step process. First the device is told | ||
144 | to abort the command. If that doesn't work, the device is reset. | ||
145 | If that doesn't work, the SCSI bus is reset. If that doesn't work | ||
146 | the host bus adapter is reset. Because the cciss driver is a block | ||
147 | driver as well as a SCSI driver and only the tape drives and medium | ||
148 | changers are presented to the SCSI mid layer, and unlike more | ||
149 | straightforward SCSI drivers, disk i/o continues through the block | ||
150 | side during the SCSI error recovery process, the cciss driver only | ||
151 | implements the first two of these actions, aborting the command, and | ||
152 | resetting the device. Additionally, most tape drives will not oblige | ||
153 | in aborting commands, and sometimes it appears they will not even | ||
154 | obey a reset coommand, though in most circumstances they will. In | ||
155 | the case that the command cannot be aborted and the device cannot be | ||
156 | reset, the device will be set offline. | ||
157 | |||
158 | In the event the error handling code is triggered and a tape drive is | ||
159 | successfully reset or the tardy command is successfully aborted, the | ||
160 | tape drive may still not allow i/o to continue until some command | ||
161 | is issued which positions the tape to a known position. Typically you | ||
162 | must rewind the tape (by issuing "mt -f /dev/st0 rewind" for example) | ||
163 | before 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 |
53 | qlogicfas.txt | 53 | qlogicfas.txt |
54 | - info on driver for QLogic FASxxx based adapters | 54 | - info on driver for QLogic FASxxx based adapters |
55 | qlogicisp.txt | ||
56 | - info on driver for QLogic ISP 1020 based adapters | ||
57 | scsi-generic.txt | 55 | scsi-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. |
59 | scsi.txt | 57 | scsi.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 | ||
14 | is provided by the qlogicisp.c driver. Check README.qlogicisp for | 14 | is provided by the qla1280 driver. |
15 | details. | ||
16 | 15 | ||
17 | Nor does it support the PCI-Basic, which is supported by the | 16 | Nor 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 @@ | |||
1 | Notes for the QLogic ISP1020 PCI SCSI Driver: | ||
2 | |||
3 | This driver works well in practice, but does not support disconnect/ | ||
4 | reconnect, which makes using it with tape drives impractical. | ||
5 | |||
6 | It should work for most host adaptors with the ISP1020 chip. The | ||
7 | QLogic Corporation produces several PCI SCSI adapters which should | ||
8 | work: | ||
9 | |||
10 | * IQ-PCI | ||
11 | * IQ-PCI-10 | ||
12 | * IQ-PCI-D | ||
13 | |||
14 | This driver may work with boards containing the ISP1020A or ISP1040A | ||
15 | chips, but that has not been tested. | ||
16 | |||
17 | This 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 | |||
22 | Much thanks to QLogic's tech support for providing the latest ISP1020 | ||
23 | firmware, and for taking the time to review my code. | ||
24 | |||
25 | Erik Moe | ||
26 | ehm@cris.com | ||
27 | |||
28 | Revised: | ||
29 | Michael A. Griffith | ||
30 | grif@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 |
84 | function | 84 | function |
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 |
143 | completed a scmd with error status, the LLDD and lower layers are | 143 | completed a scmd with error status, the LLDD and lower layers are |
144 | assumed to forget about the scmd at that point. However, if a scmd | 144 | assumed to forget about the scmd at that point. However, if a scmd |
145 | has timed out, unless hostt->eh_timedout() made lower layers forget | 145 | has timed out, unless hostt->eh_timed_out() made lower layers forget |
146 | about the scmd, which currently no LLDD does, the command is still | 146 | about the scmd, which currently no LLDD does, the command is still |
147 | active as long as lower layers are concerned and completion could | 147 | active as long as lower layers are concerned and completion could |
148 | occur at any time. Of course, all such completions are ignored as the | 148 | occur 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 | |||
346 | struct tags. Both can be still found in the SCSI subsystem, but | 346 | struct tags. Both can be still found in the SCSI subsystem, but |
347 | the typedefs have been moved to a single file, scsi_typedefs.h to | 347 | the typedefs have been moved to a single file, scsi_typedefs.h to |
348 | make their future removal easier, for example: | 348 | make their future removal easier, for example: |
349 | "typedef struct scsi_host_template Scsi_Host_Template;" | 349 | "typedef struct scsi_cmnd Scsi_Cmnd;" |
350 | 350 | ||
351 | Also, most C99 enhancements are encouraged to the extent they are supported | 351 | Also, most C99 enhancements are encouraged to the extent they are supported |
352 | by the relevant gcc compilers. So C99 style structure and array | 352 | by 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 | **/ |
721 | int scsi_track_queue_full(Scsi_Device *sdev, int depth) | 721 | int scsi_track_queue_full(struct scsi_device *sdev, int depth) |
722 | 722 | ||
723 | 723 | ||
724 | /** | 724 | /** |