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