| Sumant Patro | cd96d96 | 2007-01-05 07:10:09 -0800 | [diff] [blame] | 1 | Release Date	: Thu Nov 16 15:32:35 EST 2006 - | 
 | 2 | 				Sumant Patro <sumant.patro@lsi.com> | 
 | 3 | Current Version : 2.20.5.1 (scsi module), 2.20.2.6 (cmm module) | 
 | 4 | Older Version	: 2.20.4.9 (scsi module), 2.20.2.6 (cmm module) | 
 | 5 |  | 
 | 6 | 1.	Changes in Initialization to fix kdump failure. | 
 | 7 | 	Send SYNC command on loading. | 
 | 8 | 	This command clears the pending commands in the adapter | 
 | 9 | 	and re-initialize its internal RAID structure. | 
 | 10 | 	Without this change, megaraid driver either panics or fails to | 
 | 11 | 	initialize the adapter during kdump's second kernel boot | 
 | 12 | 	if there are pending commands or interrupts from other devices | 
 | 13 | 	sharing the same IRQ. | 
 | 14 | 2. 	Authors email-id domain name changed from lsil.com to lsi.com. | 
 | 15 | 	Also modified the MODULE_AUTHOR to megaraidlinux@lsi.com | 
 | 16 |  | 
| Ju, Seokmann | fbf6080 | 2006-07-25 08:44:48 -0600 | [diff] [blame] | 17 | Release Date	: Fri May 19 09:31:45 EST 2006 - Seokmann Ju <sju@lsil.com> | 
 | 18 | Current Version : 2.20.4.9 (scsi module), 2.20.2.6 (cmm module) | 
 | 19 | Older Version	: 2.20.4.8 (scsi module), 2.20.2.6 (cmm module) | 
 | 20 |  | 
 | 21 | 1.	Fixed a bug in megaraid_init_mbox(). | 
 | 22 | 	Customer reported "garbage in file on x86_64 platform". | 
 | 23 | 	Root Cause: the driver registered controllers as 64-bit DMA capable | 
 | 24 | 	for those which are not support it. | 
 | 25 | 	Fix: Made change in the function inserting identification machanism | 
 | 26 | 	identifying 64-bit DMA capable controllers. | 
 | 27 |  | 
 | 28 | 	> -----Original Message----- | 
 | 29 | 	> From: Vasily Averin [mailto:vvs@sw.ru] | 
 | 30 | 	> Sent: Thursday, May 04, 2006 2:49 PM | 
 | 31 | 	> To: linux-scsi@vger.kernel.org; Kolli, Neela; Mukker, Atul; | 
 | 32 | 	> Ju, Seokmann; Bagalkote, Sreenivas; | 
 | 33 | 	> James.Bottomley@SteelEye.com; devel@openvz.org | 
 | 34 | 	> Subject: megaraid_mbox: garbage in file | 
 | 35 | 	> | 
 | 36 | 	> Hello all, | 
 | 37 | 	> | 
 | 38 | 	> I've investigated customers claim on the unstable work of | 
 | 39 | 	> their node and found a | 
 | 40 | 	> strange effect: reading from some files leads to the | 
 | 41 | 	>  "attempt to access beyond end of device" messages. | 
 | 42 | 	> | 
 | 43 | 	> I've checked filesystem, memory on the node, motherboard BIOS | 
 | 44 | 	> version, but it | 
 | 45 | 	> does not help and issue still has been reproduced by simple | 
 | 46 | 	> file reading. | 
 | 47 | 	> | 
 | 48 | 	> Reproducer is simple: | 
 | 49 | 	> | 
 | 50 | 	> echo 0xffffffff >/proc/sys/dev/scsi/logging_level ; | 
 | 51 | 	> cat /vz/private/101/root/etc/ld.so.cache >/tmp/ttt  ; | 
 | 52 | 	> echo 0 >/proc/sys/dev/scsi/logging | 
 | 53 | 	> | 
 | 54 | 	> It leads to the following messages in dmesg | 
 | 55 | 	> | 
 | 56 | 	> sd_init_command: disk=sda, block=871769260, count=26 | 
 | 57 | 	> sda : block=871769260 | 
 | 58 | 	> sda : reading 26/26 512 byte blocks. | 
 | 59 | 	> scsi_add_timer: scmd: f79ed980, time: 7500, (c02b1420) | 
 | 60 | 	> sd 0:1:0:0: send 0xf79ed980                  sd 0:1:0:0: | 
 | 61 | 	>         command: Read (10): 28 00 33 f6 24 ac 00 00 1a 00 | 
 | 62 | 	> buffer = 0xf7cfb540, bufflen = 13312, done = 0xc0366b40, | 
 | 63 | 	> queuecommand 0xc0344010 | 
 | 64 | 	> leaving scsi_dispatch_cmnd() | 
 | 65 | 	> scsi_delete_timer: scmd: f79ed980, rtn: 1 | 
 | 66 | 	> sd 0:1:0:0: done 0xf79ed980 SUCCESS        0 sd 0:1:0:0: | 
 | 67 | 	>         command: Read (10): 28 00 33 f6 24 ac 00 00 1a 00 | 
 | 68 | 	> scsi host busy 1 failed 0 | 
 | 69 | 	> sd 0:1:0:0: Notifying upper driver of completion (result 0) | 
 | 70 | 	> sd_rw_intr: sda: res=0x0 | 
 | 71 | 	> 26 sectors total, 13312 bytes done. | 
 | 72 | 	> use_sg is 4 | 
 | 73 | 	> attempt to access beyond end of device | 
 | 74 | 	> sda6: rw=0, want=1044134458, limit=951401367 | 
 | 75 | 	> Buffer I/O error on device sda6, logical block 522067228 | 
 | 76 | 	> attempt to access beyond end of device | 
 | 77 |  | 
