1 |
3 |
xianfeng |
Release Date : Thu Nov 16 15:32:35 EST 2006 -
|
2 |
|
|
Sumant Patro
|
3 |
|
|
Current Version : 2.20.5.1 (scsi module), 2.20.2.6 (cmm module)
|
4 |
|
|
Older Version : 2.20.4.9 (scsi module), 2.20.2.6 (cmm module)
|
5 |
|
|
|
6 |
|
|
1. Changes in Initialization to fix kdump failure.
|
7 |
|
|
Send SYNC command on loading.
|
8 |
|
|
This command clears the pending commands in the adapter
|
9 |
|
|
and re-initialize its internal RAID structure.
|
10 |
|
|
Without this change, megaraid driver either panics or fails to
|
11 |
|
|
initialize the adapter during kdump's second kernel boot
|
12 |
|
|
if there are pending commands or interrupts from other devices
|
13 |
|
|
sharing the same IRQ.
|
14 |
|
|
2. Authors email-id domain name changed from lsil.com to lsi.com.
|
15 |
|
|
Also modified the MODULE_AUTHOR to megaraidlinux@lsi.com
|
16 |
|
|
|
17 |
|
|
Release Date : Fri May 19 09:31:45 EST 2006 - Seokmann Ju
|
18 |
|
|
Current Version : 2.20.4.9 (scsi module), 2.20.2.6 (cmm module)
|
19 |
|
|
Older Version : 2.20.4.8 (scsi module), 2.20.2.6 (cmm module)
|
20 |
|
|
|
21 |
|
|
1. Fixed a bug in megaraid_init_mbox().
|
22 |
|
|
Customer reported "garbage in file on x86_64 platform".
|
23 |
|
|
Root Cause: the driver registered controllers as 64-bit DMA capable
|
24 |
|
|
for those which are not support it.
|
25 |
|
|
Fix: Made change in the function inserting identification machanism
|
26 |
|
|
identifying 64-bit DMA capable controllers.
|
27 |
|
|
|
28 |
|
|
> -----Original Message-----
|
29 |
|
|
> From: Vasily Averin [mailto:vvs@sw.ru]
|
30 |
|
|
> Sent: Thursday, May 04, 2006 2:49 PM
|
31 |
|
|
> To: linux-scsi@vger.kernel.org; Kolli, Neela; Mukker, Atul;
|
32 |
|
|
> Ju, Seokmann; Bagalkote, Sreenivas;
|
33 |
|
|
> James.Bottomley@SteelEye.com; devel@openvz.org
|
34 |
|
|
> Subject: megaraid_mbox: garbage in file
|
35 |
|
|
>
|
36 |
|
|
> Hello all,
|
37 |
|
|
>
|
38 |
|
|
> I've investigated customers claim on the unstable work of
|
39 |
|
|
> their node and found a
|
40 |
|
|
> strange effect: reading from some files leads to the
|
41 |
|
|
> "attempt to access beyond end of device" messages.
|
42 |
|
|
>
|
43 |
|
|
> I've checked filesystem, memory on the node, motherboard BIOS
|
44 |
|
|
> version, but it
|
45 |
|
|
> does not help and issue still has been reproduced by simple
|
46 |
|
|
> file reading.
|
47 |
|
|
>
|
48 |
|
|
> Reproducer is simple:
|
49 |
|
|
>
|
50 |
|
|
> echo 0xffffffff >/proc/sys/dev/scsi/logging_level ;
|
51 |
|
|
> cat /vz/private/101/root/etc/ld.so.cache >/tmp/ttt ;
|
52 |
|
|
> echo 0 >/proc/sys/dev/scsi/logging
|
53 |
|
|
>
|
54 |
|
|
> It leads to the following messages in dmesg
|
55 |
|
|
>
|
56 |
|
|
> sd_init_command: disk=sda, block=871769260, count=26
|
57 |
|
|
> sda : block=871769260
|
58 |
|
|
> sda : reading 26/26 512 byte blocks.
|
59 |
|
|
> scsi_add_timer: scmd: f79ed980, time: 7500, (c02b1420)
|
60 |
|
|
> sd 0:1:0:0: send 0xf79ed980 sd 0:1:0:0:
|
61 |
|
|
> command: Read (10): 28 00 33 f6 24 ac 00 00 1a 00
|
62 |
|
|
> buffer = 0xf7cfb540, bufflen = 13312, done = 0xc0366b40,
|
63 |
|
|
> queuecommand 0xc0344010
|
64 |
|
|
> leaving scsi_dispatch_cmnd()
|
65 |
|
|
> scsi_delete_timer: scmd: f79ed980, rtn: 1
|
66 |
|
|
> sd 0:1:0:0: done 0xf79ed980 SUCCESS 0 sd 0:1:0:0:
|
67 |
|
|
> command: Read (10): 28 00 33 f6 24 ac 00 00 1a 00
|
68 |
|
|
> scsi host busy 1 failed 0
|
69 |
|
|
> sd 0:1:0:0: Notifying upper driver of completion (result 0)
|
70 |
|
|
> sd_rw_intr: sda: res=0x0
|
71 |
|
|
> 26 sectors total, 13312 bytes done.
|
72 |
|
|
> use_sg is 4
|
73 |
|
|
> attempt to access beyond end of device
|
74 |
|
|
> sda6: rw=0, want=1044134458, limit=951401367
|
75 |
|
|
> Buffer I/O error on device sda6, logical block 522067228
|
76 |
|
|
> attempt to access beyond end of device
|
77 |
|
|
|
78 |
|
|
2. When INQUIRY with EVPD bit set issued to the MegaRAID controller,
|
79 |
|
|
system memory gets corrupted.
|
80 |
|
|
Root Cause: MegaRAID F/W handle the INQUIRY with EVPD bit set
|
81 |
|
|
incorrectly.
|
82 |
|
|
Fix: MegaRAID F/W has fixed the problem and being process of release,
|
83 |
|
|
soon. Meanwhile, driver will filter out the request.
|
84 |
|
|
|
85 |
|
|
3. One of member in the data structure of the driver leads unaligne
|
86 |
|
|
issue on 64-bit platform.
|
87 |
|
|
Customer reporeted "kernel unaligned access addrss" issue when
|
88 |
|
|
application communicates with MegaRAID HBA driver.
|
89 |
|
|
Root Cause: in uioc_t structure, one of member had misaligned and it
|
90 |
|
|
led system to display the error message.
|
91 |
|
|
Fix: A patch submitted to community from following folk.
|
92 |
|
|
|
93 |
|
|
> -----Original Message-----
|
94 |
|
|
> From: linux-scsi-owner@vger.kernel.org
|
95 |
|
|
> [mailto:linux-scsi-owner@vger.kernel.org] On Behalf Of Sakurai Hiroomi
|
96 |
|
|
> Sent: Wednesday, July 12, 2006 4:20 AM
|
97 |
|
|
> To: linux-scsi@vger.kernel.org; linux-kernel@vger.kernel.org
|
98 |
|
|
> Subject: Re: Help: strange messages from kernel on IA64 platform
|
99 |
|
|
>
|
100 |
|
|
> Hi,
|
101 |
|
|
>
|
102 |
|
|
> I saw same message.
|
103 |
|
|
>
|
104 |
|
|
> When GAM(Global Array Manager) is started, The following
|
105 |
|
|
> message output.
|
106 |
|
|
> kernel: kernel unaligned access to 0xe0000001fe1080d4,
|
107 |
|
|
> ip=0xa000000200053371
|
108 |
|
|
>
|
109 |
|
|
> The uioc structure used by ioctl is defined by packed,
|
110 |
|
|
> the allignment of each member are disturbed.
|
111 |
|
|
> In a 64 bit structure, the allignment of member doesn't fit 64 bit
|
112 |
|
|
> boundary. this causes this messages.
|
113 |
|
|
> In a 32 bit structure, we don't see the message because the allinment
|
114 |
|
|
> of member fit 32 bit boundary even if packed is specified.
|
115 |
|
|
>
|
116 |
|
|
> patch
|
117 |
|
|
> I Add 32 bit dummy member to fit 64 bit boundary. I tested.
|
118 |
|
|
> We confirmed this patch fix the problem by IA64 server.
|
119 |
|
|
>
|
120 |
|
|
> **************************************************************
|
121 |
|
|
> ****************
|
122 |
|
|
> --- linux-2.6.9/drivers/scsi/megaraid/megaraid_ioctl.h.orig
|
123 |
|
|
> 2006-04-03 17:13:03.000000000 +0900
|
124 |
|
|
> +++ linux-2.6.9/drivers/scsi/megaraid/megaraid_ioctl.h
|
125 |
|
|
> 2006-04-03 17:14:09.000000000 +0900
|
126 |
|
|
> @@ -132,6 +132,10 @@
|
127 |
|
|
> /* Driver Data: */
|
128 |
|
|
> void __user * user_data;
|
129 |
|
|
> uint32_t user_data_len;
|
130 |
|
|
> +
|
131 |
|
|
> + /* 64bit alignment */
|
132 |
|
|
> + uint32_t pad_0xBC;
|
133 |
|
|
> +
|
134 |
|
|
> mraid_passthru_t __user *user_pthru;
|
135 |
|
|
>
|
136 |
|
|
> mraid_passthru_t *pthru32;
|
137 |
|
|
> **************************************************************
|
138 |
|
|
> ****************
|
139 |
|
|
|
140 |
|
|
Release Date : Mon Apr 11 12:27:22 EST 2006 - Seokmann Ju
|
141 |
|
|
Current Version : 2.20.4.8 (scsi module), 2.20.2.6 (cmm module)
|
142 |
|
|
Older Version : 2.20.4.7 (scsi module), 2.20.2.6 (cmm module)
|
143 |
|
|
|
144 |
|
|
1. Fixed a bug in megaraid_reset_handler().
|
145 |
|
|
Customer reported "Unable to handle kernel NULL pointer dereference
|
146 |
|
|
at virtual address 00000000" when system goes to reset condition
|
147 |
|
|
for some reason. It happened randomly.
|
148 |
|
|
Root Cause: in the megaraid_reset_handler(), there is possibility not
|
149 |
|
|
returning pending packets in the pend_list if there are multiple
|
150 |
|
|
pending packets.
|
151 |
|
|
Fix: Made the change in the driver so that it will return all packets
|
152 |
|
|
in the pend_list.
|
153 |
|
|
|
154 |
|
|
2. Added change request.
|
155 |
|
|
As found in the following URL, rmb() only didn't help the
|
156 |
|
|
problem. I had to increase the loop counter to 0xFFFFFF. (6 F's)
|
157 |
|
|
http://marc.theaimsgroup.com/?l=linux-scsi&m=110971060502497&w=2
|
158 |
|
|
|
159 |
|
|
I attached a patch for your reference, too.
|
160 |
|
|
Could you check and get this fix in your driver?
|
161 |
|
|
|
162 |
|
|
Best Regards,
|
163 |
|
|
Jun'ichi Nomura
|
164 |
|
|
|
165 |
|
|
Release Date : Fri Nov 11 12:27:22 EST 2005 - Seokmann Ju
|
166 |
|
|
Current Version : 2.20.4.7 (scsi module), 2.20.2.6 (cmm module)
|
167 |
|
|
Older Version : 2.20.4.6 (scsi module), 2.20.2.6 (cmm module)
|
168 |
|
|
|
169 |
|
|
1. Sorted out PCI IDs to remove megaraid support overlaps.
|
170 |
|
|
Based on the patch from Daniel, sorted out PCI IDs along with
|
171 |
|
|
charactor node name change from 'megadev' to 'megadev_legacy' to avoid
|
172 |
|
|
conflict.
|
173 |
|
|
---
|
174 |
|
|
Hopefully we'll be getting the build restriction zapped much sooner,
|
175 |
|
|
but we should also be thinking about totally removing the hardware
|
176 |
|
|
support overlap in the megaraid drivers.
|
177 |
|
|
|
178 |
|
|
This patch pencils in a date of Feb 06 for this, and performs some
|
179 |
|
|
printk abuse in hope that existing legacy users might pick up on what's
|
180 |
|
|
going on.
|
181 |
|
|
|
182 |
|
|
Signed-off-by: Daniel Drake
|
183 |
|
|
---
|
184 |
|
|
|
185 |
|
|
2. Fixed a issue: megaraid always fails to reset handler.
|
186 |
|
|
---
|
187 |
|
|
I found that the megaraid driver always fails to reset the
|
188 |
|
|
adapter with the following message:
|
189 |
|
|
megaraid: resetting the host...
|
190 |
|
|
megaraid mbox: reset sequence completed successfully
|
191 |
|
|
megaraid: fast sync command timed out
|
192 |
|
|
megaraid: reservation reset failed
|
193 |
|
|
when the "Cluster mode" of the adapter BIOS is enabled.
|
194 |
|
|
So, whenever the reset occurs, the adapter goes to
|
195 |
|
|
offline and just become unavailable.
|
196 |
|
|
|
197 |
|
|
Jun'ichi Nomura [mailto:jnomura@mtc.biglobe.ne.jp]
|
198 |
|
|
---
|
199 |
|
|
|
200 |
|
|
Release Date : Mon Mar 07 12:27:22 EST 2005 - Seokmann Ju
|
201 |
|
|
Current Version : 2.20.4.6 (scsi module), 2.20.2.6 (cmm module)
|
202 |
|
|
Older Version : 2.20.4.5 (scsi module), 2.20.2.5 (cmm module)
|
203 |
|
|
|
204 |
|
|
1. Added IOCTL backward compatibility.
|
205 |
|
|
Convert megaraid_mm driver to new compat_ioctl entry points.
|
206 |
|
|
I don't have easy access to hardware, so only compile tested.
|
207 |
|
|
- Signed-off-by:Andi Kleen
|
208 |
|
|
|
209 |
|
|
2. megaraid_mbox fix: wrong order of arguments in memset()
|
210 |
|
|
That, BTW, shows why cross-builds are useful-the only indication of
|
211 |
|
|
problem had been a new warning showing up in sparse output on alpha
|
212 |
|
|
build (number of exceeding 256 got truncated).
|
213 |
|
|
- Signed-off-by: Al Viro
|
214 |
|
|
|
215 |
|
|
|
216 |
|
|
3. Convert pci_module_init to pci_register_driver
|
217 |
|
|
Convert from pci_module_init to pci_register_driver
|
218 |
|
|
(from:http://kerneljanitors.org/TODO)
|
219 |
|
|
- Signed-off-by: Domen Puncer
|
220 |
|
|
|
221 |
|
|
4. Use the pre defined DMA mask constants from dma-mapping.h
|
222 |
|
|
Use the DMA_{64,32}BIT_MASK constants from dma-mapping.h when calling
|
223 |
|
|
pci_set_dma_mask() or pci_set_consistend_dma_mask(). See
|
224 |
|
|
http://marc.theaimsgroup.com/?t=108001993000001&r=1&w=2 for more
|
225 |
|
|
details.
|
226 |
|
|
Signed-off-by: Tobias Klauser
|
227 |
|
|
Signed-off-by: Domen Puncer
|
228 |
|
|
|
229 |
|
|
5. Remove SSID checking for Dobson, Lindsay, and Verde based products.
|
230 |
|
|
Checking the SSVID/SSID for controllers which have Dobson, Lindsay,
|
231 |
|
|
and Verde is unnecessary because device ID has been assigned by LSI
|
232 |
|
|
and it is unique value. So, all controllers with these IOPs have to be
|
233 |
|
|
supported by the driver regardless SSVID/SSID.
|
234 |
|
|
|
235 |
|
|
6. Date Thu, 27 Jan 2005 04:31:09 +0100
|
236 |
|
|
From Herbert Poetzl <>
|
237 |
|
|
Subject RFC: assert_spin_locked() for 2.6
|
238 |
|
|
|
239 |
|
|
Greetings!
|
240 |
|
|
|
241 |
|
|
overcautious programming will kill your kernel ;)
|
242 |
|
|
ever thought about checking a spin_lock or even
|
243 |
|
|
asserting that it must be held (maybe just for
|
244 |
|
|
spinlock debugging?) ...
|
245 |
|
|
|
246 |
|
|
there are several checks present in the kernel
|
247 |
|
|
where somebody does a variation on the following:
|
248 |
|
|
|
249 |
|
|
BUG_ON(!spin_is_locked(&some_lock));
|
250 |
|
|
|
251 |
|
|
so what's wrong about that? nothing, unless you
|
252 |
|
|
compile the code with CONFIG_DEBUG_SPINLOCK but
|
253 |
|
|
without CONFIG_SMP ... in which case the BUG()
|
254 |
|
|
will kill your kernel ...
|
255 |
|
|
|
256 |
|
|
maybe it's not advised to make such assertions,
|
257 |
|
|
but here is a solution which works for me ...
|
258 |
|
|
(compile tested for sh, x86_64 and x86, boot/run
|
259 |
|
|
tested for x86 only)
|
260 |
|
|
|
261 |
|
|
best,
|
262 |
|
|
Herbert
|
263 |
|
|
|
264 |
|
|
- Herbert Poetzl , Thu, 27 Jan 2005
|
265 |
|
|
|
266 |
|
|
Release Date : Thu Feb 03 12:27:22 EST 2005 - Seokmann Ju
|
267 |
|
|
Current Version : 2.20.4.5 (scsi module), 2.20.2.5 (cmm module)
|
268 |
|
|
Older Version : 2.20.4.4 (scsi module), 2.20.2.4 (cmm module)
|
269 |
|
|
|
270 |
|
|
1. Modified name of two attributes in scsi_host_template.
|
271 |
|
|
On Wed, 2005-02-02 at 10:56 -0500, Ju, Seokmann wrote:
|
272 |
|
|
> + .sdev_attrs = megaraid_device_attrs,
|
273 |
|
|
> + .shost_attrs = megaraid_class_device_attrs,
|
274 |
|
|
|
275 |
|
|
These are, perhaps, slightly confusing names.
|
276 |
|
|
The terms device and class_device have well defined meanings in the
|
277 |
|
|
generic device model, neither of which is what you mean here.
|
278 |
|
|
Why not simply megaraid_sdev_attrs and megaraid_shost_attrs?
|
279 |
|
|
|
280 |
|
|
Other than this, it looks fine to me too.
|
281 |
|
|
|
282 |
|
|
Release Date : Thu Jan 27 00:01:03 EST 2005 - Atul Mukker
|
283 |
|
|
Current Version : 2.20.4.4 (scsi module), 2.20.2.5 (cmm module)
|
284 |
|
|
Older Version : 2.20.4.3 (scsi module), 2.20.2.4 (cmm module)
|
285 |
|
|
|
286 |
|
|
1. Bump up the version of scsi module due to its conflict.
|
287 |
|
|
|
288 |
|
|
Release Date : Thu Jan 21 00:01:03 EST 2005 - Atul Mukker
|
289 |
|
|
Current Version : 2.20.4.3 (scsi module), 2.20.2.5 (cmm module)
|
290 |
|
|
Older Version : 2.20.4.2 (scsi module), 2.20.2.4 (cmm module)
|
291 |
|
|
|
292 |
|
|
1. Remove driver ioctl for logical drive to scsi address translation and
|
293 |
|
|
replace with the sysfs attribute. To remove drives and change
|
294 |
|
|
capacity, application shall now use the device attribute to get the
|
295 |
|
|
logical drive number for a scsi device. For adding newly created
|
296 |
|
|
logical drives, class device attribute would be required to uniquely
|
297 |
|
|
identify each controller.
|
298 |
|
|
- Atul Mukker
|
299 |
|
|
|
300 |
|
|
"James, I've been thinking about this a little more, and you may be on
|
301 |
|
|
to something here. Let each driver add files as such:"
|
302 |
|
|
|
303 |
|
|
- Matt Domsch , 12.15.2004
|
304 |
|
|
linux-scsi mailing list
|
305 |
|
|
|
306 |
|
|
|
307 |
|
|
"Then, if you simply publish your LD number as an extra parameter of
|
308 |
|
|
the device, you can look through /sys to find it."
|
309 |
|
|
|
310 |
|
|
- James Bottomley , 01.03.2005
|
311 |
|
|
linux-scsi mailing list
|
312 |
|
|
|
313 |
|
|
|
314 |
|
|
"I don't see why not ... it's your driver, you can publish whatever
|
315 |
|
|
extra information you need as scsi_device attributes; that was one of
|
316 |
|
|
the designs of the extensible attribute system."
|
317 |
|
|
|
318 |
|
|
- James Bottomley , 01.06.2005
|
319 |
|
|
linux-scsi mailing list
|
320 |
|
|
|
321 |
|
|
2. Add AMI megaraid support - Brian King
|
322 |
|
|
PCI_VENDOR_ID_AMI, PCI_DEVICE_ID_AMI_MEGARAID3,
|
323 |
|
|
PCI_VENDOR_ID_AMI, PCI_SUBSYS_ID_PERC3_DC,
|
324 |
|
|
|
325 |
|
|
3. Make some code static - Adrian Bunk
|
326 |
|
|
Date: Mon, 15 Nov 2004 03:14:57 +0100
|
327 |
|
|
|
328 |
|
|
The patch below makes some needlessly global code static.
|
329 |
|
|
-wait_queue_head_t wait_q;
|
330 |
|
|
+static wait_queue_head_t wait_q;
|
331 |
|
|
|
332 |
|
|
Signed-off-by: Adrian Bunk
|
333 |
|
|
|
334 |
|
|
4. Added NEC ROMB support - NEC MegaRAID PCI Express ROMB controller
|
335 |
|
|
PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_MEGARAID_NEC_ROMB_2E,
|
336 |
|
|
PCI_SUBSYS_ID_NEC, PCI_SUBSYS_ID_MEGARAID_NEC_ROMB_2E,
|
337 |
|
|
|
338 |
|
|
5. Fixed Tape drive issue : For any Direct CDB command to physical device
|
339 |
|
|
including tape, timeout value set by driver was 10 minutes. With this
|
340 |
|
|
value, most of command will return within timeout. However, for those
|
341 |
|
|
command like ERASE or FORMAT, it takes more than an hour depends on
|
342 |
|
|
capacity of the device and the command could be terminated before it
|
343 |
|
|
completes.
|
344 |
|
|
To address this issue, the 'timeout' field in the DCDB command will
|
345 |
|
|
have NO TIMEOUT (i.e., 4) value as its timeout on DCDB command.
|
346 |
|
|
|
347 |
|
|
|
348 |
|
|
|
349 |
|
|
Release Date : Thu Dec 9 19:10:23 EST 2004
|
350 |
|
|
- Sreenivas Bagalkote
|
351 |
|
|
|
352 |
|
|
Current Version : 2.20.4.2 (scsi module), 2.20.2.4 (cmm module)
|
353 |
|
|
Older Version : 2.20.4.1 (scsi module), 2.20.2.3 (cmm module)
|
354 |
|
|
|
355 |
|
|
i. Introduced driver ioctl that returns scsi address for a given ld.
|
356 |
|
|
|
357 |
|
|
"Why can't the existing sysfs interfaces be used to do this?"
|
358 |
|
|
- Brian King (brking@us.ibm.com)
|
359 |
|
|
|
360 |
|
|
"I've looked into solving this another way, but I cannot see how
|
361 |
|
|
to get this driver-private mapping of logical drive number-> HCTL
|
362 |
|
|
without putting code something like this into the driver."
|
363 |
|
|
|
364 |
|
|
"...and by providing a mapping a function to userspace, the driver
|
365 |
|
|
is free to change its mapping algorithm in the future if necessary .."
|
366 |
|
|
- Matt Domsch (Matt_Domsch@dell.com)
|
367 |
|
|
|
368 |
|
|
Release Date : Thu Dec 9 19:02:14 EST 2004 - Sreenivas Bagalkote
|
369 |
|
|
|
370 |
|
|
Current Version : 2.20.4.1 (scsi module), 2.20.2.3 (cmm module)
|
371 |
|
|
Older Version : 2.20.4.1 (scsi module), 2.20.2.2 (cmm module)
|
372 |
|
|
|
373 |
|
|
i. Fix a bug in kioc's dma buffer deallocation
|
374 |
|
|
|
375 |
|
|
Release Date : Thu Nov 4 18:24:56 EST 2004 - Sreenivas Bagalkote
|
376 |
|
|
|
377 |
|
|
Current Version : 2.20.4.1 (scsi module), 2.20.2.2 (cmm module)
|
378 |
|
|
Older Version : 2.20.4.0 (scsi module), 2.20.2.1 (cmm module)
|
379 |
|
|
|
380 |
|
|
i. Handle IOCTL cmd timeouts more properly.
|
381 |
|
|
|
382 |
|
|
ii. pci_dma_sync_{sg,single}_for_cpu was introduced into megaraid_mbox
|
383 |
|
|
incorrectly (instead of _for_device). Changed to appropriate
|
384 |
|
|
pci_dma_sync_{sg,single}_for_device.
|
385 |
|
|
|
386 |
|
|
Release Date : Wed Oct 06 11:15:29 EDT 2004 - Sreenivas Bagalkote
|
387 |
|
|
Current Version : 2.20.4.0 (scsi module), 2.20.2.1 (cmm module)
|
388 |
|
|
Older Version : 2.20.4.0 (scsi module), 2.20.2.0 (cmm module)
|
389 |
|
|
|
390 |
|
|
i. Remove CONFIG_COMPAT around register_ioctl32_conversion
|
391 |
|
|
|
392 |
|
|
Release Date : Mon Sep 27 22:15:07 EDT 2004 - Atul Mukker
|
393 |
|
|
Current Version : 2.20.4.0 (scsi module), 2.20.2.0 (cmm module)
|
394 |
|
|
Older Version : 2.20.3.1 (scsi module), 2.20.2.0 (cmm module)
|
395 |
|
|
|
396 |
|
|
i. Fix data corruption. Because of a typo in the driver, the IO packets
|
397 |
|
|
were wrongly shared by the ioctl path. This causes a whole IO command
|
398 |
|
|
to be replaced by an incoming ioctl command.
|
399 |
|
|
|
400 |
|
|
Release Date : Tue Aug 24 09:43:35 EDT 2004 - Atul Mukker
|
401 |
|
|
Current Version : 2.20.3.1 (scsi module), 2.20.2.0 (cmm module)
|
402 |
|
|
Older Version : 2.20.3.0 (scsi module), 2.20.2.0 (cmm module)
|
403 |
|
|
|
404 |
|
|
i. Function reordering so that inline functions are defined before they
|
405 |
|
|
are actually used. It is now mandatory for GCC 3.4.1 (current stable)
|
406 |
|
|
|
407 |
|
|
Declare some heavy-weight functions to be non-inlined,
|
408 |
|
|
megaraid_mbox_build_cmd, megaraid_mbox_runpendq,
|
409 |
|
|
megaraid_mbox_prepare_pthru, megaraid_mbox_prepare_epthru,
|
410 |
|
|
megaraid_busywait_mbox
|
411 |
|
|
|
412 |
|
|
- Andrew Morton , 08.19.2004
|
413 |
|
|
linux-scsi mailing list
|
414 |
|
|
|
415 |
|
|
"Something else to clean up after inclusion: every instance of an
|
416 |
|
|
inline function is actually rendered as a full function call, because
|
417 |
|
|
the function is always used before it is defined. Atul, please
|
418 |
|
|
re-arrange the code to eliminate the need for most (all) of the
|
419 |
|
|
function prototypes at the top of each file, and define (not just
|
420 |
|
|
declare with a prototype) each inline function before its first use"
|
421 |
|
|
|
422 |
|
|
- Matt Domsch , 07.27.2004
|
423 |
|
|
linux-scsi mailing list
|
424 |
|
|
|
425 |
|
|
|
426 |
|
|
ii. Display elapsed time (countdown) while waiting for FW to boot.
|
427 |
|
|
|
428 |
|
|
iii. Module compilation reorder in Makefile so that unresolved symbols do
|
429 |
|
|
not occur when driver is compiled non-modular.
|
430 |
|
|
|
431 |
|
|
Patrick J. LoPresti , 8.22.2004
|
432 |
|
|
linux-scsi mailing list
|
433 |
|
|
|
434 |
|
|
|
435 |
|
|
Release Date : Thu Aug 19 09:58:33 EDT 2004 - Atul Mukker
|
436 |
|
|
Current Version : 2.20.3.0 (scsi module), 2.20.2.0 (cmm module)
|
437 |
|
|
Older Version : 2.20.2.0 (scsi module), 2.20.1.0 (cmm module)
|
438 |
|
|
|
439 |
|
|
i. When copying the mailbox packets, copy only first 14 bytes (for 32-bit
|
440 |
|
|
mailboxes) and only first 22 bytes (for 64-bit mailboxes). This is to
|
441 |
|
|
avoid getting the stale values for busy bit. We want to set the busy
|
442 |
|
|
bit just before issuing command to the FW.
|
443 |
|
|
|
444 |
|
|
ii. In the reset handling, if the reseted command is not owned by the
|
445 |
|
|
driver, do not (wrongly) print information for the "attached" driver
|
446 |
|
|
packet.
|
447 |
|
|
|
448 |
|
|
iii. Have extended wait when issuing command in synchronous mode. This is
|
449 |
|
|
required for the cases where the option ROM is disabled and there is
|
450 |
|
|
no BIOS to start the controller. The FW starts to boot after receiving
|
451 |
|
|
the first command from the driver. The current driver has 1 second
|
452 |
|
|
timeout for the synchronous commands, which is far less than what is
|
453 |
|
|
actually required. We now wait up to MBOX_RESET_TIME (180 seconds) for
|
454 |
|
|
FW boot process.
|
455 |
|
|
|
456 |
|
|
iv. In megaraid_mbox_product_info, clear the mailbox contents completely
|
457 |
|
|
before preparing the command for inquiry3. This is to ensure that the
|
458 |
|
|
FW does not get junk values in the command.
|
459 |
|
|
|
460 |
|
|
v. Do away with the redundant LSI_CONFIG_COMPAT redefinition for
|
461 |
|
|
CONFIG_COMPAT. Replace with
|
462 |
|
|
|
463 |
|
|
- James Bottomley , 08.17.2004
|
464 |
|
|
linux-scsi mailing list
|
465 |
|
|
|
466 |
|
|
vi. Add support for 64-bit applications. Current drivers assume only
|
467 |
|
|
32-bit applications, even on 64-bit platforms. Use the "data" and
|
468 |
|
|
"buffer" fields of the mimd_t structure, instead of embedded 32-bit
|
469 |
|
|
addresses in application mailbox and passthru structures.
|
470 |
|
|
|
471 |
|
|
vii. Move the function declarations for the management module from
|
472 |
|
|
megaraid_mm.h to megaraid_mm.c
|
473 |
|
|
|
474 |
|
|
- Andrew Morton , 08.19.2004
|
475 |
|
|
linux-scsi mailing list
|
476 |
|
|
|
477 |
|
|
viii. Change default values for MEGARAID_NEWGEN, MEGARAID_MM, and
|
478 |
|
|
MEGARAID_MAILBOX to 'n' in Kconfig.megaraid
|
479 |
|
|
|
480 |
|
|
- Andrew Morton , 08.19.2004
|
481 |
|
|
linux-scsi mailing list
|
482 |
|
|
|
483 |
|
|
ix. replace udelay with msleep
|
484 |
|
|
|
485 |
|
|
x. Typos corrected in comments and whitespace adjustments, explicit
|
486 |
|
|
grouping of expressions.
|
487 |
|
|
|
488 |
|
|
|
489 |
|
|
Release Date : Fri Jul 23 15:22:07 EDT 2004 - Atul Mukker
|
490 |
|
|
Current Version : 2.20.2.0 (scsi module), 2.20.1.0 (cmm module)
|
491 |
|
|
Older Version : 2.20.1.0 (scsi module), 2.20.0.0 (cmm module)
|
492 |
|
|
|
493 |
|
|
i. Add PCI ids for Acer ROMB 2E solution
|
494 |
|
|
|
495 |
|
|
ii. Add PCI ids for I4
|
496 |
|
|
|
497 |
|
|
iii. Typo corrected for subsys id for megaraid sata 300-4x
|
498 |
|
|
|
499 |
|
|
iv. Remove yield() while mailbox handshake in synchronous commands
|
500 |
|
|
|
501 |
|
|
|
502 |
|
|
"My other main gripe is things like this:
|
503 |
|
|
|
504 |
|
|
+ // wait for maximum 1 second for status to post
|
505 |
|
|
+ for (i = 0; i < 40000; i++) {
|
506 |
|
|
+ if (mbox->numstatus != 0xFF) break;
|
507 |
|
|
+ udelay(25); yield();
|
508 |
|
|
+ }
|
509 |
|
|
|
510 |
|
|
which litter the driver. Use of yield() in drivers is deprecated."
|
511 |
|
|
|
512 |
|
|
- James Bottomley , 07.14.2004
|
513 |
|
|
linux-scsi mailing list
|
514 |
|
|
|
515 |
|
|
v. Remove redundant __megaraid_busywait_mbox routine
|
516 |
|
|
|
517 |
|
|
vi. Fix bug in the managment module, which causes a system lockup when the
|
518 |
|
|
IO module is loaded and then unloaded, followed by executing any
|
519 |
|
|
management utility. The current version of management module does not
|
520 |
|
|
handle the adapter unregister properly.
|
521 |
|
|
|
522 |
|
|
Specifically, it still keeps a reference to the unregistered
|
523 |
|
|
controllers. To avoid this, the static array adapters has been
|
524 |
|
|
replaced by a dynamic list, which gets updated every time an adapter
|
525 |
|
|
is added or removed.
|
526 |
|
|
|
527 |
|
|
Also, during unregistration of the IO module, the resources are
|
528 |
|
|
now released in the exact reverse order of the allocation time
|
529 |
|
|
sequence.
|
530 |
|
|
|
531 |
|
|
|
532 |
|
|
Release Date : Fri Jun 25 18:58:43 EDT 2004 - Atul Mukker
|
533 |
|
|
Current Version : 2.20.1.0
|
534 |
|
|
Older Version : megaraid 2.20.0.1
|
535 |
|
|
|
536 |
|
|
i. Stale list pointer in adapter causes kernel panic when module
|
537 |
|
|
megaraid_mbox is unloaded
|
538 |
|
|
|
539 |
|
|
|
540 |
|
|
Release Date : Thu Jun 24 20:37:11 EDT 2004 - Atul Mukker
|
541 |
|
|
Current Version : 2.20.0.1
|
542 |
|
|
Older Version : megaraid 2.20.0.00
|
543 |
|
|
|
544 |
|
|
i. Modules are not 'y' by default, but depend on current definition of
|
545 |
|
|
SCSI & PCI.
|
546 |
|
|
|
547 |
|
|
ii. Redundant structure mraid_driver_t removed.
|
548 |
|
|
|
549 |
|
|
iii. Miscellaneous indentation and goto/label fixes.
|
550 |
|
|
- Christoph Hellwig , 06.24.2004 linux-scsi
|
551 |
|
|
|
552 |
|
|
iv. scsi_host_put(), do just before completing HBA shutdown.
|
553 |
|
|
|
554 |
|
|
|
555 |
|
|
|
556 |
|
|
Release Date : Mon Jun 21 19:53:54 EDT 2004 - Atul Mukker
|
557 |
|
|
Current Version : 2.20.0.0
|
558 |
|
|
Older Version : megaraid 2.20.0.rc2 and 2.00.3
|
559 |
|
|
|
560 |
|
|
i. Independent module to interact with userland applications and
|
561 |
|
|
multiplex command to low level RAID module(s).
|
562 |
|
|
|
563 |
|
|
"Shared code in a third module, a "library module", is an acceptable
|
564 |
|
|
solution. modprobe automatically loads dependent modules, so users
|
565 |
|
|
running "modprobe driver1" or "modprobe driver2" would automatically
|
566 |
|
|
load the shared library module."
|
567 |
|
|
|
568 |
|
|
- Jeff Garzik 02.25.2004 LKML
|
569 |
|
|
|
570 |
|
|
"As Jeff hinted, if your userspace<->driver API is consistent between
|
571 |
|
|
your new MPT-based RAID controllers and your existing megaraid driver,
|
572 |
|
|
then perhaps you need a single small helper module (lsiioctl or some
|
573 |
|
|
better name), loaded by both mptraid and megaraid automatically, which
|
574 |
|
|
handles registering the /dev/megaraid node dynamically. In this case,
|
575 |
|
|
both mptraid and megaraid would register with lsiioctl for each
|
576 |
|
|
adapter discovered, and lsiioctl would essentially be a switch,
|
577 |
|
|
redirecting userspace tool ioctls to the appropriate driver."
|
578 |
|
|
|
579 |
|
|
- Matt Domsch 02.25.2004 LKML
|
580 |
|
|
|
581 |
|
|
ii. Remove C99 initializations from pci_device id.
|
582 |
|
|
|
583 |
|
|
"pci_id_table_g would be much more readable when not using C99
|
584 |
|
|
initializers.
|
585 |
|
|
PCI table doesn't change, there's lots of users that prefer the more
|
586 |
|
|
readable variant. And it's really far less and much easier to grok
|
587 |
|
|
lines without C99 initializers."
|
588 |
|
|
|
589 |
|
|
- Christoph Hellwig , 05.28.2004 linux-scsi
|
590 |
|
|
|
591 |
|
|
iii. Many fixes as suggested by Christoph Hellwig on
|
592 |
|
|
linux-scsi, 05.28.2004
|
593 |
|
|
|
594 |
|
|
iv. We now support up to 32 parallel ioctl commands instead of current 1.
|
595 |
|
|
There is a conscious effort to let memory allocation not fail for ioctl
|
596 |
|
|
commands.
|
597 |
|
|
|
598 |
|
|
v. Do away with internal memory management. Use pci_pool_(create|alloc)
|
599 |
|
|
instead.
|
600 |
|
|
|
601 |
|
|
vi. Kill tasklet when unloading the driver.
|
602 |
|
|
|
603 |
|
|
vii. Do not use "host_lock', driver has fine-grain locks now to protect all
|
604 |
|
|
data structures.
|
605 |
|
|
|
606 |
|
|
viii. Optimize the build scatter-gather list routine. The callers already
|
607 |
|
|
know the data transfer address and length.
|
608 |
|
|
|
609 |
|
|
ix. Better implementation of error handling and recovery. Driver now
|
610 |
|
|
performs extended errors recovery for instances like scsi cable pull.
|
611 |
|
|
|
612 |
|
|
x. Disassociate the management commands with an overlaid scsi command.
|
613 |
|
|
Driver now treats the management packets as special packets and has a
|
614 |
|
|
dedicated callback routine.
|