Back to home page

OSCL-LXR

 
 

    


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.