| Ju, Seokmann | aa677bc | 2006-07-25 08:44:58 -0600 | [diff] [blame] | 78 | 2.	When INQUIRY with EVPD bit set issued to the MegaRAID controller, | 
 | 79 | 	system memory gets corrupted. | 
 | 80 | 	Root Cause: MegaRAID F/W handle the INQUIRY with EVPD bit set | 
 | 81 | 	incorrectly. | 
 | 82 | 	Fix: MegaRAID F/W has fixed the problem and being process of release, | 
 | 83 | 	soon. Meanwhile, driver will filter out the request. | 
 | 84 |  | 
| Ju, Seokmann | 0b4972d | 2006-07-25 08:45:06 -0600 | [diff] [blame] | 85 | 3.	One of member in the data structure of the driver leads unaligne | 
 | 86 | 	issue on 64-bit platform. | 
 | 87 | 	Customer reporeted "kernel unaligned access addrss" issue when | 
 | 88 | 	application communicates with MegaRAID HBA driver. | 
 | 89 | 	Root Cause: in uioc_t structure, one of member had misaligned and it | 
 | 90 | 	led system to display the error message. | 
 | 91 | 	Fix: A patch submitted to community from following folk. | 
 | 92 |  | 
 | 93 | 	> -----Original Message----- | 
 | 94 | 	> From: linux-scsi-owner@vger.kernel.org | 
 | 95 | 	> [mailto:linux-scsi-owner@vger.kernel.org] On Behalf Of Sakurai Hiroomi | 
 | 96 | 	> Sent: Wednesday, July 12, 2006 4:20 AM | 
 | 97 | 	> To: linux-scsi@vger.kernel.org; linux-kernel@vger.kernel.org | 
 | 98 | 	> Subject: Re: Help: strange messages from kernel on IA64 platform | 
 | 99 | 	> | 
 | 100 | 	> Hi, | 
 | 101 | 	> | 
 | 102 | 	> I saw same message. | 
 | 103 | 	> | 
 | 104 | 	> When GAM(Global Array Manager) is started, The following | 
 | 105 | 	> message output. | 
 | 106 | 	> kernel: kernel unaligned access to 0xe0000001fe1080d4, | 
 | 107 | 	> ip=0xa000000200053371 | 
 | 108 | 	> | 
 | 109 | 	> The uioc structure used by ioctl is defined by packed, | 
 | 110 | 	> the allignment of each member are disturbed. | 
 | 111 | 	> In a 64 bit structure, the allignment of member doesn't fit 64 bit | 
 | 112 | 	> boundary. this causes this messages. | 
 | 113 | 	> In a 32 bit structure, we don't see the message because the allinment | 
 | 114 | 	> of member fit 32 bit boundary even if packed is specified. | 
 | 115 | 	> | 
 | 116 | 	> patch | 
 | 117 | 	> I Add 32 bit dummy member to fit 64 bit boundary. I tested. | 
 | 118 | 	> We confirmed this patch fix the problem by IA64 server. | 
 | 119 | 	> | 
 | 120 | 	> ************************************************************** | 
 | 121 | 	> **************** | 
 | 122 | 	> --- linux-2.6.9/drivers/scsi/megaraid/megaraid_ioctl.h.orig | 
 | 123 | 	> 2006-04-03 17:13:03.000000000 +0900 | 
 | 124 | 	> +++ linux-2.6.9/drivers/scsi/megaraid/megaraid_ioctl.h | 
 | 125 | 	> 2006-04-03 17:14:09.000000000 +0900 | 
 | 126 | 	> @@ -132,6 +132,10 @@ | 
 | 127 | 	>  /* Driver Data: */ | 
 | 128 | 	>          void __user *           user_data; | 
 | 129 | 	>          uint32_t                user_data_len; | 
 | 130 | 	> + | 
 | 131 | 	> +        /* 64bit alignment */ | 
 | 132 | 	> +        uint32_t                pad_0xBC; | 
 | 133 | 	> + | 
 | 134 | 	>          mraid_passthru_t        __user *user_pthru; | 
 | 135 | 	> | 
 | 136 | 	>          mraid_passthru_t        *pthru32; | 
 | 137 | 	> ************************************************************** | 
 | 138 | 	> **************** | 
 | 139 |  | 
