18c2ecf20Sopenharmony_ciRelease Date	: Thu Nov 16 15:32:35 EST 2006 -
28c2ecf20Sopenharmony_ci				Sumant Patro <sumant.patro@lsi.com>
38c2ecf20Sopenharmony_ciCurrent Version : 2.20.5.1 (scsi module), 2.20.2.6 (cmm module)
48c2ecf20Sopenharmony_ciOlder Version	: 2.20.4.9 (scsi module), 2.20.2.6 (cmm module)
58c2ecf20Sopenharmony_ci
68c2ecf20Sopenharmony_ci1.	Changes in Initialization to fix kdump failure.
78c2ecf20Sopenharmony_ci	Send SYNC command on loading.
88c2ecf20Sopenharmony_ci	This command clears the pending commands in the adapter
98c2ecf20Sopenharmony_ci	and re-initialize its internal RAID structure.
108c2ecf20Sopenharmony_ci	Without this change, megaraid driver either panics or fails to
118c2ecf20Sopenharmony_ci	initialize the adapter during kdump's second kernel boot
128c2ecf20Sopenharmony_ci	if there are pending commands or interrupts from other devices
138c2ecf20Sopenharmony_ci	sharing the same IRQ.
148c2ecf20Sopenharmony_ci2. 	Authors email-id domain name changed from lsil.com to lsi.com.
158c2ecf20Sopenharmony_ci	Also modified the MODULE_AUTHOR to megaraidlinux@lsi.com
168c2ecf20Sopenharmony_ci
178c2ecf20Sopenharmony_ciRelease Date	: Fri May 19 09:31:45 EST 2006 - Seokmann Ju <sju@lsil.com>
188c2ecf20Sopenharmony_ciCurrent Version : 2.20.4.9 (scsi module), 2.20.2.6 (cmm module)
198c2ecf20Sopenharmony_ciOlder Version	: 2.20.4.8 (scsi module), 2.20.2.6 (cmm module)
208c2ecf20Sopenharmony_ci
218c2ecf20Sopenharmony_ci1.	Fixed a bug in megaraid_init_mbox().
228c2ecf20Sopenharmony_ci	Customer reported "garbage in file on x86_64 platform".
238c2ecf20Sopenharmony_ci	Root Cause: the driver registered controllers as 64-bit DMA capable
248c2ecf20Sopenharmony_ci	for those which are not support it.
258c2ecf20Sopenharmony_ci	Fix: Made change in the function inserting identification machanism
268c2ecf20Sopenharmony_ci	identifying 64-bit DMA capable controllers.
278c2ecf20Sopenharmony_ci
288c2ecf20Sopenharmony_ci	> -----Original Message-----
298c2ecf20Sopenharmony_ci	> From: Vasily Averin [mailto:vvs@sw.ru]
308c2ecf20Sopenharmony_ci	> Sent: Thursday, May 04, 2006 2:49 PM
318c2ecf20Sopenharmony_ci	> To: linux-scsi@vger.kernel.org; Kolli, Neela; Mukker, Atul;
328c2ecf20Sopenharmony_ci	> Ju, Seokmann; Bagalkote, Sreenivas;
338c2ecf20Sopenharmony_ci	> James.Bottomley@SteelEye.com; devel@openvz.org
348c2ecf20Sopenharmony_ci	> Subject: megaraid_mbox: garbage in file
358c2ecf20Sopenharmony_ci	>
368c2ecf20Sopenharmony_ci	> Hello all,
378c2ecf20Sopenharmony_ci	>
388c2ecf20Sopenharmony_ci	> I've investigated customers claim on the unstable work of
398c2ecf20Sopenharmony_ci	> their node and found a
408c2ecf20Sopenharmony_ci	> strange effect: reading from some files leads to the
418c2ecf20Sopenharmony_ci	>  "attempt to access beyond end of device" messages.
428c2ecf20Sopenharmony_ci	>
438c2ecf20Sopenharmony_ci	> I've checked filesystem, memory on the node, motherboard BIOS
448c2ecf20Sopenharmony_ci	> version, but it
458c2ecf20Sopenharmony_ci	> does not help and issue still has been reproduced by simple
468c2ecf20Sopenharmony_ci	> file reading.
478c2ecf20Sopenharmony_ci	>
488c2ecf20Sopenharmony_ci	> Reproducer is simple:
498c2ecf20Sopenharmony_ci	>
508c2ecf20Sopenharmony_ci	> echo 0xffffffff >/proc/sys/dev/scsi/logging_level ;
518c2ecf20Sopenharmony_ci	> cat /vz/private/101/root/etc/ld.so.cache >/tmp/ttt  ;
528c2ecf20Sopenharmony_ci	> echo 0 >/proc/sys/dev/scsi/logging
538c2ecf20Sopenharmony_ci	>
548c2ecf20Sopenharmony_ci	> It leads to the following messages in dmesg
558c2ecf20Sopenharmony_ci	>
568c2ecf20Sopenharmony_ci	> sd_init_command: disk=sda, block=871769260, count=26
578c2ecf20Sopenharmony_ci	> sda : block=871769260
588c2ecf20Sopenharmony_ci	> sda : reading 26/26 512 byte blocks.
598c2ecf20Sopenharmony_ci	> scsi_add_timer: scmd: f79ed980, time: 7500, (c02b1420)
608c2ecf20Sopenharmony_ci	> sd 0:1:0:0: send 0xf79ed980                  sd 0:1:0:0:
618c2ecf20Sopenharmony_ci	>         command: Read (10): 28 00 33 f6 24 ac 00 00 1a 00
628c2ecf20Sopenharmony_ci	> buffer = 0xf7cfb540, bufflen = 13312, done = 0xc0366b40,
638c2ecf20Sopenharmony_ci	> queuecommand 0xc0344010
648c2ecf20Sopenharmony_ci	> leaving scsi_dispatch_cmnd()
658c2ecf20Sopenharmony_ci	> scsi_delete_timer: scmd: f79ed980, rtn: 1
668c2ecf20Sopenharmony_ci	> sd 0:1:0:0: done 0xf79ed980 SUCCESS        0 sd 0:1:0:0:
678c2ecf20Sopenharmony_ci	>         command: Read (10): 28 00 33 f6 24 ac 00 00 1a 00
688c2ecf20Sopenharmony_ci	> scsi host busy 1 failed 0
698c2ecf20Sopenharmony_ci	> sd 0:1:0:0: Notifying upper driver of completion (result 0)
708c2ecf20Sopenharmony_ci	> sd_rw_intr: sda: res=0x0
718c2ecf20Sopenharmony_ci	> 26 sectors total, 13312 bytes done.
728c2ecf20Sopenharmony_ci	> use_sg is 4
738c2ecf20Sopenharmony_ci	> attempt to access beyond end of device
748c2ecf20Sopenharmony_ci	> sda6: rw=0, want=1044134458, limit=951401367
758c2ecf20Sopenharmony_ci	> Buffer I/O error on device sda6, logical block 522067228
768c2ecf20Sopenharmony_ci	> attempt to access beyond end of device
778c2ecf20Sopenharmony_ci
788c2ecf20Sopenharmony_ci2.	When INQUIRY with EVPD bit set issued to the MegaRAID controller,
798c2ecf20Sopenharmony_ci	system memory gets corrupted.
808c2ecf20Sopenharmony_ci	Root Cause: MegaRAID F/W handle the INQUIRY with EVPD bit set
818c2ecf20Sopenharmony_ci	incorrectly.
828c2ecf20Sopenharmony_ci	Fix: MegaRAID F/W has fixed the problem and being process of release,
838c2ecf20Sopenharmony_ci	soon. Meanwhile, driver will filter out the request.
848c2ecf20Sopenharmony_ci
858c2ecf20Sopenharmony_ci3.	One of member in the data structure of the driver leads unaligne
868c2ecf20Sopenharmony_ci	issue on 64-bit platform.
878c2ecf20Sopenharmony_ci	Customer reporeted "kernel unaligned access addrss" issue when
888c2ecf20Sopenharmony_ci	application communicates with MegaRAID HBA driver.
898c2ecf20Sopenharmony_ci	Root Cause: in uioc_t structure, one of member had misaligned and it
908c2ecf20Sopenharmony_ci	led system to display the error message.
918c2ecf20Sopenharmony_ci	Fix: A patch submitted to community from following folk.
928c2ecf20Sopenharmony_ci
938c2ecf20Sopenharmony_ci	> -----Original Message-----
948c2ecf20Sopenharmony_ci	> From: linux-scsi-owner@vger.kernel.org
958c2ecf20Sopenharmony_ci	> [mailto:linux-scsi-owner@vger.kernel.org] On Behalf Of Sakurai Hiroomi
968c2ecf20Sopenharmony_ci	> Sent: Wednesday, July 12, 2006 4:20 AM
978c2ecf20Sopenharmony_ci	> To: linux-scsi@vger.kernel.org; linux-kernel@vger.kernel.org
988c2ecf20Sopenharmony_ci	> Subject: Re: Help: strange messages from kernel on IA64 platform
998c2ecf20Sopenharmony_ci	>
1008c2ecf20Sopenharmony_ci	> Hi,
1018c2ecf20Sopenharmony_ci	>
1028c2ecf20Sopenharmony_ci	> I saw same message.
1038c2ecf20Sopenharmony_ci	>
1048c2ecf20Sopenharmony_ci	> When GAM(Global Array Manager) is started, The following
1058c2ecf20Sopenharmony_ci	> message output.
1068c2ecf20Sopenharmony_ci	> kernel: kernel unaligned access to 0xe0000001fe1080d4,
1078c2ecf20Sopenharmony_ci	> ip=0xa000000200053371
1088c2ecf20Sopenharmony_ci	>
1098c2ecf20Sopenharmony_ci	> The uioc structure used by ioctl is defined by packed,
1108c2ecf20Sopenharmony_ci	> the allignment of each member are disturbed.
1118c2ecf20Sopenharmony_ci	> In a 64 bit structure, the allignment of member doesn't fit 64 bit
1128c2ecf20Sopenharmony_ci	> boundary. this causes this messages.
1138c2ecf20Sopenharmony_ci	> In a 32 bit structure, we don't see the message because the allinment
1148c2ecf20Sopenharmony_ci	> of member fit 32 bit boundary even if packed is specified.
1158c2ecf20Sopenharmony_ci	>
1168c2ecf20Sopenharmony_ci	> patch
1178c2ecf20Sopenharmony_ci	> I Add 32 bit dummy member to fit 64 bit boundary. I tested.
1188c2ecf20Sopenharmony_ci	> We confirmed this patch fix the problem by IA64 server.
1198c2ecf20Sopenharmony_ci	>
1208c2ecf20Sopenharmony_ci	> **************************************************************
1218c2ecf20Sopenharmony_ci	> ****************
1228c2ecf20Sopenharmony_ci	> --- linux-2.6.9/drivers/scsi/megaraid/megaraid_ioctl.h.orig
1238c2ecf20Sopenharmony_ci	> 2006-04-03 17:13:03.000000000 +0900
1248c2ecf20Sopenharmony_ci	> +++ linux-2.6.9/drivers/scsi/megaraid/megaraid_ioctl.h
1258c2ecf20Sopenharmony_ci	> 2006-04-03 17:14:09.000000000 +0900
1268c2ecf20Sopenharmony_ci	> @@ -132,6 +132,10 @@
1278c2ecf20Sopenharmony_ci	>  /* Driver Data: */
1288c2ecf20Sopenharmony_ci	>          void __user *           user_data;
1298c2ecf20Sopenharmony_ci	>          uint32_t                user_data_len;
1308c2ecf20Sopenharmony_ci	> +
1318c2ecf20Sopenharmony_ci	> +        /* 64bit alignment */
1328c2ecf20Sopenharmony_ci	> +        uint32_t                pad_0xBC;
1338c2ecf20Sopenharmony_ci	> +
1348c2ecf20Sopenharmony_ci	>          mraid_passthru_t        __user *user_pthru;
1358c2ecf20Sopenharmony_ci	>
1368c2ecf20Sopenharmony_ci	>          mraid_passthru_t        *pthru32;
1378c2ecf20Sopenharmony_ci	> **************************************************************
1388c2ecf20Sopenharmony_ci	> ****************
1398c2ecf20Sopenharmony_ci
1408c2ecf20Sopenharmony_ciRelease Date	: Mon Apr 11 12:27:22 EST 2006 - Seokmann Ju <sju@lsil.com>
1418c2ecf20Sopenharmony_ciCurrent Version : 2.20.4.8 (scsi module), 2.20.2.6 (cmm module)
1428c2ecf20Sopenharmony_ciOlder Version	: 2.20.4.7 (scsi module), 2.20.2.6 (cmm module)
1438c2ecf20Sopenharmony_ci
1448c2ecf20Sopenharmony_ci1.	Fixed a bug in megaraid_reset_handler().
1458c2ecf20Sopenharmony_ci	Customer reported "Unable to handle kernel NULL pointer dereference
1468c2ecf20Sopenharmony_ci	at virtual address 00000000" when system goes to reset condition
1478c2ecf20Sopenharmony_ci	for some reason. It happened randomly.
1488c2ecf20Sopenharmony_ci	Root Cause: in the megaraid_reset_handler(), there is possibility not
1498c2ecf20Sopenharmony_ci	returning pending packets in the pend_list if there are multiple
1508c2ecf20Sopenharmony_ci	pending packets.
1518c2ecf20Sopenharmony_ci	Fix: Made the change in the driver so that it will return all packets
1528c2ecf20Sopenharmony_ci	in the pend_list.
1538c2ecf20Sopenharmony_ci
1548c2ecf20Sopenharmony_ci2.	Added change request.
1558c2ecf20Sopenharmony_ci	As found in the following URL, rmb() only didn't help the
1568c2ecf20Sopenharmony_ci	problem. I had to increase the loop counter to 0xFFFFFF. (6 F's)
1578c2ecf20Sopenharmony_ci	http://marc.theaimsgroup.com/?l=linux-scsi&m=110971060502497&w=2
1588c2ecf20Sopenharmony_ci
1598c2ecf20Sopenharmony_ci	I attached a patch for your reference, too.
1608c2ecf20Sopenharmony_ci	Could you check and get this fix in your driver?
1618c2ecf20Sopenharmony_ci
1628c2ecf20Sopenharmony_ci	Best Regards,
1638c2ecf20Sopenharmony_ci	Jun'ichi Nomura
1648c2ecf20Sopenharmony_ci
1658c2ecf20Sopenharmony_ciRelease Date	: Fri Nov 11 12:27:22 EST 2005 - Seokmann Ju <sju@lsil.com>
1668c2ecf20Sopenharmony_ciCurrent Version : 2.20.4.7 (scsi module), 2.20.2.6 (cmm module)
1678c2ecf20Sopenharmony_ciOlder Version	: 2.20.4.6 (scsi module), 2.20.2.6 (cmm module)
1688c2ecf20Sopenharmony_ci
1698c2ecf20Sopenharmony_ci1.	Sorted out PCI IDs to remove megaraid support overlaps.
1708c2ecf20Sopenharmony_ci	Based on the patch from Daniel, sorted out PCI IDs along with
1718c2ecf20Sopenharmony_ci	character node name change from 'megadev' to 'megadev_legacy' to avoid
1728c2ecf20Sopenharmony_ci	conflict.
1738c2ecf20Sopenharmony_ci	---
1748c2ecf20Sopenharmony_ci	Hopefully we'll be getting the build restriction zapped much sooner, 
1758c2ecf20Sopenharmony_ci	but we should also be thinking about totally removing the hardware 
1768c2ecf20Sopenharmony_ci	support overlap in the megaraid drivers.
1778c2ecf20Sopenharmony_ci
1788c2ecf20Sopenharmony_ci	This patch pencils in a date of Feb 06 for this, and performs some 
1798c2ecf20Sopenharmony_ci	printk abuse in hope that existing legacy users might pick up on what's
1808c2ecf20Sopenharmony_ci	going on.
1818c2ecf20Sopenharmony_ci
1828c2ecf20Sopenharmony_ci	Signed-off-by: Daniel Drake <dsd@gentoo.org>
1838c2ecf20Sopenharmony_ci	---
1848c2ecf20Sopenharmony_ci
1858c2ecf20Sopenharmony_ci2.	Fixed a issue: megaraid always fails to reset handler.
1868c2ecf20Sopenharmony_ci	---
1878c2ecf20Sopenharmony_ci	I found that the megaraid driver always fails to reset the
1888c2ecf20Sopenharmony_ci	adapter with the following message:
1898c2ecf20Sopenharmony_ci		megaraid: resetting the host...
1908c2ecf20Sopenharmony_ci		megaraid mbox: reset sequence completed successfully
1918c2ecf20Sopenharmony_ci		megaraid: fast sync command timed out
1928c2ecf20Sopenharmony_ci		megaraid: reservation reset failed
1938c2ecf20Sopenharmony_ci	when the "Cluster mode" of the adapter BIOS is enabled.
1948c2ecf20Sopenharmony_ci	So, whenever the reset occurs, the adapter goes to
1958c2ecf20Sopenharmony_ci	offline and just become unavailable.
1968c2ecf20Sopenharmony_ci
1978c2ecf20Sopenharmony_ci	Jun'ichi Nomura [mailto:jnomura@mtc.biglobe.ne.jp]
1988c2ecf20Sopenharmony_ci	---
1998c2ecf20Sopenharmony_ci
2008c2ecf20Sopenharmony_ciRelease Date	: Mon Mar 07 12:27:22 EST 2005 - Seokmann Ju <sju@lsil.com>
2018c2ecf20Sopenharmony_ciCurrent Version : 2.20.4.6 (scsi module), 2.20.2.6 (cmm module)
2028c2ecf20Sopenharmony_ciOlder Version	: 2.20.4.5 (scsi module), 2.20.2.5 (cmm module)
2038c2ecf20Sopenharmony_ci
2048c2ecf20Sopenharmony_ci1.	Added IOCTL backward compatibility.
2058c2ecf20Sopenharmony_ci	Convert megaraid_mm driver to new compat_ioctl entry points.
2068c2ecf20Sopenharmony_ci	I don't have easy access to hardware, so only compile tested.
2078c2ecf20Sopenharmony_ci		- Signed-off-by:Andi Kleen <ak@muc.de>
2088c2ecf20Sopenharmony_ci
2098c2ecf20Sopenharmony_ci2.	megaraid_mbox fix: wrong order of arguments in memset()
2108c2ecf20Sopenharmony_ci	That, BTW, shows why cross-builds are useful-the only indication of
2118c2ecf20Sopenharmony_ci	problem had been a new warning showing up in sparse output on alpha
2128c2ecf20Sopenharmony_ci	build (number of exceeding 256 got truncated).
2138c2ecf20Sopenharmony_ci		- Signed-off-by: Al Viro
2148c2ecf20Sopenharmony_ci		<viro@parcelfarce.linux.theplanet.co.uk>
2158c2ecf20Sopenharmony_ci
2168c2ecf20Sopenharmony_ci3.	Convert pci_module_init to pci_register_driver
2178c2ecf20Sopenharmony_ci	Convert from pci_module_init to pci_register_driver
2188c2ecf20Sopenharmony_ci	(from:http://kernelnewbies.org/KernelJanitors/TODO)
2198c2ecf20Sopenharmony_ci		- Signed-off-by: Domen Puncer <domen@coderock.org>
2208c2ecf20Sopenharmony_ci
2218c2ecf20Sopenharmony_ci4.	Use the pre defined DMA mask constants from dma-mapping.h
2228c2ecf20Sopenharmony_ci	Use the DMA_{64,32}BIT_MASK constants from dma-mapping.h when calling
2238c2ecf20Sopenharmony_ci	pci_set_dma_mask() or pci_set_consistend_dma_mask(). See
2248c2ecf20Sopenharmony_ci	http://marc.theaimsgroup.com/?t=108001993000001&r=1&w=2 for more
2258c2ecf20Sopenharmony_ci	details.
2268c2ecf20Sopenharmony_ci		Signed-off-by: Tobias Klauser <tklauser@nuerscht.ch>
2278c2ecf20Sopenharmony_ci		Signed-off-by: Domen Puncer <domen@coderock.org>
2288c2ecf20Sopenharmony_ci
2298c2ecf20Sopenharmony_ci5.	Remove SSID checking for Dobson, Lindsay, and Verde based products.
2308c2ecf20Sopenharmony_ci	Checking the SSVID/SSID for controllers which have Dobson, Lindsay,
2318c2ecf20Sopenharmony_ci	and Verde is unnecessary because device ID has been assigned by LSI
2328c2ecf20Sopenharmony_ci	and it is unique value. So, all controllers with these IOPs have to be
2338c2ecf20Sopenharmony_ci	supported by the driver regardless SSVID/SSID.
2348c2ecf20Sopenharmony_ci
2358c2ecf20Sopenharmony_ci6.	Date Thu, 27 Jan 2005 04:31:09 +0100 
2368c2ecf20Sopenharmony_ci	From Herbert Poetzl <> 
2378c2ecf20Sopenharmony_ci	Subject RFC: assert_spin_locked() for 2.6 
2388c2ecf20Sopenharmony_ci
2398c2ecf20Sopenharmony_ci	Greetings!
2408c2ecf20Sopenharmony_ci
2418c2ecf20Sopenharmony_ci	overcautious programming will kill your kernel ;)
2428c2ecf20Sopenharmony_ci	ever thought about checking a spin_lock or even
2438c2ecf20Sopenharmony_ci	asserting that it must be held (maybe just for
2448c2ecf20Sopenharmony_ci	spinlock debugging?) ...
2458c2ecf20Sopenharmony_ci
2468c2ecf20Sopenharmony_ci	there are several checks present in the kernel
2478c2ecf20Sopenharmony_ci	where somebody does a variation on the following:
2488c2ecf20Sopenharmony_ci
2498c2ecf20Sopenharmony_ci	  BUG_ON(!spin_is_locked(&some_lock));
2508c2ecf20Sopenharmony_ci
2518c2ecf20Sopenharmony_ci	so what's wrong about that? nothing, unless you
2528c2ecf20Sopenharmony_ci	compile the code with CONFIG_DEBUG_SPINLOCK but 
2538c2ecf20Sopenharmony_ci	without CONFIG_SMP ... in which case the BUG()
2548c2ecf20Sopenharmony_ci	will kill your kernel ...
2558c2ecf20Sopenharmony_ci
2568c2ecf20Sopenharmony_ci	maybe it's not advised to make such assertions, 
2578c2ecf20Sopenharmony_ci	but here is a solution which works for me ...
2588c2ecf20Sopenharmony_ci	(compile tested for sh, x86_64 and x86, boot/run
2598c2ecf20Sopenharmony_ci	tested for x86 only)
2608c2ecf20Sopenharmony_ci
2618c2ecf20Sopenharmony_ci	best,
2628c2ecf20Sopenharmony_ci	Herbert
2638c2ecf20Sopenharmony_ci
2648c2ecf20Sopenharmony_ci		- Herbert Poetzl <herbert@13thfloor.at>, Thu, 27 Jan 2005
2658c2ecf20Sopenharmony_ci
2668c2ecf20Sopenharmony_ciRelease Date	: Thu Feb 03 12:27:22 EST 2005 - Seokmann Ju <sju@lsil.com>
2678c2ecf20Sopenharmony_ciCurrent Version	: 2.20.4.5 (scsi module), 2.20.2.5 (cmm module)
2688c2ecf20Sopenharmony_ciOlder Version	: 2.20.4.4 (scsi module), 2.20.2.4 (cmm module)
2698c2ecf20Sopenharmony_ci
2708c2ecf20Sopenharmony_ci1.	Modified name of two attributes in scsi_host_template.
2718c2ecf20Sopenharmony_ci	On Wed, 2005-02-02 at 10:56 -0500, Ju, Seokmann wrote:
2728c2ecf20Sopenharmony_ci	> +	.sdev_attrs			= megaraid_device_attrs,
2738c2ecf20Sopenharmony_ci	> +	.shost_attrs			= megaraid_class_device_attrs,
2748c2ecf20Sopenharmony_ci
2758c2ecf20Sopenharmony_ci	These are, perhaps, slightly confusing names.
2768c2ecf20Sopenharmony_ci	The terms device and class_device have well defined meanings in the
2778c2ecf20Sopenharmony_ci	generic device model, neither of which is what you mean here.
2788c2ecf20Sopenharmony_ci	Why not simply megaraid_sdev_attrs and megaraid_shost_attrs?
2798c2ecf20Sopenharmony_ci
2808c2ecf20Sopenharmony_ci	Other than this, it looks fine to me too.
2818c2ecf20Sopenharmony_ci
2828c2ecf20Sopenharmony_ciRelease Date	: Thu Jan 27 00:01:03 EST 2005 - Atul Mukker <atulm@lsil.com>
2838c2ecf20Sopenharmony_ciCurrent Version	: 2.20.4.4 (scsi module), 2.20.2.5 (cmm module)
2848c2ecf20Sopenharmony_ciOlder Version	: 2.20.4.3 (scsi module), 2.20.2.4 (cmm module)
2858c2ecf20Sopenharmony_ci
2868c2ecf20Sopenharmony_ci1.	Bump up the version of scsi module due to its conflict.
2878c2ecf20Sopenharmony_ci
2888c2ecf20Sopenharmony_ciRelease Date	: Thu Jan 21 00:01:03 EST 2005 - Atul Mukker <atulm@lsil.com>
2898c2ecf20Sopenharmony_ciCurrent Version	: 2.20.4.3 (scsi module), 2.20.2.5 (cmm module)
2908c2ecf20Sopenharmony_ciOlder Version	: 2.20.4.2 (scsi module), 2.20.2.4 (cmm module)
2918c2ecf20Sopenharmony_ci
2928c2ecf20Sopenharmony_ci1.	Remove driver ioctl for logical drive to scsi address translation and
2938c2ecf20Sopenharmony_ci	replace with the sysfs attribute. To remove drives and change
2948c2ecf20Sopenharmony_ci	capacity, application shall now use the device attribute to get the
2958c2ecf20Sopenharmony_ci	logical drive number for a scsi device. For adding newly created
2968c2ecf20Sopenharmony_ci	logical drives, class device attribute would be required to uniquely
2978c2ecf20Sopenharmony_ci	identify each controller.
2988c2ecf20Sopenharmony_ci		- Atul Mukker <atulm@lsil.com>
2998c2ecf20Sopenharmony_ci
3008c2ecf20Sopenharmony_ci	"James, I've been thinking about this a little more, and you may be on
3018c2ecf20Sopenharmony_ci	to something here. Let each driver add files as such:"
3028c2ecf20Sopenharmony_ci
3038c2ecf20Sopenharmony_ci		- Matt Domsch <Matt_Domsch@dell.com>, 12.15.2004
3048c2ecf20Sopenharmony_ci		 linux-scsi mailing list
3058c2ecf20Sopenharmony_ci
3068c2ecf20Sopenharmony_ci
3078c2ecf20Sopenharmony_ci	"Then, if you simply publish your LD number as an extra parameter of
3088c2ecf20Sopenharmony_ci	the device, you can look through /sys to find it."
3098c2ecf20Sopenharmony_ci
3108c2ecf20Sopenharmony_ci		- James Bottomley <James.Bottomley@SteelEye.com>, 01.03.2005
3118c2ecf20Sopenharmony_ci		 linux-scsi mailing list
3128c2ecf20Sopenharmony_ci
3138c2ecf20Sopenharmony_ci
3148c2ecf20Sopenharmony_ci	"I don't see why not ... it's your driver, you can publish whatever
3158c2ecf20Sopenharmony_ci	extra information you need as scsi_device attributes; that was one of
3168c2ecf20Sopenharmony_ci	the designs of the extensible attribute system."
3178c2ecf20Sopenharmony_ci
3188c2ecf20Sopenharmony_ci		- James Bottomley <James.Bottomley@SteelEye.com>, 01.06.2005
3198c2ecf20Sopenharmony_ci		 linux-scsi mailing list
3208c2ecf20Sopenharmony_ci
3218c2ecf20Sopenharmony_ci2.	Add AMI megaraid support - Brian King <brking@charter.net>
3228c2ecf20Sopenharmony_ci		PCI_VENDOR_ID_AMI, PCI_DEVICE_ID_AMI_MEGARAID3,
3238c2ecf20Sopenharmony_ci		PCI_VENDOR_ID_AMI, PCI_SUBSYS_ID_PERC3_DC,
3248c2ecf20Sopenharmony_ci
3258c2ecf20Sopenharmony_ci3.	Make some code static - Adrian Bunk <bunk@stusta.de>
3268c2ecf20Sopenharmony_ci	Date:	Mon, 15 Nov 2004 03:14:57 +0100
3278c2ecf20Sopenharmony_ci
3288c2ecf20Sopenharmony_ci	The patch below makes some needlessly global code static.
3298c2ecf20Sopenharmony_ci	-wait_queue_head_t wait_q;
3308c2ecf20Sopenharmony_ci	+static wait_queue_head_t wait_q;
3318c2ecf20Sopenharmony_ci
3328c2ecf20Sopenharmony_ci	Signed-off-by: Adrian Bunk <bunk@stusta.de>
3338c2ecf20Sopenharmony_ci
3348c2ecf20Sopenharmony_ci4.	Added NEC ROMB support - NEC MegaRAID PCI Express ROMB controller
3358c2ecf20Sopenharmony_ci		PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_MEGARAID_NEC_ROMB_2E,
3368c2ecf20Sopenharmony_ci		PCI_SUBSYS_ID_NEC, PCI_SUBSYS_ID_MEGARAID_NEC_ROMB_2E,
3378c2ecf20Sopenharmony_ci
3388c2ecf20Sopenharmony_ci5.	Fixed Tape drive issue : For any Direct CDB command to physical device
3398c2ecf20Sopenharmony_ci	including tape, timeout value set by driver was 10 minutes. With this 
3408c2ecf20Sopenharmony_ci	value, most of command will return within timeout. However, for those
3418c2ecf20Sopenharmony_ci	command like ERASE or FORMAT, it takes more than an hour depends on
3428c2ecf20Sopenharmony_ci	capacity of the device and the command could be terminated before it 
3438c2ecf20Sopenharmony_ci	completes.
3448c2ecf20Sopenharmony_ci	To address this issue, the 'timeout' field in the DCDB command will 
3458c2ecf20Sopenharmony_ci	have NO TIMEOUT (i.e., 4) value as its timeout on DCDB command.
3468c2ecf20Sopenharmony_ci
3478c2ecf20Sopenharmony_ci
3488c2ecf20Sopenharmony_ci
3498c2ecf20Sopenharmony_ciRelease Date	: Thu Dec  9 19:10:23 EST 2004
3508c2ecf20Sopenharmony_ci	- Sreenivas Bagalkote <sreenib@lsil.com>
3518c2ecf20Sopenharmony_ci
3528c2ecf20Sopenharmony_ciCurrent Version	: 2.20.4.2 (scsi module), 2.20.2.4 (cmm module)
3538c2ecf20Sopenharmony_ciOlder Version	: 2.20.4.1 (scsi module), 2.20.2.3 (cmm module)
3548c2ecf20Sopenharmony_ci
3558c2ecf20Sopenharmony_cii.	Introduced driver ioctl that returns scsi address for a given ld.
3568c2ecf20Sopenharmony_ci	
3578c2ecf20Sopenharmony_ci	"Why can't the existing sysfs interfaces be used to do this?"
3588c2ecf20Sopenharmony_ci		- Brian King (brking@us.ibm.com)
3598c2ecf20Sopenharmony_ci	
3608c2ecf20Sopenharmony_ci	"I've looked into solving this another way, but I cannot see how
3618c2ecf20Sopenharmony_ci	to get this driver-private mapping of logical drive number-> HCTL
3628c2ecf20Sopenharmony_ci	without putting code something like this into the driver."
3638c2ecf20Sopenharmony_ci
3648c2ecf20Sopenharmony_ci	"...and by providing a mapping a function to userspace, the driver
3658c2ecf20Sopenharmony_ci	is free to change its mapping algorithm in the future if necessary .."
3668c2ecf20Sopenharmony_ci		- Matt Domsch (Matt_Domsch@dell.com)
3678c2ecf20Sopenharmony_ci
3688c2ecf20Sopenharmony_ciRelease Date	: Thu Dec  9 19:02:14 EST 2004 - Sreenivas Bagalkote <sreenib@lsil.com>
3698c2ecf20Sopenharmony_ci
3708c2ecf20Sopenharmony_ciCurrent Version	: 2.20.4.1 (scsi module), 2.20.2.3 (cmm module)
3718c2ecf20Sopenharmony_ciOlder Version	: 2.20.4.1 (scsi module), 2.20.2.2 (cmm module)
3728c2ecf20Sopenharmony_ci
3738c2ecf20Sopenharmony_cii.	Fix a bug in kioc's dma buffer deallocation
3748c2ecf20Sopenharmony_ci
3758c2ecf20Sopenharmony_ciRelease Date	: Thu Nov  4 18:24:56 EST 2004 - Sreenivas Bagalkote <sreenib@lsil.com>
3768c2ecf20Sopenharmony_ci
3778c2ecf20Sopenharmony_ciCurrent Version	: 2.20.4.1 (scsi module), 2.20.2.2 (cmm module)
3788c2ecf20Sopenharmony_ciOlder Version	: 2.20.4.0 (scsi module), 2.20.2.1 (cmm module)
3798c2ecf20Sopenharmony_ci
3808c2ecf20Sopenharmony_cii.	Handle IOCTL cmd timeouts more properly.
3818c2ecf20Sopenharmony_ci
3828c2ecf20Sopenharmony_ciii.	pci_dma_sync_{sg,single}_for_cpu was introduced into megaraid_mbox
3838c2ecf20Sopenharmony_ci	incorrectly (instead of _for_device). Changed to appropriate 
3848c2ecf20Sopenharmony_ci	pci_dma_sync_{sg,single}_for_device.
3858c2ecf20Sopenharmony_ci
3868c2ecf20Sopenharmony_ciRelease Date	: Wed Oct 06 11:15:29 EDT 2004 - Sreenivas Bagalkote <sreenib@lsil.com>
3878c2ecf20Sopenharmony_ciCurrent Version	: 2.20.4.0 (scsi module), 2.20.2.1 (cmm module)
3888c2ecf20Sopenharmony_ciOlder Version	: 2.20.4.0 (scsi module), 2.20.2.0 (cmm module)
3898c2ecf20Sopenharmony_ci
3908c2ecf20Sopenharmony_cii.	Remove CONFIG_COMPAT around register_ioctl32_conversion
3918c2ecf20Sopenharmony_ci
3928c2ecf20Sopenharmony_ciRelease Date	: Mon Sep 27 22:15:07 EDT 2004 - Atul Mukker <atulm@lsil.com>
3938c2ecf20Sopenharmony_ciCurrent Version	: 2.20.4.0 (scsi module), 2.20.2.0 (cmm module)
3948c2ecf20Sopenharmony_ciOlder Version	: 2.20.3.1 (scsi module), 2.20.2.0 (cmm module)
3958c2ecf20Sopenharmony_ci
3968c2ecf20Sopenharmony_cii.	Fix data corruption. Because of a typo in the driver, the IO packets
3978c2ecf20Sopenharmony_ci	were wrongly shared by the ioctl path. This causes a whole IO command
3988c2ecf20Sopenharmony_ci	to be replaced by an incoming ioctl command.
3998c2ecf20Sopenharmony_ci
4008c2ecf20Sopenharmony_ciRelease Date	: Tue Aug 24 09:43:35 EDT 2004 - Atul Mukker <atulm@lsil.com>
4018c2ecf20Sopenharmony_ciCurrent Version	: 2.20.3.1 (scsi module), 2.20.2.0 (cmm module)
4028c2ecf20Sopenharmony_ciOlder Version	: 2.20.3.0 (scsi module), 2.20.2.0 (cmm module)
4038c2ecf20Sopenharmony_ci
4048c2ecf20Sopenharmony_cii.	Function reordering so that inline functions are defined before they
4058c2ecf20Sopenharmony_ci	are actually used. It is now mandatory for GCC 3.4.1 (current stable)
4068c2ecf20Sopenharmony_ci
4078c2ecf20Sopenharmony_ci	Declare some heavy-weight functions to be non-inlined,
4088c2ecf20Sopenharmony_ci	megaraid_mbox_build_cmd, megaraid_mbox_runpendq,
4098c2ecf20Sopenharmony_ci	megaraid_mbox_prepare_pthru, megaraid_mbox_prepare_epthru,
4108c2ecf20Sopenharmony_ci	megaraid_busywait_mbox
4118c2ecf20Sopenharmony_ci
4128c2ecf20Sopenharmony_ci		- Andrew Morton, 08.19.2004
4138c2ecf20Sopenharmony_ci		linux-scsi mailing list
4148c2ecf20Sopenharmony_ci
4158c2ecf20Sopenharmony_ci	"Something else to clean up after inclusion: every instance of an
4168c2ecf20Sopenharmony_ci	inline function is actually rendered as a full function call, because
4178c2ecf20Sopenharmony_ci	the function is always used before it is defined.  Atul, please
4188c2ecf20Sopenharmony_ci	re-arrange the code to eliminate the need for most (all) of the
4198c2ecf20Sopenharmony_ci	function prototypes at the top of each file, and define (not just
4208c2ecf20Sopenharmony_ci	declare with a prototype) each inline function before its first use"
4218c2ecf20Sopenharmony_ci
4228c2ecf20Sopenharmony_ci		- Matt Domsch <Matt_Domsch@dell.com>, 07.27.2004
4238c2ecf20Sopenharmony_ci		linux-scsi mailing list
4248c2ecf20Sopenharmony_ci
4258c2ecf20Sopenharmony_ci
4268c2ecf20Sopenharmony_ciii.	Display elapsed time (countdown) while waiting for FW to boot.
4278c2ecf20Sopenharmony_ci
4288c2ecf20Sopenharmony_ciiii.	Module compilation reorder in Makefile so that unresolved symbols do
4298c2ecf20Sopenharmony_ci	not occur when driver is compiled non-modular.
4308c2ecf20Sopenharmony_ci
4318c2ecf20Sopenharmony_ci		Patrick J. LoPresti <patl@users.sourceforge.net>, 8.22.2004
4328c2ecf20Sopenharmony_ci		linux-scsi mailing list
4338c2ecf20Sopenharmony_ci
4348c2ecf20Sopenharmony_ci
4358c2ecf20Sopenharmony_ciRelease Date	: Thu Aug 19 09:58:33 EDT 2004 - Atul Mukker <atulm@lsil.com>
4368c2ecf20Sopenharmony_ciCurrent Version	: 2.20.3.0 (scsi module), 2.20.2.0 (cmm module)
4378c2ecf20Sopenharmony_ciOlder Version	: 2.20.2.0 (scsi module), 2.20.1.0 (cmm module)
4388c2ecf20Sopenharmony_ci
4398c2ecf20Sopenharmony_cii.	When copying the mailbox packets, copy only first 14 bytes (for 32-bit
4408c2ecf20Sopenharmony_ci	mailboxes) and only first 22 bytes (for 64-bit mailboxes). This is to
4418c2ecf20Sopenharmony_ci	avoid getting the stale values for busy bit. We want to set the busy
4428c2ecf20Sopenharmony_ci	bit just before issuing command to the FW.
4438c2ecf20Sopenharmony_ci
4448c2ecf20Sopenharmony_ciii.	In the reset handling, if the reseted command is not owned by the
4458c2ecf20Sopenharmony_ci	driver, do not (wrongly) print information for the "attached" driver
4468c2ecf20Sopenharmony_ci	packet.
4478c2ecf20Sopenharmony_ci
4488c2ecf20Sopenharmony_ciiii.	Have extended wait when issuing command in synchronous mode. This is
4498c2ecf20Sopenharmony_ci	required for the cases where the option ROM is disabled and there is
4508c2ecf20Sopenharmony_ci	no BIOS to start the controller. The FW starts to boot after receiving
4518c2ecf20Sopenharmony_ci	the first command from the driver. The current driver has 1 second
4528c2ecf20Sopenharmony_ci	timeout for the synchronous commands, which is far less than what is
4538c2ecf20Sopenharmony_ci	actually required. We now wait up to MBOX_RESET_TIME (180 seconds) for
4548c2ecf20Sopenharmony_ci	FW boot process.
4558c2ecf20Sopenharmony_ci
4568c2ecf20Sopenharmony_ciiv.	In megaraid_mbox_product_info, clear the mailbox contents completely
4578c2ecf20Sopenharmony_ci	before preparing the command for inquiry3. This is to ensure that the
4588c2ecf20Sopenharmony_ci	FW does not get junk values in the command.
4598c2ecf20Sopenharmony_ci
4608c2ecf20Sopenharmony_civ.	Do away with the redundant LSI_CONFIG_COMPAT redefinition for
4618c2ecf20Sopenharmony_ci	CONFIG_COMPAT. Replace <asm/ioctl32.h> with <linux/ioctl32.h>
4628c2ecf20Sopenharmony_ci
4638c2ecf20Sopenharmony_ci		- James Bottomley <James.Bottomley@SteelEye.com>, 08.17.2004
4648c2ecf20Sopenharmony_ci		 linux-scsi mailing list
4658c2ecf20Sopenharmony_ci
4668c2ecf20Sopenharmony_civi.	Add support for 64-bit applications. Current drivers assume only
4678c2ecf20Sopenharmony_ci	32-bit applications, even on 64-bit platforms. Use the "data" and
4688c2ecf20Sopenharmony_ci	"buffer" fields of the mimd_t structure, instead of embedded 32-bit
4698c2ecf20Sopenharmony_ci	addresses in application mailbox and passthru structures.
4708c2ecf20Sopenharmony_ci
4718c2ecf20Sopenharmony_civii.	Move the function declarations for the management module from
4728c2ecf20Sopenharmony_ci	megaraid_mm.h to megaraid_mm.c
4738c2ecf20Sopenharmony_ci
4748c2ecf20Sopenharmony_ci		- Andrew Morton, 08.19.2004
4758c2ecf20Sopenharmony_ci		linux-scsi mailing list
4768c2ecf20Sopenharmony_ci
4778c2ecf20Sopenharmony_civiii.	Change default values for MEGARAID_NEWGEN, MEGARAID_MM, and
4788c2ecf20Sopenharmony_ci	MEGARAID_MAILBOX to 'n' in Kconfig.megaraid
4798c2ecf20Sopenharmony_ci
4808c2ecf20Sopenharmony_ci		- Andrew Morton, 08.19.2004
4818c2ecf20Sopenharmony_ci		linux-scsi mailing list
4828c2ecf20Sopenharmony_ci
4838c2ecf20Sopenharmony_ciix.	replace udelay with msleep
4848c2ecf20Sopenharmony_ci
4858c2ecf20Sopenharmony_cix.	Typos corrected in comments and whitespace adjustments, explicit
4868c2ecf20Sopenharmony_ci	grouping of expressions.
4878c2ecf20Sopenharmony_ci
4888c2ecf20Sopenharmony_ci
4898c2ecf20Sopenharmony_ciRelease Date	: Fri Jul 23 15:22:07 EDT 2004 - Atul Mukker <atulm@lsil.com>
4908c2ecf20Sopenharmony_ciCurrent Version	: 2.20.2.0 (scsi module), 2.20.1.0 (cmm module)
4918c2ecf20Sopenharmony_ciOlder Version	: 2.20.1.0 (scsi module), 2.20.0.0 (cmm module)
4928c2ecf20Sopenharmony_ci
4938c2ecf20Sopenharmony_cii.	Add PCI ids for Acer ROMB 2E solution
4948c2ecf20Sopenharmony_ci
4958c2ecf20Sopenharmony_ciii.	Add PCI ids for I4
4968c2ecf20Sopenharmony_ci
4978c2ecf20Sopenharmony_ciiii.	Typo corrected for subsys id for megaraid sata 300-4x
4988c2ecf20Sopenharmony_ci
4998c2ecf20Sopenharmony_ciiv.	Remove yield() while mailbox handshake in synchronous commands
5008c2ecf20Sopenharmony_ci
5018c2ecf20Sopenharmony_ci
5028c2ecf20Sopenharmony_ci	"My other main gripe is things like this:
5038c2ecf20Sopenharmony_ci
5048c2ecf20Sopenharmony_ci	+	// wait for maximum 1 second for status to post
5058c2ecf20Sopenharmony_ci	+	for (i = 0; i < 40000; i++) {
5068c2ecf20Sopenharmony_ci	+		if (mbox->numstatus != 0xFF) break;
5078c2ecf20Sopenharmony_ci	+		udelay(25); yield();
5088c2ecf20Sopenharmony_ci	+	}
5098c2ecf20Sopenharmony_ci
5108c2ecf20Sopenharmony_ci	which litter the driver.  Use of yield() in drivers is deprecated."
5118c2ecf20Sopenharmony_ci
5128c2ecf20Sopenharmony_ci		- James Bottomley <James.Bottomley@SteelEye.com>, 07.14.2004
5138c2ecf20Sopenharmony_ci		 linux-scsi mailing list
5148c2ecf20Sopenharmony_ci
5158c2ecf20Sopenharmony_civ.	Remove redundant __megaraid_busywait_mbox routine
5168c2ecf20Sopenharmony_ci
5178c2ecf20Sopenharmony_civi.	Fix bug in the management module, which causes a system lockup when the
5188c2ecf20Sopenharmony_ci	IO module is loaded and then unloaded, followed by executing any
5198c2ecf20Sopenharmony_ci	management utility. The current version of management module does not
5208c2ecf20Sopenharmony_ci	handle the adapter unregister properly.
5218c2ecf20Sopenharmony_ci
5228c2ecf20Sopenharmony_ci	Specifically, it still keeps a reference to the unregistered
5238c2ecf20Sopenharmony_ci	controllers. To avoid this, the static array adapters has been
5248c2ecf20Sopenharmony_ci	replaced by a dynamic list, which gets updated every time an adapter
5258c2ecf20Sopenharmony_ci	is added or removed.
5268c2ecf20Sopenharmony_ci
5278c2ecf20Sopenharmony_ci	Also, during unregistration of the IO module, the resources are
5288c2ecf20Sopenharmony_ci	now released in the exact reverse order of the allocation time
5298c2ecf20Sopenharmony_ci	sequence.
5308c2ecf20Sopenharmony_ci
5318c2ecf20Sopenharmony_ci
5328c2ecf20Sopenharmony_ciRelease Date	: Fri Jun 25 18:58:43 EDT 2004 - Atul Mukker <atulm@lsil.com>
5338c2ecf20Sopenharmony_ciCurrent Version	: 2.20.1.0
5348c2ecf20Sopenharmony_ciOlder Version	: megaraid 2.20.0.1
5358c2ecf20Sopenharmony_ci
5368c2ecf20Sopenharmony_cii.	Stale list pointer in adapter causes kernel panic when module
5378c2ecf20Sopenharmony_ci	megaraid_mbox is unloaded
5388c2ecf20Sopenharmony_ci
5398c2ecf20Sopenharmony_ci
5408c2ecf20Sopenharmony_ciRelease Date	: Thu Jun 24 20:37:11 EDT 2004 - Atul Mukker <atulm@lsil.com>
5418c2ecf20Sopenharmony_ciCurrent Version	: 2.20.0.1
5428c2ecf20Sopenharmony_ciOlder Version	: megaraid 2.20.0.00
5438c2ecf20Sopenharmony_ci
5448c2ecf20Sopenharmony_cii.	Modules are not 'y' by default, but depend on current definition of
5458c2ecf20Sopenharmony_ci	SCSI & PCI.
5468c2ecf20Sopenharmony_ci
5478c2ecf20Sopenharmony_ciii.	Redundant structure mraid_driver_t removed.
5488c2ecf20Sopenharmony_ci
5498c2ecf20Sopenharmony_ciiii.	Miscellaneous indentation and goto/label fixes.
5508c2ecf20Sopenharmony_ci		- Christoph Hellwig <hch@infradead.org>, 06.24.2004 linux-scsi
5518c2ecf20Sopenharmony_ci
5528c2ecf20Sopenharmony_ciiv.	scsi_host_put(), do just before completing HBA shutdown.
5538c2ecf20Sopenharmony_ci
5548c2ecf20Sopenharmony_ci
5558c2ecf20Sopenharmony_ci
5568c2ecf20Sopenharmony_ciRelease Date	: Mon Jun 21 19:53:54 EDT 2004 - Atul Mukker <atulm@lsil.com>
5578c2ecf20Sopenharmony_ciCurrent Version	: 2.20.0.0
5588c2ecf20Sopenharmony_ciOlder Version	: megaraid 2.20.0.rc2 and 2.00.3
5598c2ecf20Sopenharmony_ci
5608c2ecf20Sopenharmony_cii.	Independent module to interact with userland applications and
5618c2ecf20Sopenharmony_ci	multiplex command to low level RAID module(s).
5628c2ecf20Sopenharmony_ci
5638c2ecf20Sopenharmony_ci	"Shared code in a third module, a "library module", is an acceptable
5648c2ecf20Sopenharmony_ci	solution. modprobe automatically loads dependent modules, so users
5658c2ecf20Sopenharmony_ci	running "modprobe driver1" or "modprobe driver2" would automatically
5668c2ecf20Sopenharmony_ci	load the shared library module."
5678c2ecf20Sopenharmony_ci
5688c2ecf20Sopenharmony_ci		- Jeff Garzik <jgarzik@pobox.com> 02.25.2004 LKML
5698c2ecf20Sopenharmony_ci
5708c2ecf20Sopenharmony_ci	"As Jeff hinted, if your userspace<->driver API is consistent between
5718c2ecf20Sopenharmony_ci	your new MPT-based RAID controllers and your existing megaraid driver,
5728c2ecf20Sopenharmony_ci	then perhaps you need a single small helper module (lsiioctl or some
5738c2ecf20Sopenharmony_ci	better name), loaded by both mptraid and megaraid automatically, which
5748c2ecf20Sopenharmony_ci	handles registering the /dev/megaraid node dynamically. In this case,
5758c2ecf20Sopenharmony_ci	both mptraid and megaraid would register with lsiioctl for each
5768c2ecf20Sopenharmony_ci	adapter discovered, and lsiioctl would essentially be a switch,
5778c2ecf20Sopenharmony_ci	redirecting userspace tool ioctls to the appropriate driver."
5788c2ecf20Sopenharmony_ci
5798c2ecf20Sopenharmony_ci		- Matt Domsch <Matt_Domsch@dell.com> 02.25.2004 LKML
5808c2ecf20Sopenharmony_ci
5818c2ecf20Sopenharmony_ciii.	Remove C99 initializations from pci_device id.
5828c2ecf20Sopenharmony_ci
5838c2ecf20Sopenharmony_ci	"pci_id_table_g would be much more readable when not using C99
5848c2ecf20Sopenharmony_ci	initializers.
5858c2ecf20Sopenharmony_ci	PCI table doesn't change, there's lots of users that prefer the more
5868c2ecf20Sopenharmony_ci	readable variant.  And it's really far less and much easier to grok
5878c2ecf20Sopenharmony_ci	lines without C99 initializers."
5888c2ecf20Sopenharmony_ci
5898c2ecf20Sopenharmony_ci		- Christoph Hellwig <hch@infradead.org>, 05.28.2004 linux-scsi
5908c2ecf20Sopenharmony_ci
5918c2ecf20Sopenharmony_ciiii.	Many fixes as suggested by Christoph Hellwig <hch@infradead.org> on
5928c2ecf20Sopenharmony_ci	linux-scsi, 05.28.2004
5938c2ecf20Sopenharmony_ci
5948c2ecf20Sopenharmony_ciiv.	We now support up to 32 parallel ioctl commands instead of current 1.
5958c2ecf20Sopenharmony_ci	There is a conscious effort to let memory allocation not fail for ioctl
5968c2ecf20Sopenharmony_ci	commands.
5978c2ecf20Sopenharmony_ci
5988c2ecf20Sopenharmony_civ.	Do away with internal memory management. Use pci_pool_(create|alloc)
5998c2ecf20Sopenharmony_ci	instead.
6008c2ecf20Sopenharmony_ci
6018c2ecf20Sopenharmony_civi.	Kill tasklet when unloading the driver.
6028c2ecf20Sopenharmony_ci
6038c2ecf20Sopenharmony_civii.	Do not use "host_lock', driver has fine-grain locks now to protect all
6048c2ecf20Sopenharmony_ci	data structures.
6058c2ecf20Sopenharmony_ci
6068c2ecf20Sopenharmony_civiii.	Optimize the build scatter-gather list routine. The callers already
6078c2ecf20Sopenharmony_ci	know the data transfer address and length.
6088c2ecf20Sopenharmony_ci
6098c2ecf20Sopenharmony_ciix.	Better implementation of error handling and recovery. Driver now
6108c2ecf20Sopenharmony_ci	performs extended errors recovery for instances like scsi cable pull.
6118c2ecf20Sopenharmony_ci
6128c2ecf20Sopenharmony_cix.	Disassociate the management commands with an overlaid scsi command.
6138c2ecf20Sopenharmony_ci	Driver now treats the management packets as special packets and has a
6148c2ecf20Sopenharmony_ci	dedicated callback routine.
615