0001 Release Date : Thu Nov 16 15:32:35 EST 2006 -
0002 Sumant Patro <sumant.patro@lsi.com>
0003 Current Version : 2.20.5.1 (scsi module), 2.20.2.6 (cmm module)
0004 Older Version : 2.20.4.9 (scsi module), 2.20.2.6 (cmm module)
0005
0006 1. Changes in Initialization to fix kdump failure.
0007 Send SYNC command on loading.
0008 This command clears the pending commands in the adapter
0009 and re-initialize its internal RAID structure.
0010 Without this change, megaraid driver either panics or fails to
0011 initialize the adapter during kdump's second kernel boot
0012 if there are pending commands or interrupts from other devices
0013 sharing the same IRQ.
0014 2. Authors email-id domain name changed from lsil.com to lsi.com.
0015 Also modified the MODULE_AUTHOR to megaraidlinux@lsi.com
0016
0017 Release Date : Fri May 19 09:31:45 EST 2006 - Seokmann Ju <sju@lsil.com>
0018 Current Version : 2.20.4.9 (scsi module), 2.20.2.6 (cmm module)
0019 Older Version : 2.20.4.8 (scsi module), 2.20.2.6 (cmm module)
0020
0021 1. Fixed a bug in megaraid_init_mbox().
0022 Customer reported "garbage in file on x86_64 platform".
0023 Root Cause: the driver registered controllers as 64-bit DMA capable
0024 for those which are not support it.
0025 Fix: Made change in the function inserting identification machanism
0026 identifying 64-bit DMA capable controllers.
0027
0028 > -----Original Message-----
0029 > From: Vasily Averin [mailto:vvs@sw.ru]
0030 > Sent: Thursday, May 04, 2006 2:49 PM
0031 > To: linux-scsi@vger.kernel.org; Kolli, Neela; Mukker, Atul;
0032 > Ju, Seokmann; Bagalkote, Sreenivas;
0033 > James.Bottomley@SteelEye.com; devel@openvz.org
0034 > Subject: megaraid_mbox: garbage in file
0035 >
0036 > Hello all,
0037 >
0038 > I've investigated customers claim on the unstable work of
0039 > their node and found a
0040 > strange effect: reading from some files leads to the
0041 > "attempt to access beyond end of device" messages.
0042 >
0043 > I've checked filesystem, memory on the node, motherboard BIOS
0044 > version, but it
0045 > does not help and issue still has been reproduced by simple
0046 > file reading.
0047 >
0048 > Reproducer is simple:
0049 >
0050 > echo 0xffffffff >/proc/sys/dev/scsi/logging_level ;
0051 > cat /vz/private/101/root/etc/ld.so.cache >/tmp/ttt ;
0052 > echo 0 >/proc/sys/dev/scsi/logging
0053 >
0054 > It leads to the following messages in dmesg
0055 >
0056 > sd_init_command: disk=sda, block=871769260, count=26
0057 > sda : block=871769260
0058 > sda : reading 26/26 512 byte blocks.
0059 > scsi_add_timer: scmd: f79ed980, time: 7500, (c02b1420)
0060 > sd 0:1:0:0: send 0xf79ed980 sd 0:1:0:0:
0061 > command: Read (10): 28 00 33 f6 24 ac 00 00 1a 00
0062 > buffer = 0xf7cfb540, bufflen = 13312, done = 0xc0366b40,
0063 > queuecommand 0xc0344010
0064 > leaving scsi_dispatch_cmnd()
0065 > scsi_delete_timer: scmd: f79ed980, rtn: 1
0066 > sd 0:1:0:0: done 0xf79ed980 SUCCESS 0 sd 0:1:0:0:
0067 > command: Read (10): 28 00 33 f6 24 ac 00 00 1a 00
0068 > scsi host busy 1 failed 0
0069 > sd 0:1:0:0: Notifying upper driver of completion (result 0)
0070 > sd_rw_intr: sda: res=0x0
0071 > 26 sectors total, 13312 bytes done.
0072 > use_sg is 4
0073 > attempt to access beyond end of device
0074 > sda6: rw=0, want=1044134458, limit=951401367
0075 > Buffer I/O error on device sda6, logical block 522067228
0076 > attempt to access beyond end of device
0077
0078 2. When INQUIRY with EVPD bit set issued to the MegaRAID controller,
0079 system memory gets corrupted.
0080 Root Cause: MegaRAID F/W handle the INQUIRY with EVPD bit set
0081 incorrectly.
0082 Fix: MegaRAID F/W has fixed the problem and being process of release,
0083 soon. Meanwhile, driver will filter out the request.
0084
0085 3. One of member in the data structure of the driver leads unaligne
0086 issue on 64-bit platform.
0087 Customer reporeted "kernel unaligned access addrss" issue when
0088 application communicates with MegaRAID HBA driver.
0089 Root Cause: in uioc_t structure, one of member had misaligned and it
0090 led system to display the error message.
0091 Fix: A patch submitted to community from following folk.
0092
0093 > -----Original Message-----
0094 > From: linux-scsi-owner@vger.kernel.org
0095 > [mailto:linux-scsi-owner@vger.kernel.org] On Behalf Of Sakurai Hiroomi
0096 > Sent: Wednesday, July 12, 2006 4:20 AM
0097 > To: linux-scsi@vger.kernel.org; linux-kernel@vger.kernel.org
0098 > Subject: Re: Help: strange messages from kernel on IA64 platform
0099 >
0100 > Hi,
0101 >
0102 > I saw same message.
0103 >
0104 > When GAM(Global Array Manager) is started, The following
0105 > message output.
0106 > kernel: kernel unaligned access to 0xe0000001fe1080d4,
0107 > ip=0xa000000200053371
0108 >
0109 > The uioc structure used by ioctl is defined by packed,
0110 > the allignment of each member are disturbed.
0111 > In a 64 bit structure, the allignment of member doesn't fit 64 bit
0112 > boundary. this causes this messages.
0113 > In a 32 bit structure, we don't see the message because the allinment
0114 > of member fit 32 bit boundary even if packed is specified.
0115 >
0116 > patch
0117 > I Add 32 bit dummy member to fit 64 bit boundary. I tested.
0118 > We confirmed this patch fix the problem by IA64 server.
0119 >
0120 > **************************************************************
0121 > ****************
0122 > --- linux-2.6.9/drivers/scsi/megaraid/megaraid_ioctl.h.orig
0123 > 2006-04-03 17:13:03.000000000 +0900
0124 > +++ linux-2.6.9/drivers/scsi/megaraid/megaraid_ioctl.h
0125 > 2006-04-03 17:14:09.000000000 +0900
0126 > @@ -132,6 +132,10 @@
0127 > /* Driver Data: */
0128 > void __user * user_data;
0129 > uint32_t user_data_len;
0130 > +
0131 > + /* 64bit alignment */
0132 > + uint32_t pad_0xBC;
0133 > +
0134 > mraid_passthru_t __user *user_pthru;
0135 >
0136 > mraid_passthru_t *pthru32;
0137 > **************************************************************
0138 > ****************
0139
0140 Release Date : Mon Apr 11 12:27:22 EST 2006 - Seokmann Ju <sju@lsil.com>
0141 Current Version : 2.20.4.8 (scsi module), 2.20.2.6 (cmm module)
0142 Older Version : 2.20.4.7 (scsi module), 2.20.2.6 (cmm module)
0143
0144 1. Fixed a bug in megaraid_reset_handler().
0145 Customer reported "Unable to handle kernel NULL pointer dereference
0146 at virtual address 00000000" when system goes to reset condition
0147 for some reason. It happened randomly.
0148 Root Cause: in the megaraid_reset_handler(), there is possibility not
0149 returning pending packets in the pend_list if there are multiple
0150 pending packets.
0151 Fix: Made the change in the driver so that it will return all packets
0152 in the pend_list.
0153
0154 2. Added change request.
0155 As found in the following URL, rmb() only didn't help the
0156 problem. I had to increase the loop counter to 0xFFFFFF. (6 F's)
0157 http://marc.theaimsgroup.com/?l=linux-scsi&m=110971060502497&w=2
0158
0159 I attached a patch for your reference, too.
0160 Could you check and get this fix in your driver?
0161
0162 Best Regards,
0163 Jun'ichi Nomura
0164
0165 Release Date : Fri Nov 11 12:27:22 EST 2005 - Seokmann Ju <sju@lsil.com>
0166 Current Version : 2.20.4.7 (scsi module), 2.20.2.6 (cmm module)
0167 Older Version : 2.20.4.6 (scsi module), 2.20.2.6 (cmm module)
0168
0169 1. Sorted out PCI IDs to remove megaraid support overlaps.
0170 Based on the patch from Daniel, sorted out PCI IDs along with
0171 character node name change from 'megadev' to 'megadev_legacy' to avoid
0172 conflict.
0173 ---
0174 Hopefully we'll be getting the build restriction zapped much sooner,
0175 but we should also be thinking about totally removing the hardware
0176 support overlap in the megaraid drivers.
0177
0178 This patch pencils in a date of Feb 06 for this, and performs some
0179 printk abuse in hope that existing legacy users might pick up on what's
0180 going on.
0181
0182 Signed-off-by: Daniel Drake <dsd@gentoo.org>
0183 ---
0184
0185 2. Fixed a issue: megaraid always fails to reset handler.
0186 ---
0187 I found that the megaraid driver always fails to reset the
0188 adapter with the following message:
0189 megaraid: resetting the host...
0190 megaraid mbox: reset sequence completed successfully
0191 megaraid: fast sync command timed out
0192 megaraid: reservation reset failed
0193 when the "Cluster mode" of the adapter BIOS is enabled.
0194 So, whenever the reset occurs, the adapter goes to
0195 offline and just become unavailable.
0196
0197 Jun'ichi Nomura [mailto:jnomura@mtc.biglobe.ne.jp]
0198 ---
0199
0200 Release Date : Mon Mar 07 12:27:22 EST 2005 - Seokmann Ju <sju@lsil.com>
0201 Current Version : 2.20.4.6 (scsi module), 2.20.2.6 (cmm module)
0202 Older Version : 2.20.4.5 (scsi module), 2.20.2.5 (cmm module)
0203
0204 1. Added IOCTL backward compatibility.
0205 Convert megaraid_mm driver to new compat_ioctl entry points.
0206 I don't have easy access to hardware, so only compile tested.
0207 - Signed-off-by:Andi Kleen <ak@muc.de>
0208
0209 2. megaraid_mbox fix: wrong order of arguments in memset()
0210 That, BTW, shows why cross-builds are useful-the only indication of
0211 problem had been a new warning showing up in sparse output on alpha
0212 build (number of exceeding 256 got truncated).
0213 - Signed-off-by: Al Viro
0214 <viro@parcelfarce.linux.theplanet.co.uk>
0215
0216 3. Convert pci_module_init to pci_register_driver
0217 Convert from pci_module_init to pci_register_driver
0218 (from:http://kernelnewbies.org/KernelJanitors/TODO)
0219 - Signed-off-by: Domen Puncer <domen@coderock.org>
0220
0221 4. Use the pre defined DMA mask constants from dma-mapping.h
0222 Use the DMA_{64,32}BIT_MASK constants from dma-mapping.h when calling
0223 pci_set_dma_mask() or pci_set_consistent_dma_mask(). See
0224 http://marc.theaimsgroup.com/?t=108001993000001&r=1&w=2 for more
0225 details.
0226 Signed-off-by: Tobias Klauser <tklauser@nuerscht.ch>
0227 Signed-off-by: Domen Puncer <domen@coderock.org>
0228
0229 5. Remove SSID checking for Dobson, Lindsay, and Verde based products.
0230 Checking the SSVID/SSID for controllers which have Dobson, Lindsay,
0231 and Verde is unnecessary because device ID has been assigned by LSI
0232 and it is unique value. So, all controllers with these IOPs have to be
0233 supported by the driver regardless SSVID/SSID.
0234
0235 6. Date Thu, 27 Jan 2005 04:31:09 +0100
0236 From Herbert Poetzl <>
0237 Subject RFC: assert_spin_locked() for 2.6
0238
0239 Greetings!
0240
0241 overcautious programming will kill your kernel ;)
0242 ever thought about checking a spin_lock or even
0243 asserting that it must be held (maybe just for
0244 spinlock debugging?) ...
0245
0246 there are several checks present in the kernel
0247 where somebody does a variation on the following:
0248
0249 BUG_ON(!spin_is_locked(&some_lock));
0250
0251 so what's wrong about that? nothing, unless you
0252 compile the code with CONFIG_DEBUG_SPINLOCK but
0253 without CONFIG_SMP ... in which case the BUG()
0254 will kill your kernel ...
0255
0256 maybe it's not advised to make such assertions,
0257 but here is a solution which works for me ...
0258 (compile tested for sh, x86_64 and x86, boot/run
0259 tested for x86 only)
0260
0261 best,
0262 Herbert
0263
0264 - Herbert Poetzl <herbert@13thfloor.at>, Thu, 27 Jan 2005
0265
0266 Release Date : Thu Feb 03 12:27:22 EST 2005 - Seokmann Ju <sju@lsil.com>
0267 Current Version : 2.20.4.5 (scsi module), 2.20.2.5 (cmm module)
0268 Older Version : 2.20.4.4 (scsi module), 2.20.2.4 (cmm module)
0269
0270 1. Modified name of two attributes in scsi_host_template.
0271 On Wed, 2005-02-02 at 10:56 -0500, Ju, Seokmann wrote:
0272 > + .sdev_attrs = megaraid_device_attrs,
0273 > + .shost_attrs = megaraid_class_device_attrs,
0274
0275 These are, perhaps, slightly confusing names.
0276 The terms device and class_device have well defined meanings in the
0277 generic device model, neither of which is what you mean here.
0278 Why not simply megaraid_sdev_attrs and megaraid_shost_attrs?
0279
0280 Other than this, it looks fine to me too.
0281
0282 Release Date : Thu Jan 27 00:01:03 EST 2005 - Atul Mukker <atulm@lsil.com>
0283 Current Version : 2.20.4.4 (scsi module), 2.20.2.5 (cmm module)
0284 Older Version : 2.20.4.3 (scsi module), 2.20.2.4 (cmm module)
0285
0286 1. Bump up the version of scsi module due to its conflict.
0287
0288 Release Date : Thu Jan 21 00:01:03 EST 2005 - Atul Mukker <atulm@lsil.com>
0289 Current Version : 2.20.4.3 (scsi module), 2.20.2.5 (cmm module)
0290 Older Version : 2.20.4.2 (scsi module), 2.20.2.4 (cmm module)
0291
0292 1. Remove driver ioctl for logical drive to scsi address translation and
0293 replace with the sysfs attribute. To remove drives and change
0294 capacity, application shall now use the device attribute to get the
0295 logical drive number for a scsi device. For adding newly created
0296 logical drives, class device attribute would be required to uniquely
0297 identify each controller.
0298 - Atul Mukker <atulm@lsil.com>
0299
0300 "James, I've been thinking about this a little more, and you may be on
0301 to something here. Let each driver add files as such:"
0302
0303 - Matt Domsch <Matt_Domsch@dell.com>, 12.15.2004
0304 linux-scsi mailing list
0305
0306
0307 "Then, if you simply publish your LD number as an extra parameter of
0308 the device, you can look through /sys to find it."
0309
0310 - James Bottomley <James.Bottomley@SteelEye.com>, 01.03.2005
0311 linux-scsi mailing list
0312
0313
0314 "I don't see why not ... it's your driver, you can publish whatever
0315 extra information you need as scsi_device attributes; that was one of
0316 the designs of the extensible attribute system."
0317
0318 - James Bottomley <James.Bottomley@SteelEye.com>, 01.06.2005
0319 linux-scsi mailing list
0320
0321 2. Add AMI megaraid support - Brian King <brking@charter.net>
0322 PCI_VENDOR_ID_AMI, PCI_DEVICE_ID_AMI_MEGARAID3,
0323 PCI_VENDOR_ID_AMI, PCI_SUBSYS_ID_PERC3_DC,
0324
0325 3. Make some code static - Adrian Bunk <bunk@stusta.de>
0326 Date: Mon, 15 Nov 2004 03:14:57 +0100
0327
0328 The patch below makes some needlessly global code static.
0329 -wait_queue_head_t wait_q;
0330 +static wait_queue_head_t wait_q;
0331
0332 Signed-off-by: Adrian Bunk <bunk@stusta.de>
0333
0334 4. Added NEC ROMB support - NEC MegaRAID PCI Express ROMB controller
0335 PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_MEGARAID_NEC_ROMB_2E,
0336 PCI_SUBSYS_ID_NEC, PCI_SUBSYS_ID_MEGARAID_NEC_ROMB_2E,
0337
0338 5. Fixed Tape drive issue : For any Direct CDB command to physical device
0339 including tape, timeout value set by driver was 10 minutes. With this
0340 value, most of command will return within timeout. However, for those
0341 command like ERASE or FORMAT, it takes more than an hour depends on
0342 capacity of the device and the command could be terminated before it
0343 completes.
0344 To address this issue, the 'timeout' field in the DCDB command will
0345 have NO TIMEOUT (i.e., 4) value as its timeout on DCDB command.
0346
0347
0348
0349 Release Date : Thu Dec 9 19:10:23 EST 2004
0350 - Sreenivas Bagalkote <sreenib@lsil.com>
0351
0352 Current Version : 2.20.4.2 (scsi module), 2.20.2.4 (cmm module)
0353 Older Version : 2.20.4.1 (scsi module), 2.20.2.3 (cmm module)
0354
0355 i. Introduced driver ioctl that returns scsi address for a given ld.
0356
0357 "Why can't the existing sysfs interfaces be used to do this?"
0358 - Brian King (brking@us.ibm.com)
0359
0360 "I've looked into solving this another way, but I cannot see how
0361 to get this driver-private mapping of logical drive number-> HCTL
0362 without putting code something like this into the driver."
0363
0364 "...and by providing a mapping a function to userspace, the driver
0365 is free to change its mapping algorithm in the future if necessary .."
0366 - Matt Domsch (Matt_Domsch@dell.com)
0367
0368 Release Date : Thu Dec 9 19:02:14 EST 2004 - Sreenivas Bagalkote <sreenib@lsil.com>
0369
0370 Current Version : 2.20.4.1 (scsi module), 2.20.2.3 (cmm module)
0371 Older Version : 2.20.4.1 (scsi module), 2.20.2.2 (cmm module)
0372
0373 i. Fix a bug in kioc's dma buffer deallocation
0374
0375 Release Date : Thu Nov 4 18:24:56 EST 2004 - Sreenivas Bagalkote <sreenib@lsil.com>
0376
0377 Current Version : 2.20.4.1 (scsi module), 2.20.2.2 (cmm module)
0378 Older Version : 2.20.4.0 (scsi module), 2.20.2.1 (cmm module)
0379
0380 i. Handle IOCTL cmd timeouts more properly.
0381
0382 ii. pci_dma_sync_{sg,single}_for_cpu was introduced into megaraid_mbox
0383 incorrectly (instead of _for_device). Changed to appropriate
0384 pci_dma_sync_{sg,single}_for_device.
0385
0386 Release Date : Wed Oct 06 11:15:29 EDT 2004 - Sreenivas Bagalkote <sreenib@lsil.com>
0387 Current Version : 2.20.4.0 (scsi module), 2.20.2.1 (cmm module)
0388 Older Version : 2.20.4.0 (scsi module), 2.20.2.0 (cmm module)
0389
0390 i. Remove CONFIG_COMPAT around register_ioctl32_conversion
0391
0392 Release Date : Mon Sep 27 22:15:07 EDT 2004 - Atul Mukker <atulm@lsil.com>
0393 Current Version : 2.20.4.0 (scsi module), 2.20.2.0 (cmm module)
0394 Older Version : 2.20.3.1 (scsi module), 2.20.2.0 (cmm module)
0395
0396 i. Fix data corruption. Because of a typo in the driver, the IO packets
0397 were wrongly shared by the ioctl path. This causes a whole IO command
0398 to be replaced by an incoming ioctl command.
0399
0400 Release Date : Tue Aug 24 09:43:35 EDT 2004 - Atul Mukker <atulm@lsil.com>
0401 Current Version : 2.20.3.1 (scsi module), 2.20.2.0 (cmm module)
0402 Older Version : 2.20.3.0 (scsi module), 2.20.2.0 (cmm module)
0403
0404 i. Function reordering so that inline functions are defined before they
0405 are actually used. It is now mandatory for GCC 3.4.1 (current stable)
0406
0407 Declare some heavy-weight functions to be non-inlined,
0408 megaraid_mbox_build_cmd, megaraid_mbox_runpendq,
0409 megaraid_mbox_prepare_pthru, megaraid_mbox_prepare_epthru,
0410 megaraid_busywait_mbox
0411
0412 - Andrew Morton, 08.19.2004
0413 linux-scsi mailing list
0414
0415 "Something else to clean up after inclusion: every instance of an
0416 inline function is actually rendered as a full function call, because
0417 the function is always used before it is defined. Atul, please
0418 re-arrange the code to eliminate the need for most (all) of the
0419 function prototypes at the top of each file, and define (not just
0420 declare with a prototype) each inline function before its first use"
0421
0422 - Matt Domsch <Matt_Domsch@dell.com>, 07.27.2004
0423 linux-scsi mailing list
0424
0425
0426 ii. Display elapsed time (countdown) while waiting for FW to boot.
0427
0428 iii. Module compilation reorder in Makefile so that unresolved symbols do
0429 not occur when driver is compiled non-modular.
0430
0431 Patrick J. LoPresti <patl@users.sourceforge.net>, 8.22.2004
0432 linux-scsi mailing list
0433
0434
0435 Release Date : Thu Aug 19 09:58:33 EDT 2004 - Atul Mukker <atulm@lsil.com>
0436 Current Version : 2.20.3.0 (scsi module), 2.20.2.0 (cmm module)
0437 Older Version : 2.20.2.0 (scsi module), 2.20.1.0 (cmm module)
0438
0439 i. When copying the mailbox packets, copy only first 14 bytes (for 32-bit
0440 mailboxes) and only first 22 bytes (for 64-bit mailboxes). This is to
0441 avoid getting the stale values for busy bit. We want to set the busy
0442 bit just before issuing command to the FW.
0443
0444 ii. In the reset handling, if the reseted command is not owned by the
0445 driver, do not (wrongly) print information for the "attached" driver
0446 packet.
0447
0448 iii. Have extended wait when issuing command in synchronous mode. This is
0449 required for the cases where the option ROM is disabled and there is
0450 no BIOS to start the controller. The FW starts to boot after receiving
0451 the first command from the driver. The current driver has 1 second
0452 timeout for the synchronous commands, which is far less than what is
0453 actually required. We now wait up to MBOX_RESET_TIME (180 seconds) for
0454 FW boot process.
0455
0456 iv. In megaraid_mbox_product_info, clear the mailbox contents completely
0457 before preparing the command for inquiry3. This is to ensure that the
0458 FW does not get junk values in the command.
0459
0460 v. Do away with the redundant LSI_CONFIG_COMPAT redefinition for
0461 CONFIG_COMPAT. Replace <asm/ioctl32.h> with <linux/ioctl32.h>
0462
0463 - James Bottomley <James.Bottomley@SteelEye.com>, 08.17.2004
0464 linux-scsi mailing list
0465
0466 vi. Add support for 64-bit applications. Current drivers assume only
0467 32-bit applications, even on 64-bit platforms. Use the "data" and
0468 "buffer" fields of the mimd_t structure, instead of embedded 32-bit
0469 addresses in application mailbox and passthru structures.
0470
0471 vii. Move the function declarations for the management module from
0472 megaraid_mm.h to megaraid_mm.c
0473
0474 - Andrew Morton, 08.19.2004
0475 linux-scsi mailing list
0476
0477 viii. Change default values for MEGARAID_NEWGEN, MEGARAID_MM, and
0478 MEGARAID_MAILBOX to 'n' in Kconfig.megaraid
0479
0480 - Andrew Morton, 08.19.2004
0481 linux-scsi mailing list
0482
0483 ix. replace udelay with msleep
0484
0485 x. Typos corrected in comments and whitespace adjustments, explicit
0486 grouping of expressions.
0487
0488
0489 Release Date : Fri Jul 23 15:22:07 EDT 2004 - Atul Mukker <atulm@lsil.com>
0490 Current Version : 2.20.2.0 (scsi module), 2.20.1.0 (cmm module)
0491 Older Version : 2.20.1.0 (scsi module), 2.20.0.0 (cmm module)
0492
0493 i. Add PCI ids for Acer ROMB 2E solution
0494
0495 ii. Add PCI ids for I4
0496
0497 iii. Typo corrected for subsys id for megaraid sata 300-4x
0498
0499 iv. Remove yield() while mailbox handshake in synchronous commands
0500
0501
0502 "My other main gripe is things like this:
0503
0504 + // wait for maximum 1 second for status to post
0505 + for (i = 0; i < 40000; i++) {
0506 + if (mbox->numstatus != 0xFF) break;
0507 + udelay(25); yield();
0508 + }
0509
0510 which litter the driver. Use of yield() in drivers is deprecated."
0511
0512 - James Bottomley <James.Bottomley@SteelEye.com>, 07.14.2004
0513 linux-scsi mailing list
0514
0515 v. Remove redundant __megaraid_busywait_mbox routine
0516
0517 vi. Fix bug in the management module, which causes a system lockup when the
0518 IO module is loaded and then unloaded, followed by executing any
0519 management utility. The current version of management module does not
0520 handle the adapter unregister properly.
0521
0522 Specifically, it still keeps a reference to the unregistered
0523 controllers. To avoid this, the static array adapters has been
0524 replaced by a dynamic list, which gets updated every time an adapter
0525 is added or removed.
0526
0527 Also, during unregistration of the IO module, the resources are
0528 now released in the exact reverse order of the allocation time
0529 sequence.
0530
0531
0532 Release Date : Fri Jun 25 18:58:43 EDT 2004 - Atul Mukker <atulm@lsil.com>
0533 Current Version : 2.20.1.0
0534 Older Version : megaraid 2.20.0.1
0535
0536 i. Stale list pointer in adapter causes kernel panic when module
0537 megaraid_mbox is unloaded
0538
0539
0540 Release Date : Thu Jun 24 20:37:11 EDT 2004 - Atul Mukker <atulm@lsil.com>
0541 Current Version : 2.20.0.1
0542 Older Version : megaraid 2.20.0.00
0543
0544 i. Modules are not 'y' by default, but depend on current definition of
0545 SCSI & PCI.
0546
0547 ii. Redundant structure mraid_driver_t removed.
0548
0549 iii. Miscellaneous indentation and goto/label fixes.
0550 - Christoph Hellwig <hch@infradead.org>, 06.24.2004 linux-scsi
0551
0552 iv. scsi_host_put(), do just before completing HBA shutdown.
0553
0554
0555
0556 Release Date : Mon Jun 21 19:53:54 EDT 2004 - Atul Mukker <atulm@lsil.com>
0557 Current Version : 2.20.0.0
0558 Older Version : megaraid 2.20.0.rc2 and 2.00.3
0559
0560 i. Independent module to interact with userland applications and
0561 multiplex command to low level RAID module(s).
0562
0563 "Shared code in a third module, a "library module", is an acceptable
0564 solution. modprobe automatically loads dependent modules, so users
0565 running "modprobe driver1" or "modprobe driver2" would automatically
0566 load the shared library module."
0567
0568 - Jeff Garzik <jgarzik@pobox.com> 02.25.2004 LKML
0569
0570 "As Jeff hinted, if your userspace<->driver API is consistent between
0571 your new MPT-based RAID controllers and your existing megaraid driver,
0572 then perhaps you need a single small helper module (lsiioctl or some
0573 better name), loaded by both mptraid and megaraid automatically, which
0574 handles registering the /dev/megaraid node dynamically. In this case,
0575 both mptraid and megaraid would register with lsiioctl for each
0576 adapter discovered, and lsiioctl would essentially be a switch,
0577 redirecting userspace tool ioctls to the appropriate driver."
0578
0579 - Matt Domsch <Matt_Domsch@dell.com> 02.25.2004 LKML
0580
0581 ii. Remove C99 initializations from pci_device id.
0582
0583 "pci_id_table_g would be much more readable when not using C99
0584 initializers.
0585 PCI table doesn't change, there's lots of users that prefer the more
0586 readable variant. And it's really far less and much easier to grok
0587 lines without C99 initializers."
0588
0589 - Christoph Hellwig <hch@infradead.org>, 05.28.2004 linux-scsi
0590
0591 iii. Many fixes as suggested by Christoph Hellwig <hch@infradead.org> on
0592 linux-scsi, 05.28.2004
0593
0594 iv. We now support up to 32 parallel ioctl commands instead of current 1.
0595 There is a conscious effort to let memory allocation not fail for ioctl
0596 commands.
0597
0598 v. Do away with internal memory management. Use pci_pool_(create|alloc)
0599 instead.
0600
0601 vi. Kill tasklet when unloading the driver.
0602
0603 vii. Do not use "host_lock', driver has fine-grain locks now to protect all
0604 data structures.
0605
0606 viii. Optimize the build scatter-gather list routine. The callers already
0607 know the data transfer address and length.
0608
0609 ix. Better implementation of error handling and recovery. Driver now
0610 performs extended errors recovery for instances like scsi cable pull.
0611
0612 x. Disassociate the management commands with an overlaid scsi command.
0613 Driver now treats the management packets as special packets and has a
0614 dedicated callback routine.