| Ju, Seokmann | c005fb4 | 2006-04-27 02:33:06 -0700 | [diff] [blame] | 140 | Release Date	: Mon Apr 11 12:27:22 EST 2006 - Seokmann Ju <sju@lsil.com> | 
 | 141 | Current Version : 2.20.4.8 (scsi module), 2.20.2.6 (cmm module) | 
 | 142 | Older Version	: 2.20.4.7 (scsi module), 2.20.2.6 (cmm module) | 
 | 143 |  | 
 | 144 | 1.	Fixed a bug in megaraid_reset_handler(). | 
 | 145 | 	Customer reported "Unable to handle kernel NULL pointer dereference | 
 | 146 | 	at virtual address 00000000" when system goes to reset condition | 
 | 147 | 	for some reason. It happened randomly. | 
 | 148 | 	Root Cause: in the megaraid_reset_handler(), there is possibility not | 
 | 149 | 	returning pending packets in the pend_list if there are multiple | 
 | 150 | 	pending packets. | 
 | 151 | 	Fix: Made the change in the driver so that it will return all packets | 
 | 152 | 	in the pend_list. | 
 | 153 |  | 
 | 154 | 2.	Added change request. | 
 | 155 | 	As found in the following URL, rmb() only didn't help the | 
 | 156 | 	problem. I had to increase the loop counter to 0xFFFFFF. (6 F's) | 
 | 157 | 	http://marc.theaimsgroup.com/?l=linux-scsi&m=110971060502497&w=2 | 
 | 158 |  | 
 | 159 | 	I attached a patch for your reference, too. | 
 | 160 | 	Could you check and get this fix in your driver? | 
 | 161 |  | 
 | 162 | 	Best Regards, | 
 | 163 | 	Jun'ichi Nomura | 
 | 164 |  | 
| Ju, Seokmann | ed7e8ef | 2005-11-17 13:17:25 -0500 | [diff] [blame] | 165 | Release Date	: Fri Nov 11 12:27:22 EST 2005 - Seokmann Ju <sju@lsil.com> | 
 | 166 | Current Version : 2.20.4.7 (scsi module), 2.20.2.6 (cmm module) | 
 | 167 | Older Version	: 2.20.4.6 (scsi module), 2.20.2.6 (cmm module) | 
 | 168 |  | 
 | 169 | 1.	Sorted out PCI IDs to remove megaraid support overlaps. | 
 | 170 | 	Based on the patch from Daniel, sorted out PCI IDs along with | 
| Lucas De Marchi | 25985ed | 2011-03-30 22:57:33 -0300 | [diff] [blame] | 171 | 	character node name change from 'megadev' to 'megadev_legacy' to avoid | 
| Ju, Seokmann | ed7e8ef | 2005-11-17 13:17:25 -0500 | [diff] [blame] | 172 | 	conflict. | 
 | 173 | 	--- | 
 | 174 | 	Hopefully we'll be getting the build restriction zapped much sooner,  | 
 | 175 | 	but we should also be thinking about totally removing the hardware  | 
 | 176 | 	support overlap in the megaraid drivers. | 
 | 177 |  | 
 | 178 | 	This patch pencils in a date of Feb 06 for this, and performs some  | 
 | 179 | 	printk abuse in hope that existing legacy users might pick up on what's | 
 | 180 | 	going on. | 
 | 181 |  | 
 | 182 | 	Signed-off-by: Daniel Drake <dsd@gentoo.org> | 
 | 183 | 	--- | 
 | 184 |  | 
 | 185 | 2.	Fixed a issue: megaraid always fails to reset handler. | 
 | 186 | 	--- | 
 | 187 | 	I found that the megaraid driver always fails to reset the | 
 | 188 | 	adapter with the following message: | 
 | 189 | 		megaraid: resetting the host... | 
 | 190 | 		megaraid mbox: reset sequence completed successfully | 
 | 191 | 		megaraid: fast sync command timed out | 
 | 192 | 		megaraid: reservation reset failed | 
 | 193 | 	when the "Cluster mode" of the adapter BIOS is enabled. | 
 | 194 | 	So, whenever the reset occurs, the adapter goes to | 
 | 195 | 	offline and just become unavailable. | 
 | 196 |  | 
 | 197 | 	Jun'ichi Nomura [mailto:jnomura@mtc.biglobe.ne.jp] | 
 | 198 | 	--- | 
 | 199 |  | 
| Ju, Seokmann  | 672b2d3 | 2005-05-16 18:32:17 -0400 | [diff] [blame] | 200 | Release Date	: Mon Mar 07 12:27:22 EST 2005 - Seokmann Ju <sju@lsil.com> | 
 | 201 | Current Version : 2.20.4.6 (scsi module), 2.20.2.6 (cmm module) | 
 | 202 | Older Version	: 2.20.4.5 (scsi module), 2.20.2.5 (cmm module) | 
 | 203 |  | 
 | 204 | 1.	Added IOCTL backward compatibility. | 
 | 205 | 	Convert megaraid_mm driver to new compat_ioctl entry points. | 
 | 206 | 	I don't have easy access to hardware, so only compile tested. | 
 | 207 | 		- Signed-off-by:Andi Kleen <ak@muc.de> | 
 | 208 |  | 
 | 209 | 2.	megaraid_mbox fix: wrong order of arguments in memset() | 
 | 210 | 	That, BTW, shows why cross-builds are useful-the only indication of | 
 | 211 | 	problem had been a new warning showing up in sparse output on alpha | 
 | 212 | 	build (number of exceeding 256 got truncated). | 
 | 213 | 		- Signed-off-by: Al Viro | 
 | 214 | 		<viro@parcelfarce.linux.theplanet.co.uk> | 
 | 215 |  | 
 | 216 | 3.	Convert pci_module_init to pci_register_driver | 
 | 217 | 	Convert from pci_module_init to pci_register_driver | 
| Justin P. Mattock | 0ea6e61 | 2010-07-23 20:51:24 -0700 | [diff] [blame] | 218 | 	(from:http://kernelnewbies.org/KernelJanitors/TODO) | 
| Ju, Seokmann  | 672b2d3 | 2005-05-16 18:32:17 -0400 | [diff] [blame] | 219 | 		- Signed-off-by: Domen Puncer <domen@coderock.org> | 
 | 220 |  | 
 | 221 | 4.	Use the pre defined DMA mask constants from dma-mapping.h | 
 | 222 | 	Use the DMA_{64,32}BIT_MASK constants from dma-mapping.h when calling | 
 | 223 | 	pci_set_dma_mask() or pci_set_consistend_dma_mask(). See | 
 | 224 | 	http://marc.theaimsgroup.com/?t=108001993000001&r=1&w=2 for more | 
 | 225 | 	details. | 
 | 226 | 		Signed-off-by: Tobias Klauser <tklauser@nuerscht.ch> | 
 | 227 | 		Signed-off-by: Domen Puncer <domen@coderock.org> | 
 | 228 |  | 
 | 229 | 5.	Remove SSID checking for Dobson, Lindsay, and Verde based products. | 
 | 230 | 	Checking the SSVID/SSID for controllers which have Dobson, Lindsay, | 
 | 231 | 	and Verde is unnecessary because device ID has been assigned by LSI | 
 | 232 | 	and it is unique value. So, all controllers with these IOPs have to be | 
 | 233 | 	supported by the driver regardless SSVID/SSID. | 
 | 234 |  | 
 | 235 | 6.	Date Thu, 27 Jan 2005 04:31:09 +0100  | 
 | 236 | 	From Herbert Poetzl <>  | 
 | 237 | 	Subject RFC: assert_spin_locked() for 2.6  | 
 | 238 |  | 
 | 239 | 	Greetings! | 
 | 240 |  | 
 | 241 | 	overcautious programming will kill your kernel ;) | 
 | 242 | 	ever thought about checking a spin_lock or even | 
 | 243 | 	asserting that it must be held (maybe just for | 
 | 244 | 	spinlock debugging?) ... | 
 | 245 |  | 
 | 246 | 	there are several checks present in the kernel | 
 | 247 | 	where somebody does a variation on the following: | 
 | 248 |  | 
 | 249 | 	  BUG_ON(!spin_is_locked(&some_lock)); | 
 | 250 |  | 
 | 251 | 	so what's wrong about that? nothing, unless you | 
 | 252 | 	compile the code with CONFIG_DEBUG_SPINLOCK but  | 
 | 253 | 	without CONFIG_SMP ... in which case the BUG() | 
 | 254 | 	will kill your kernel ... | 
 | 255 |  | 
 | 256 | 	maybe it's not advised to make such assertions,  | 
 | 257 | 	but here is a solution which works for me ... | 
 | 258 | 	(compile tested for sh, x86_64 and x86, boot/run | 
 | 259 | 	tested for x86 only) | 
 | 260 |  | 
 | 261 | 	best, | 
 | 262 | 	Herbert | 
 | 263 |  | 
 | 264 | 		- Herbert Poetzl <herbert@13thfloor.at>, Thu, 27 Jan 2005 | 
 | 265 |  | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 266 | Release Date	: Thu Feb 03 12:27:22 EST 2005 - Seokmann Ju <sju@lsil.com> | 
 | 267 | Current Version	: 2.20.4.5 (scsi module), 2.20.2.5 (cmm module) | 
 | 268 | Older Version	: 2.20.4.4 (scsi module), 2.20.2.4 (cmm module) | 
 | 269 |  | 
 | 270 | 1.	Modified name of two attributes in scsi_host_template. | 
 | 271 | 	On Wed, 2005-02-02 at 10:56 -0500, Ju, Seokmann wrote: | 
 | 272 | 	> +	.sdev_attrs			= megaraid_device_attrs, | 
 | 273 | 	> +	.shost_attrs			= megaraid_class_device_attrs, | 
 | 274 |  | 
 | 275 | 	These are, perhaps, slightly confusing names. | 
 | 276 | 	The terms device and class_device have well defined meanings in the | 
 | 277 | 	generic device model, neither of which is what you mean here. | 
 | 278 | 	Why not simply megaraid_sdev_attrs and megaraid_shost_attrs? | 
 | 279 |  | 
 | 280 | 	Other than this, it looks fine to me too. | 
 | 281 |  | 
 | 282 | Release Date	: Thu Jan 27 00:01:03 EST 2005 - Atul Mukker <atulm@lsil.com> | 
 | 283 | Current Version	: 2.20.4.4 (scsi module), 2.20.2.5 (cmm module) | 
 | 284 | Older Version	: 2.20.4.3 (scsi module), 2.20.2.4 (cmm module) | 
 | 285 |  | 
 | 286 | 1.	Bump up the version of scsi module due to its conflict. | 
 | 287 |  | 
 | 288 | Release Date	: Thu Jan 21 00:01:03 EST 2005 - Atul Mukker <atulm@lsil.com> | 
 | 289 | Current Version	: 2.20.4.3 (scsi module), 2.20.2.5 (cmm module) | 
 | 290 | Older Version	: 2.20.4.2 (scsi module), 2.20.2.4 (cmm module) | 
 | 291 |  | 
 | 292 | 1.	Remove driver ioctl for logical drive to scsi address translation and | 
 | 293 | 	replace with the sysfs attribute. To remove drives and change | 
 | 294 | 	capacity, application shall now use the device attribute to get the | 
 | 295 | 	logical drive number for a scsi device. For adding newly created | 
 | 296 | 	logical drives, class device attribute would be required to uniquely | 
 | 297 | 	identify each controller. | 
 | 298 | 		- Atul Mukker <atulm@lsil.com> | 
 | 299 |  | 
 | 300 | 	"James, I've been thinking about this a little more, and you may be on | 
 | 301 | 	to something here. Let each driver add files as such:" | 
 | 302 |  | 
 | 303 | 		- Matt Domsch <Matt_Domsch@dell.com>, 12.15.2004 | 
 | 304 | 		 linux-scsi mailing list | 
 | 305 |  | 
 | 306 |  | 
 | 307 | 	"Then, if you simply publish your LD number as an extra parameter of | 
 | 308 | 	the device, you can look through /sys to find it." | 
 | 309 |  | 
 | 310 | 		- James Bottomley <James.Bottomley@SteelEye.com>, 01.03.2005 | 
 | 311 | 		 linux-scsi mailing list | 
 | 312 |  | 
 | 313 |  | 
 | 314 | 	"I don't see why not ... it's your driver, you can publish whatever | 
 | 315 | 	extra information you need as scsi_device attributes; that was one of | 
 | 316 | 	the designs of the extensible attribute system." | 
 | 317 |  | 
 | 318 | 		- James Bottomley <James.Bottomley@SteelEye.com>, 01.06.2005 | 
 | 319 | 		 linux-scsi mailing list | 
 | 320 |  | 
 | 321 | 2.	Add AMI megaraid support - Brian King <brking@charter.net> | 
 | 322 | 		PCI_VENDOR_ID_AMI, PCI_DEVICE_ID_AMI_MEGARAID3, | 
 | 323 | 		PCI_VENDOR_ID_AMI, PCI_SUBSYS_ID_PERC3_DC, | 
 | 324 |  | 
 | 325 | 3.	Make some code static - Adrian Bunk <bunk@stusta.de> | 
 | 326 | 	Date:	Mon, 15 Nov 2004 03:14:57 +0100 | 
 | 327 |  | 
 | 328 | 	The patch below makes some needlessly global code static. | 
 | 329 | 	-wait_queue_head_t wait_q; | 
 | 330 | 	+static wait_queue_head_t wait_q; | 
 | 331 |  | 
 | 332 | 	Signed-off-by: Adrian Bunk <bunk@stusta.de> | 
 | 333 |  | 
 | 334 | 4.	Added NEC ROMB support - NEC MegaRAID PCI Express ROMB controller | 
 | 335 | 		PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_MEGARAID_NEC_ROMB_2E, | 
 | 336 | 		PCI_SUBSYS_ID_NEC, PCI_SUBSYS_ID_MEGARAID_NEC_ROMB_2E, | 
 | 337 |  | 
 | 338 | 5.	Fixed Tape drive issue : For any Direct CDB command to physical device | 
 | 339 | 	including tape, timeout value set by driver was 10 minutes. With this  | 
 | 340 | 	value, most of command will return within timeout. However, for those | 
 | 341 | 	command like ERASE or FORMAT, it takes more than an hour depends on | 
 | 342 | 	capacity of the device and the command could be terminated before it  | 
 | 343 | 	completes. | 
 | 344 | 	To address this issue, the 'timeout' field in the DCDB command will  | 
 | 345 | 	have NO TIMEOUT (i.e., 4) value as its timeout on DCDB command. | 
 | 346 |  | 
 | 347 |  | 
 | 348 |  | 
 | 349 | Release Date	: Thu Dec  9 19:10:23 EST 2004 | 
 | 350 | 	- Sreenivas Bagalkote <sreenib@lsil.com> | 
 | 351 |  | 
 | 352 | Current Version	: 2.20.4.2 (scsi module), 2.20.2.4 (cmm module) | 
 | 353 | Older Version	: 2.20.4.1 (scsi module), 2.20.2.3 (cmm module) | 
 | 354 |  | 
 | 355 | i.	Introduced driver ioctl that returns scsi address for a given ld. | 
 | 356 | 	 | 
 | 357 | 	"Why can't the existing sysfs interfaces be used to do this?" | 
 | 358 | 		- Brian King (brking@us.ibm.com) | 
 | 359 | 	 | 
 | 360 | 	"I've looked into solving this another way, but I cannot see how | 
 | 361 | 	to get this driver-private mapping of logical drive number-> HCTL | 
 | 362 | 	without putting code something like this into the driver." | 
 | 363 |  | 
 | 364 | 	"...and by providing a mapping a function to userspace, the driver | 
 | 365 | 	is free to change its mapping algorithm in the future if necessary .." | 
 | 366 | 		- Matt Domsch (Matt_Domsch@dell.com) | 
 | 367 |  | 
 | 368 | Release Date	: Thu Dec  9 19:02:14 EST 2004 - Sreenivas Bagalkote <sreenib@lsil.com> | 
 | 369 |  | 
 | 370 | Current Version	: 2.20.4.1 (scsi module), 2.20.2.3 (cmm module) | 
 | 371 | Older Version	: 2.20.4.1 (scsi module), 2.20.2.2 (cmm module) | 
 | 372 |  | 
 | 373 | i.	Fix a bug in kioc's dma buffer deallocation | 
 | 374 |  | 
 | 375 | Release Date	: Thu Nov  4 18:24:56 EST 2004 - Sreenivas Bagalkote <sreenib@lsil.com> | 
 | 376 |  | 
 | 377 | Current Version	: 2.20.4.1 (scsi module), 2.20.2.2 (cmm module) | 
 | 378 | Older Version	: 2.20.4.0 (scsi module), 2.20.2.1 (cmm module) | 
 | 379 |  | 
 | 380 | i.	Handle IOCTL cmd timeouts more properly. | 
 | 381 |  | 
 | 382 | ii.	pci_dma_sync_{sg,single}_for_cpu was introduced into megaraid_mbox | 
 | 383 | 	incorrectly (instead of _for_device). Changed to appropriate  | 
 | 384 | 	pci_dma_sync_{sg,single}_for_device. | 
 | 385 |  | 
 | 386 | Release Date	: Wed Oct 06 11:15:29 EDT 2004 - Sreenivas Bagalkote <sreenib@lsil.com> | 
 | 387 | Current Version	: 2.20.4.0 (scsi module), 2.20.2.1 (cmm module) | 
 | 388 | Older Version	: 2.20.4.0 (scsi module), 2.20.2.0 (cmm module) | 
 | 389 |  | 
 | 390 | i.	Remove CONFIG_COMPAT around register_ioctl32_conversion | 
 | 391 |  | 
 | 392 | Release Date	: Mon Sep 27 22:15:07 EDT 2004 - Atul Mukker <atulm@lsil.com> | 
 | 393 | Current Version	: 2.20.4.0 (scsi module), 2.20.2.0 (cmm module) | 
 | 394 | Older Version	: 2.20.3.1 (scsi module), 2.20.2.0 (cmm module) | 
 | 395 |  | 
 | 396 | i.	Fix data corruption. Because of a typo in the driver, the IO packets | 
 | 397 | 	were wrongly shared by the ioctl path. This causes a whole IO command | 
 | 398 | 	to be replaced by an incoming ioctl command. | 
 | 399 |  | 
 | 400 | Release Date	: Tue Aug 24 09:43:35 EDT 2004 - Atul Mukker <atulm@lsil.com> | 
 | 401 | Current Version	: 2.20.3.1 (scsi module), 2.20.2.0 (cmm module) | 
 | 402 | Older Version	: 2.20.3.0 (scsi module), 2.20.2.0 (cmm module) | 
 | 403 |  | 
 | 404 | i.	Function reordering so that inline functions are defined before they | 
 | 405 | 	are actually used. It is now mandatory for GCC 3.4.1 (current stable) | 
 | 406 |  | 
 | 407 | 	Declare some heavy-weight functions to be non-inlined, | 
 | 408 | 	megaraid_mbox_build_cmd, megaraid_mbox_runpendq, | 
 | 409 | 	megaraid_mbox_prepare_pthru, megaraid_mbox_prepare_epthru, | 
 | 410 | 	megaraid_busywait_mbox | 
 | 411 |  | 
| Francois Cami | e1f8e87 | 2008-10-15 22:01:59 -0700 | [diff] [blame] | 412 | 		- Andrew Morton, 08.19.2004 | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 413 | 		linux-scsi mailing list | 
 | 414 |  | 
 | 415 | 	"Something else to clean up after inclusion: every instance of an | 
 | 416 | 	inline function is actually rendered as a full function call, because | 
 | 417 | 	the function is always used before it is defined.  Atul, please | 
 | 418 | 	re-arrange the code to eliminate the need for most (all) of the | 
 | 419 | 	function prototypes at the top of each file, and define (not just | 
 | 420 | 	declare with a prototype) each inline function before its first use" | 
 | 421 |  | 
 | 422 | 		- Matt Domsch <Matt_Domsch@dell.com>, 07.27.2004 | 
 | 423 | 		linux-scsi mailing list | 
 | 424 |  | 
 | 425 |  | 
 | 426 | ii.	Display elapsed time (countdown) while waiting for FW to boot. | 
 | 427 |  | 
 | 428 | iii.	Module compilation reorder in Makefile so that unresolved symbols do | 
 | 429 | 	not occur when driver is compiled non-modular. | 
 | 430 |  | 
 | 431 | 		Patrick J. LoPresti <patl@users.sourceforge.net>, 8.22.2004 | 
 | 432 | 		linux-scsi mailing list | 
 | 433 |  | 
 | 434 |  | 
 | 435 | Release Date	: Thu Aug 19 09:58:33 EDT 2004 - Atul Mukker <atulm@lsil.com> | 
 | 436 | Current Version	: 2.20.3.0 (scsi module), 2.20.2.0 (cmm module) | 
 | 437 | Older Version	: 2.20.2.0 (scsi module), 2.20.1.0 (cmm module) | 
 | 438 |  | 
 | 439 | i.	When copying the mailbox packets, copy only first 14 bytes (for 32-bit | 
 | 440 | 	mailboxes) and only first 22 bytes (for 64-bit mailboxes). This is to | 
 | 441 | 	avoid getting the stale values for busy bit. We want to set the busy | 
 | 442 | 	bit just before issuing command to the FW. | 
 | 443 |  | 
 | 444 | ii.	In the reset handling, if the reseted command is not owned by the | 
 | 445 | 	driver, do not (wrongly) print information for the "attached" driver | 
 | 446 | 	packet. | 
 | 447 |  | 
 | 448 | iii.	Have extended wait when issuing command in synchronous mode. This is | 
 | 449 | 	required for the cases where the option ROM is disabled and there is | 
 | 450 | 	no BIOS to start the controller. The FW starts to boot after receiving | 
 | 451 | 	the first command from the driver. The current driver has 1 second | 
 | 452 | 	timeout for the synchronous commands, which is far less than what is | 
 | 453 | 	actually required. We now wait up to MBOX_RESET_TIME (180 seconds) for | 
 | 454 | 	FW boot process. | 
 | 455 |  | 
 | 456 | iv.	In megaraid_mbox_product_info, clear the mailbox contents completely | 
 | 457 | 	before preparing the command for inquiry3. This is to ensure that the | 
 | 458 | 	FW does not get junk values in the command. | 
 | 459 |  | 
 | 460 | v.	Do away with the redundant LSI_CONFIG_COMPAT redefinition for | 
 | 461 | 	CONFIG_COMPAT. Replace <asm/ioctl32.h> with <linux/ioctl32.h> | 
 | 462 |  | 
 | 463 | 		- James Bottomley <James.Bottomley@SteelEye.com>, 08.17.2004 | 
 | 464 | 		 linux-scsi mailing list | 
 | 465 |  | 
 | 466 | vi.	Add support for 64-bit applications. Current drivers assume only | 
 | 467 | 	32-bit applications, even on 64-bit platforms. Use the "data" and | 
 | 468 | 	"buffer" fields of the mimd_t structure, instead of embedded 32-bit | 
 | 469 | 	addresses in application mailbox and passthru structures. | 
 | 470 |  | 
 | 471 | vii.	Move the function declarations for the management module from | 
 | 472 | 	megaraid_mm.h to megaraid_mm.c | 
 | 473 |  | 
| Francois Cami | e1f8e87 | 2008-10-15 22:01:59 -0700 | [diff] [blame] | 474 | 		- Andrew Morton, 08.19.2004 | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 475 | 		linux-scsi mailing list | 
 | 476 |  | 
 | 477 | viii.	Change default values for MEGARAID_NEWGEN, MEGARAID_MM, and | 
 | 478 | 	MEGARAID_MAILBOX to 'n' in Kconfig.megaraid | 
 | 479 |  | 
| Francois Cami | e1f8e87 | 2008-10-15 22:01:59 -0700 | [diff] [blame] | 480 | 		- Andrew Morton, 08.19.2004 | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 481 | 		linux-scsi mailing list | 
 | 482 |  | 
 | 483 | ix.	replace udelay with msleep | 
 | 484 |  | 
 | 485 | x.	Typos corrected in comments and whitespace adjustments, explicit | 
 | 486 | 	grouping of expressions. | 
 | 487 |  | 
 | 488 |  | 
 | 489 | Release Date	: Fri Jul 23 15:22:07 EDT 2004 - Atul Mukker <atulm@lsil.com> | 
 | 490 | Current Version	: 2.20.2.0 (scsi module), 2.20.1.0 (cmm module) | 
 | 491 | Older Version	: 2.20.1.0 (scsi module), 2.20.0.0 (cmm module) | 
 | 492 |  | 
 | 493 | i.	Add PCI ids for Acer ROMB 2E solution | 
 | 494 |  | 
 | 495 | ii.	Add PCI ids for I4 | 
 | 496 |  | 
 | 497 | iii.	Typo corrected for subsys id for megaraid sata 300-4x | 
 | 498 |  | 
 | 499 | iv.	Remove yield() while mailbox handshake in synchronous commands | 
 | 500 |  | 
 | 501 |  | 
 | 502 | 	"My other main gripe is things like this: | 
 | 503 |  | 
 | 504 | 	+	// wait for maximum 1 second for status to post | 
 | 505 | 	+	for (i = 0; i < 40000; i++) { | 
 | 506 | 	+		if (mbox->numstatus != 0xFF) break; | 
 | 507 | 	+		udelay(25); yield(); | 
 | 508 | 	+	} | 
 | 509 |  | 
 | 510 | 	which litter the driver.  Use of yield() in drivers is deprecated." | 
 | 511 |  | 
 | 512 | 		- James Bottomley <James.Bottomley@SteelEye.com>, 07.14.2004 | 
 | 513 | 		 linux-scsi mailing list | 
 | 514 |  | 
 | 515 | v.	Remove redundant __megaraid_busywait_mbox routine | 
 | 516 |  | 
| Uwe Kleine-Koenig | 3dbda77 | 2009-07-23 08:31:31 +0200 | [diff] [blame] | 517 | vi.	Fix bug in the management module, which causes a system lockup when the | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 518 | 	IO module is loaded and then unloaded, followed by executing any | 
 | 519 | 	management utility. The current version of management module does not | 
 | 520 | 	handle the adapter unregister properly. | 
 | 521 |  | 
 | 522 | 	Specifically, it still keeps a reference to the unregistered | 
 | 523 | 	controllers. To avoid this, the static array adapters has been | 
 | 524 | 	replaced by a dynamic list, which gets updated every time an adapter | 
 | 525 | 	is added or removed. | 
 | 526 |  | 
 | 527 | 	Also, during unregistration of the IO module, the resources are | 
 | 528 | 	now released in the exact reverse order of the allocation time | 
 | 529 | 	sequence. | 
 | 530 |  | 
 | 531 |  | 
 | 532 | Release Date	: Fri Jun 25 18:58:43 EDT 2004 - Atul Mukker <atulm@lsil.com> | 
 | 533 | Current Version	: 2.20.1.0 | 
 | 534 | Older Version	: megaraid 2.20.0.1 | 
 | 535 |  | 
 | 536 | i.	Stale list pointer in adapter causes kernel panic when module | 
 | 537 | 	megaraid_mbox is unloaded | 
 | 538 |  | 
 | 539 |  | 
 | 540 | Release Date	: Thu Jun 24 20:37:11 EDT 2004 - Atul Mukker <atulm@lsil.com> | 
 | 541 | Current Version	: 2.20.0.1 | 
 | 542 | Older Version	: megaraid 2.20.0.00 | 
 | 543 |  | 
 | 544 | i.	Modules are not 'y' by default, but depend on current definition of | 
 | 545 | 	SCSI & PCI. | 
 | 546 |  | 
 | 547 | ii.	Redundant structure mraid_driver_t removed. | 
 | 548 |  | 
 | 549 | iii.	Miscellaneous indentation and goto/label fixes. | 
 | 550 | 		- Christoph Hellwig <hch@infradead.org>, 06.24.2004 linux-scsi | 
 | 551 |  | 
 | 552 | iv.	scsi_host_put(), do just before completing HBA shutdown. | 
 | 553 |  | 
 | 554 |  | 
 | 555 |  | 
 | 556 | Release Date	: Mon Jun 21 19:53:54 EDT 2004 - Atul Mukker <atulm@lsil.com> | 
 | 557 | Current Version	: 2.20.0.0 | 
 | 558 | Older Version	: megaraid 2.20.0.rc2 and 2.00.3 | 
 | 559 |  | 
 | 560 | i.	Independent module to interact with userland applications and | 
 | 561 | 	multiplex command to low level RAID module(s). | 
 | 562 |  | 
 | 563 | 	"Shared code in a third module, a "library module", is an acceptable | 
 | 564 | 	solution. modprobe automatically loads dependent modules, so users | 
 | 565 | 	running "modprobe driver1" or "modprobe driver2" would automatically | 
 | 566 | 	load the shared library module." | 
 | 567 |  | 
 | 568 | 		- Jeff Garzik <jgarzik@pobox.com> 02.25.2004 LKML | 
 | 569 |  | 
 | 570 | 	"As Jeff hinted, if your userspace<->driver API is consistent between | 
 | 571 | 	your new MPT-based RAID controllers and your existing megaraid driver, | 
 | 572 | 	then perhaps you need a single small helper module (lsiioctl or some | 
 | 573 | 	better name), loaded by both mptraid and megaraid automatically, which | 
 | 574 | 	handles registering the /dev/megaraid node dynamically. In this case, | 
 | 575 | 	both mptraid and megaraid would register with lsiioctl for each | 
 | 576 | 	adapter discovered, and lsiioctl would essentially be a switch, | 
 | 577 | 	redirecting userspace tool ioctls to the appropriate driver." | 
 | 578 |  | 
 | 579 | 		- Matt Domsch <Matt_Domsch@dell.com> 02.25.2004 LKML | 
 | 580 |  | 
 | 581 | ii.	Remove C99 initializations from pci_device id. | 
 | 582 |  | 
 | 583 | 	"pci_id_table_g would be much more readable when not using C99 | 
 | 584 | 	initializers. | 
 | 585 | 	PCI table doesn't change, there's lots of users that prefer the more | 
 | 586 | 	readable variant.  And it's really far less and much easier to grok | 
 | 587 | 	lines without C99 initializers." | 
 | 588 |  | 
 | 589 | 		- Christoph Hellwig <hch@infradead.org>, 05.28.2004 linux-scsi | 
 | 590 |  | 
 | 591 | iii.	Many fixes as suggested by Christoph Hellwig <hch@infradead.org> on | 
 | 592 | 	linux-scsi, 05.28.2004 | 
 | 593 |  | 
 | 594 | iv.	We now support up to 32 parallel ioctl commands instead of current 1. | 
 | 595 | 	There is a conscious effort to let memory allocation not fail for ioctl | 
 | 596 | 	commands. | 
 | 597 |  | 
 | 598 | v.	Do away with internal memory management. Use pci_pool_(create|alloc) | 
 | 599 | 	instead. | 
 | 600 |  | 
 | 601 | vi.	Kill tasklet when unloading the driver. | 
 | 602 |  | 
 | 603 | vii.	Do not use "host_lock', driver has fine-grain locks now to protect all | 
 | 604 | 	data structures. | 
 | 605 |  | 
 | 606 | viii.	Optimize the build scatter-gather list routine. The callers already | 
 | 607 | 	know the data transfer address and length. | 
 | 608 |  | 
 | 609 | ix.	Better implementation of error handling and recovery. Driver now | 
 | 610 | 	performs extended errors recovery for instances like scsi cable pull. | 
 | 611 |  | 
 | 612 | x.	Disassociate the management commands with an overlaid scsi command. | 
 | 613 | 	Driver now treats the management packets as special packets and has a | 
 | 614 | 	dedicated callback routine. |