Commit | Line | Data |
---|---|---|
ed7e8ef7 JS |
1 | Release Date : Fri Nov 11 12:27:22 EST 2005 - Seokmann Ju <sju@lsil.com> |
2 | Current Version : 2.20.4.7 (scsi module), 2.20.2.6 (cmm module) | |
3 | Older Version : 2.20.4.6 (scsi module), 2.20.2.6 (cmm module) | |
4 | ||
5 | 1. Sorted out PCI IDs to remove megaraid support overlaps. | |
6 | Based on the patch from Daniel, sorted out PCI IDs along with | |
7 | charactor node name change from 'megadev' to 'megadev_legacy' to avoid | |
8 | conflict. | |
9 | --- | |
10 | Hopefully we'll be getting the build restriction zapped much sooner, | |
11 | but we should also be thinking about totally removing the hardware | |
12 | support overlap in the megaraid drivers. | |
13 | ||
14 | This patch pencils in a date of Feb 06 for this, and performs some | |
15 | printk abuse in hope that existing legacy users might pick up on what's | |
16 | going on. | |
17 | ||
18 | Signed-off-by: Daniel Drake <dsd@gentoo.org> | |
19 | --- | |
20 | ||
21 | 2. Fixed a issue: megaraid always fails to reset handler. | |
22 | --- | |
23 | I found that the megaraid driver always fails to reset the | |
24 | adapter with the following message: | |
25 | megaraid: resetting the host... | |
26 | megaraid mbox: reset sequence completed successfully | |
27 | megaraid: fast sync command timed out | |
28 | megaraid: reservation reset failed | |
29 | when the "Cluster mode" of the adapter BIOS is enabled. | |
30 | So, whenever the reset occurs, the adapter goes to | |
31 | offline and just become unavailable. | |
32 | ||
33 | Jun'ichi Nomura [mailto:jnomura@mtc.biglobe.ne.jp] | |
34 | --- | |
35 | ||
672b2d38 JS |
36 | Release Date : Mon Mar 07 12:27:22 EST 2005 - Seokmann Ju <sju@lsil.com> |
37 | Current Version : 2.20.4.6 (scsi module), 2.20.2.6 (cmm module) | |
38 | Older Version : 2.20.4.5 (scsi module), 2.20.2.5 (cmm module) | |
39 | ||
40 | 1. Added IOCTL backward compatibility. | |
41 | Convert megaraid_mm driver to new compat_ioctl entry points. | |
42 | I don't have easy access to hardware, so only compile tested. | |
43 | - Signed-off-by:Andi Kleen <ak@muc.de> | |
44 | ||
45 | 2. megaraid_mbox fix: wrong order of arguments in memset() | |
46 | That, BTW, shows why cross-builds are useful-the only indication of | |
47 | problem had been a new warning showing up in sparse output on alpha | |
48 | build (number of exceeding 256 got truncated). | |
49 | - Signed-off-by: Al Viro | |
50 | <viro@parcelfarce.linux.theplanet.co.uk> | |
51 | ||
52 | 3. Convert pci_module_init to pci_register_driver | |
53 | Convert from pci_module_init to pci_register_driver | |
54 | (from:http://kerneljanitors.org/TODO) | |
55 | - Signed-off-by: Domen Puncer <domen@coderock.org> | |
56 | ||
57 | 4. Use the pre defined DMA mask constants from dma-mapping.h | |
58 | Use the DMA_{64,32}BIT_MASK constants from dma-mapping.h when calling | |
59 | pci_set_dma_mask() or pci_set_consistend_dma_mask(). See | |
60 | http://marc.theaimsgroup.com/?t=108001993000001&r=1&w=2 for more | |
61 | details. | |
62 | Signed-off-by: Tobias Klauser <tklauser@nuerscht.ch> | |
63 | Signed-off-by: Domen Puncer <domen@coderock.org> | |
64 | ||
65 | 5. Remove SSID checking for Dobson, Lindsay, and Verde based products. | |
66 | Checking the SSVID/SSID for controllers which have Dobson, Lindsay, | |
67 | and Verde is unnecessary because device ID has been assigned by LSI | |
68 | and it is unique value. So, all controllers with these IOPs have to be | |
69 | supported by the driver regardless SSVID/SSID. | |
70 | ||
71 | 6. Date Thu, 27 Jan 2005 04:31:09 +0100 | |
72 | From Herbert Poetzl <> | |
73 | Subject RFC: assert_spin_locked() for 2.6 | |
74 | ||
75 | Greetings! | |
76 | ||
77 | overcautious programming will kill your kernel ;) | |
78 | ever thought about checking a spin_lock or even | |
79 | asserting that it must be held (maybe just for | |
80 | spinlock debugging?) ... | |
81 | ||
82 | there are several checks present in the kernel | |
83 | where somebody does a variation on the following: | |
84 | ||
85 | BUG_ON(!spin_is_locked(&some_lock)); | |
86 | ||
87 | so what's wrong about that? nothing, unless you | |
88 | compile the code with CONFIG_DEBUG_SPINLOCK but | |
89 | without CONFIG_SMP ... in which case the BUG() | |
90 | will kill your kernel ... | |
91 | ||
92 | maybe it's not advised to make such assertions, | |
93 | but here is a solution which works for me ... | |
94 | (compile tested for sh, x86_64 and x86, boot/run | |
95 | tested for x86 only) | |
96 | ||
97 | best, | |
98 | Herbert | |
99 | ||
100 | - Herbert Poetzl <herbert@13thfloor.at>, Thu, 27 Jan 2005 | |
101 | ||
1da177e4 LT |
102 | Release Date : Thu Feb 03 12:27:22 EST 2005 - Seokmann Ju <sju@lsil.com> |
103 | Current Version : 2.20.4.5 (scsi module), 2.20.2.5 (cmm module) | |
104 | Older Version : 2.20.4.4 (scsi module), 2.20.2.4 (cmm module) | |
105 | ||
106 | 1. Modified name of two attributes in scsi_host_template. | |
107 | On Wed, 2005-02-02 at 10:56 -0500, Ju, Seokmann wrote: | |
108 | > + .sdev_attrs = megaraid_device_attrs, | |
109 | > + .shost_attrs = megaraid_class_device_attrs, | |
110 | ||
111 | These are, perhaps, slightly confusing names. | |
112 | The terms device and class_device have well defined meanings in the | |
113 | generic device model, neither of which is what you mean here. | |
114 | Why not simply megaraid_sdev_attrs and megaraid_shost_attrs? | |
115 | ||
116 | Other than this, it looks fine to me too. | |
117 | ||
118 | Release Date : Thu Jan 27 00:01:03 EST 2005 - Atul Mukker <atulm@lsil.com> | |
119 | Current Version : 2.20.4.4 (scsi module), 2.20.2.5 (cmm module) | |
120 | Older Version : 2.20.4.3 (scsi module), 2.20.2.4 (cmm module) | |
121 | ||
122 | 1. Bump up the version of scsi module due to its conflict. | |
123 | ||
124 | Release Date : Thu Jan 21 00:01:03 EST 2005 - Atul Mukker <atulm@lsil.com> | |
125 | Current Version : 2.20.4.3 (scsi module), 2.20.2.5 (cmm module) | |
126 | Older Version : 2.20.4.2 (scsi module), 2.20.2.4 (cmm module) | |
127 | ||
128 | 1. Remove driver ioctl for logical drive to scsi address translation and | |
129 | replace with the sysfs attribute. To remove drives and change | |
130 | capacity, application shall now use the device attribute to get the | |
131 | logical drive number for a scsi device. For adding newly created | |
132 | logical drives, class device attribute would be required to uniquely | |
133 | identify each controller. | |
134 | - Atul Mukker <atulm@lsil.com> | |
135 | ||
136 | "James, I've been thinking about this a little more, and you may be on | |
137 | to something here. Let each driver add files as such:" | |
138 | ||
139 | - Matt Domsch <Matt_Domsch@dell.com>, 12.15.2004 | |
140 | linux-scsi mailing list | |
141 | ||
142 | ||
143 | "Then, if you simply publish your LD number as an extra parameter of | |
144 | the device, you can look through /sys to find it." | |
145 | ||
146 | - James Bottomley <James.Bottomley@SteelEye.com>, 01.03.2005 | |
147 | linux-scsi mailing list | |
148 | ||
149 | ||
150 | "I don't see why not ... it's your driver, you can publish whatever | |
151 | extra information you need as scsi_device attributes; that was one of | |
152 | the designs of the extensible attribute system." | |
153 | ||
154 | - James Bottomley <James.Bottomley@SteelEye.com>, 01.06.2005 | |
155 | linux-scsi mailing list | |
156 | ||
157 | 2. Add AMI megaraid support - Brian King <brking@charter.net> | |
158 | PCI_VENDOR_ID_AMI, PCI_DEVICE_ID_AMI_MEGARAID3, | |
159 | PCI_VENDOR_ID_AMI, PCI_SUBSYS_ID_PERC3_DC, | |
160 | ||
161 | 3. Make some code static - Adrian Bunk <bunk@stusta.de> | |
162 | Date: Mon, 15 Nov 2004 03:14:57 +0100 | |
163 | ||
164 | The patch below makes some needlessly global code static. | |
165 | -wait_queue_head_t wait_q; | |
166 | +static wait_queue_head_t wait_q; | |
167 | ||
168 | Signed-off-by: Adrian Bunk <bunk@stusta.de> | |
169 | ||
170 | 4. Added NEC ROMB support - NEC MegaRAID PCI Express ROMB controller | |
171 | PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_MEGARAID_NEC_ROMB_2E, | |
172 | PCI_SUBSYS_ID_NEC, PCI_SUBSYS_ID_MEGARAID_NEC_ROMB_2E, | |
173 | ||
174 | 5. Fixed Tape drive issue : For any Direct CDB command to physical device | |
175 | including tape, timeout value set by driver was 10 minutes. With this | |
176 | value, most of command will return within timeout. However, for those | |
177 | command like ERASE or FORMAT, it takes more than an hour depends on | |
178 | capacity of the device and the command could be terminated before it | |
179 | completes. | |
180 | To address this issue, the 'timeout' field in the DCDB command will | |
181 | have NO TIMEOUT (i.e., 4) value as its timeout on DCDB command. | |
182 | ||
183 | ||
184 | ||
185 | Release Date : Thu Dec 9 19:10:23 EST 2004 | |
186 | - Sreenivas Bagalkote <sreenib@lsil.com> | |
187 | ||
188 | Current Version : 2.20.4.2 (scsi module), 2.20.2.4 (cmm module) | |
189 | Older Version : 2.20.4.1 (scsi module), 2.20.2.3 (cmm module) | |
190 | ||
191 | i. Introduced driver ioctl that returns scsi address for a given ld. | |
192 | ||
193 | "Why can't the existing sysfs interfaces be used to do this?" | |
194 | - Brian King (brking@us.ibm.com) | |
195 | ||
196 | "I've looked into solving this another way, but I cannot see how | |
197 | to get this driver-private mapping of logical drive number-> HCTL | |
198 | without putting code something like this into the driver." | |
199 | ||
200 | "...and by providing a mapping a function to userspace, the driver | |
201 | is free to change its mapping algorithm in the future if necessary .." | |
202 | - Matt Domsch (Matt_Domsch@dell.com) | |
203 | ||
204 | Release Date : Thu Dec 9 19:02:14 EST 2004 - Sreenivas Bagalkote <sreenib@lsil.com> | |
205 | ||
206 | Current Version : 2.20.4.1 (scsi module), 2.20.2.3 (cmm module) | |
207 | Older Version : 2.20.4.1 (scsi module), 2.20.2.2 (cmm module) | |
208 | ||
209 | i. Fix a bug in kioc's dma buffer deallocation | |
210 | ||
211 | Release Date : Thu Nov 4 18:24:56 EST 2004 - Sreenivas Bagalkote <sreenib@lsil.com> | |
212 | ||
213 | Current Version : 2.20.4.1 (scsi module), 2.20.2.2 (cmm module) | |
214 | Older Version : 2.20.4.0 (scsi module), 2.20.2.1 (cmm module) | |
215 | ||
216 | i. Handle IOCTL cmd timeouts more properly. | |
217 | ||
218 | ii. pci_dma_sync_{sg,single}_for_cpu was introduced into megaraid_mbox | |
219 | incorrectly (instead of _for_device). Changed to appropriate | |
220 | pci_dma_sync_{sg,single}_for_device. | |
221 | ||
222 | Release Date : Wed Oct 06 11:15:29 EDT 2004 - Sreenivas Bagalkote <sreenib@lsil.com> | |
223 | Current Version : 2.20.4.0 (scsi module), 2.20.2.1 (cmm module) | |
224 | Older Version : 2.20.4.0 (scsi module), 2.20.2.0 (cmm module) | |
225 | ||
226 | i. Remove CONFIG_COMPAT around register_ioctl32_conversion | |
227 | ||
228 | Release Date : Mon Sep 27 22:15:07 EDT 2004 - Atul Mukker <atulm@lsil.com> | |
229 | Current Version : 2.20.4.0 (scsi module), 2.20.2.0 (cmm module) | |
230 | Older Version : 2.20.3.1 (scsi module), 2.20.2.0 (cmm module) | |
231 | ||
232 | i. Fix data corruption. Because of a typo in the driver, the IO packets | |
233 | were wrongly shared by the ioctl path. This causes a whole IO command | |
234 | to be replaced by an incoming ioctl command. | |
235 | ||
236 | Release Date : Tue Aug 24 09:43:35 EDT 2004 - Atul Mukker <atulm@lsil.com> | |
237 | Current Version : 2.20.3.1 (scsi module), 2.20.2.0 (cmm module) | |
238 | Older Version : 2.20.3.0 (scsi module), 2.20.2.0 (cmm module) | |
239 | ||
240 | i. Function reordering so that inline functions are defined before they | |
241 | are actually used. It is now mandatory for GCC 3.4.1 (current stable) | |
242 | ||
243 | Declare some heavy-weight functions to be non-inlined, | |
244 | megaraid_mbox_build_cmd, megaraid_mbox_runpendq, | |
245 | megaraid_mbox_prepare_pthru, megaraid_mbox_prepare_epthru, | |
246 | megaraid_busywait_mbox | |
247 | ||
248 | - Andrew Morton <akpm@osdl.org>, 08.19.2004 | |
249 | linux-scsi mailing list | |
250 | ||
251 | "Something else to clean up after inclusion: every instance of an | |
252 | inline function is actually rendered as a full function call, because | |
253 | the function is always used before it is defined. Atul, please | |
254 | re-arrange the code to eliminate the need for most (all) of the | |
255 | function prototypes at the top of each file, and define (not just | |
256 | declare with a prototype) each inline function before its first use" | |
257 | ||
258 | - Matt Domsch <Matt_Domsch@dell.com>, 07.27.2004 | |
259 | linux-scsi mailing list | |
260 | ||
261 | ||
262 | ii. Display elapsed time (countdown) while waiting for FW to boot. | |
263 | ||
264 | iii. Module compilation reorder in Makefile so that unresolved symbols do | |
265 | not occur when driver is compiled non-modular. | |
266 | ||
267 | Patrick J. LoPresti <patl@users.sourceforge.net>, 8.22.2004 | |
268 | linux-scsi mailing list | |
269 | ||
270 | ||
271 | Release Date : Thu Aug 19 09:58:33 EDT 2004 - Atul Mukker <atulm@lsil.com> | |
272 | Current Version : 2.20.3.0 (scsi module), 2.20.2.0 (cmm module) | |
273 | Older Version : 2.20.2.0 (scsi module), 2.20.1.0 (cmm module) | |
274 | ||
275 | i. When copying the mailbox packets, copy only first 14 bytes (for 32-bit | |
276 | mailboxes) and only first 22 bytes (for 64-bit mailboxes). This is to | |
277 | avoid getting the stale values for busy bit. We want to set the busy | |
278 | bit just before issuing command to the FW. | |
279 | ||
280 | ii. In the reset handling, if the reseted command is not owned by the | |
281 | driver, do not (wrongly) print information for the "attached" driver | |
282 | packet. | |
283 | ||
284 | iii. Have extended wait when issuing command in synchronous mode. This is | |
285 | required for the cases where the option ROM is disabled and there is | |
286 | no BIOS to start the controller. The FW starts to boot after receiving | |
287 | the first command from the driver. The current driver has 1 second | |
288 | timeout for the synchronous commands, which is far less than what is | |
289 | actually required. We now wait up to MBOX_RESET_TIME (180 seconds) for | |
290 | FW boot process. | |
291 | ||
292 | iv. In megaraid_mbox_product_info, clear the mailbox contents completely | |
293 | before preparing the command for inquiry3. This is to ensure that the | |
294 | FW does not get junk values in the command. | |
295 | ||
296 | v. Do away with the redundant LSI_CONFIG_COMPAT redefinition for | |
297 | CONFIG_COMPAT. Replace <asm/ioctl32.h> with <linux/ioctl32.h> | |
298 | ||
299 | - James Bottomley <James.Bottomley@SteelEye.com>, 08.17.2004 | |
300 | linux-scsi mailing list | |
301 | ||
302 | vi. Add support for 64-bit applications. Current drivers assume only | |
303 | 32-bit applications, even on 64-bit platforms. Use the "data" and | |
304 | "buffer" fields of the mimd_t structure, instead of embedded 32-bit | |
305 | addresses in application mailbox and passthru structures. | |
306 | ||
307 | vii. Move the function declarations for the management module from | |
308 | megaraid_mm.h to megaraid_mm.c | |
309 | ||
310 | - Andrew Morton <akpm@osdl.org>, 08.19.2004 | |
311 | linux-scsi mailing list | |
312 | ||
313 | viii. Change default values for MEGARAID_NEWGEN, MEGARAID_MM, and | |
314 | MEGARAID_MAILBOX to 'n' in Kconfig.megaraid | |
315 | ||
316 | - Andrew Morton <akpm@osdl.org>, 08.19.2004 | |
317 | linux-scsi mailing list | |
318 | ||
319 | ix. replace udelay with msleep | |
320 | ||
321 | x. Typos corrected in comments and whitespace adjustments, explicit | |
322 | grouping of expressions. | |
323 | ||
324 | ||
325 | Release Date : Fri Jul 23 15:22:07 EDT 2004 - Atul Mukker <atulm@lsil.com> | |
326 | Current Version : 2.20.2.0 (scsi module), 2.20.1.0 (cmm module) | |
327 | Older Version : 2.20.1.0 (scsi module), 2.20.0.0 (cmm module) | |
328 | ||
329 | i. Add PCI ids for Acer ROMB 2E solution | |
330 | ||
331 | ii. Add PCI ids for I4 | |
332 | ||
333 | iii. Typo corrected for subsys id for megaraid sata 300-4x | |
334 | ||
335 | iv. Remove yield() while mailbox handshake in synchronous commands | |
336 | ||
337 | ||
338 | "My other main gripe is things like this: | |
339 | ||
340 | + // wait for maximum 1 second for status to post | |
341 | + for (i = 0; i < 40000; i++) { | |
342 | + if (mbox->numstatus != 0xFF) break; | |
343 | + udelay(25); yield(); | |
344 | + } | |
345 | ||
346 | which litter the driver. Use of yield() in drivers is deprecated." | |
347 | ||
348 | - James Bottomley <James.Bottomley@SteelEye.com>, 07.14.2004 | |
349 | linux-scsi mailing list | |
350 | ||
351 | v. Remove redundant __megaraid_busywait_mbox routine | |
352 | ||
353 | vi. Fix bug in the managment module, which causes a system lockup when the | |
354 | IO module is loaded and then unloaded, followed by executing any | |
355 | management utility. The current version of management module does not | |
356 | handle the adapter unregister properly. | |
357 | ||
358 | Specifically, it still keeps a reference to the unregistered | |
359 | controllers. To avoid this, the static array adapters has been | |
360 | replaced by a dynamic list, which gets updated every time an adapter | |
361 | is added or removed. | |
362 | ||
363 | Also, during unregistration of the IO module, the resources are | |
364 | now released in the exact reverse order of the allocation time | |
365 | sequence. | |
366 | ||
367 | ||
368 | Release Date : Fri Jun 25 18:58:43 EDT 2004 - Atul Mukker <atulm@lsil.com> | |
369 | Current Version : 2.20.1.0 | |
370 | Older Version : megaraid 2.20.0.1 | |
371 | ||
372 | i. Stale list pointer in adapter causes kernel panic when module | |
373 | megaraid_mbox is unloaded | |
374 | ||
375 | ||
376 | Release Date : Thu Jun 24 20:37:11 EDT 2004 - Atul Mukker <atulm@lsil.com> | |
377 | Current Version : 2.20.0.1 | |
378 | Older Version : megaraid 2.20.0.00 | |
379 | ||
380 | i. Modules are not 'y' by default, but depend on current definition of | |
381 | SCSI & PCI. | |
382 | ||
383 | ii. Redundant structure mraid_driver_t removed. | |
384 | ||
385 | iii. Miscellaneous indentation and goto/label fixes. | |
386 | - Christoph Hellwig <hch@infradead.org>, 06.24.2004 linux-scsi | |
387 | ||
388 | iv. scsi_host_put(), do just before completing HBA shutdown. | |
389 | ||
390 | ||
391 | ||
392 | Release Date : Mon Jun 21 19:53:54 EDT 2004 - Atul Mukker <atulm@lsil.com> | |
393 | Current Version : 2.20.0.0 | |
394 | Older Version : megaraid 2.20.0.rc2 and 2.00.3 | |
395 | ||
396 | i. Independent module to interact with userland applications and | |
397 | multiplex command to low level RAID module(s). | |
398 | ||
399 | "Shared code in a third module, a "library module", is an acceptable | |
400 | solution. modprobe automatically loads dependent modules, so users | |
401 | running "modprobe driver1" or "modprobe driver2" would automatically | |
402 | load the shared library module." | |
403 | ||
404 | - Jeff Garzik <jgarzik@pobox.com> 02.25.2004 LKML | |
405 | ||
406 | "As Jeff hinted, if your userspace<->driver API is consistent between | |
407 | your new MPT-based RAID controllers and your existing megaraid driver, | |
408 | then perhaps you need a single small helper module (lsiioctl or some | |
409 | better name), loaded by both mptraid and megaraid automatically, which | |
410 | handles registering the /dev/megaraid node dynamically. In this case, | |
411 | both mptraid and megaraid would register with lsiioctl for each | |
412 | adapter discovered, and lsiioctl would essentially be a switch, | |
413 | redirecting userspace tool ioctls to the appropriate driver." | |
414 | ||
415 | - Matt Domsch <Matt_Domsch@dell.com> 02.25.2004 LKML | |
416 | ||
417 | ii. Remove C99 initializations from pci_device id. | |
418 | ||
419 | "pci_id_table_g would be much more readable when not using C99 | |
420 | initializers. | |
421 | PCI table doesn't change, there's lots of users that prefer the more | |
422 | readable variant. And it's really far less and much easier to grok | |
423 | lines without C99 initializers." | |
424 | ||
425 | - Christoph Hellwig <hch@infradead.org>, 05.28.2004 linux-scsi | |
426 | ||
427 | iii. Many fixes as suggested by Christoph Hellwig <hch@infradead.org> on | |
428 | linux-scsi, 05.28.2004 | |
429 | ||
430 | iv. We now support up to 32 parallel ioctl commands instead of current 1. | |
431 | There is a conscious effort to let memory allocation not fail for ioctl | |
432 | commands. | |
433 | ||
434 | v. Do away with internal memory management. Use pci_pool_(create|alloc) | |
435 | instead. | |
436 | ||
437 | vi. Kill tasklet when unloading the driver. | |
438 | ||
439 | vii. Do not use "host_lock', driver has fine-grain locks now to protect all | |
440 | data structures. | |
441 | ||
442 | viii. Optimize the build scatter-gather list routine. The callers already | |
443 | know the data transfer address and length. | |
444 | ||
445 | ix. Better implementation of error handling and recovery. Driver now | |
446 | performs extended errors recovery for instances like scsi cable pull. | |
447 | ||
448 | x. Disassociate the management commands with an overlaid scsi command. | |
449 | Driver now treats the management packets as special packets and has a | |
450 | dedicated callback routine. |