1 Release Date : Thu Nov 16 15:32:35 EST 2006 2 Sumant Patro <s 3 Current Version : 2.20.5.1 (scsi module), 2.20 4 Older Version : 2.20.4.9 (scsi module), 2.20 5 6 1. Changes in Initialization to fix kdump 7 Send SYNC command on loading. 8 This command clears the pending comman 9 and re-initialize its internal RAID st 10 Without this change, megaraid driver e 11 initialize the adapter during kdump's 12 if there are pending commands or inter 13 sharing the same IRQ. 14 2. Authors email-id domain name changed f 15 Also modified the MODULE_AUTHOR to meg 16 17 Release Date : Fri May 19 09:31:45 EST 2006< 18 Current Version : 2.20.4.9 (scsi module), 2.20 19 Older Version : 2.20.4.8 (scsi module), 2.20 20 21 1. Fixed a bug in megaraid_init_mbox(). 22 Customer reported "garbage in file on 23 Root Cause: the driver registered cont 24 for those which are not support it. 25 Fix: Made change in the function inser 26 identifying 64-bit DMA capable control 27 28 > -----Original Message----- 29 > From: Vasily Averin [mailto:vvs@sw.r 30 > Sent: Thursday, May 04, 2006 2:49 PM 31 > To: linux-scsi@vger.kernel.org; Koll 32 > Ju, Seokmann; Bagalkote, Sreenivas; 33 > James.Bottomley@SteelEye.com; devel@ 34 > Subject: megaraid_mbox: garbage in f 35 > 36 > Hello all, 37 > 38 > I've investigated customers claim on 39 > their node and found a 40 > strange effect: reading from some fi 41 > "attempt to access beyond end of de 42 > 43 > I've checked filesystem, memory on t 44 > version, but it 45 > does not help and issue still has be 46 > file reading. 47 > 48 > Reproducer is simple: 49 > 50 > echo 0xffffffff >/proc/sys/dev/scsi/ 51 > cat /vz/private/101/root/etc/ld.so.c 52 > echo 0 >/proc/sys/dev/scsi/logging 53 > 54 > It leads to the following messages i 55 > 56 > sd_init_command: disk=sda, block=871 57 > sda : block=871769260 58 > sda : reading 26/26 512 byte blocks. 59 > scsi_add_timer: scmd: f79ed980, time 60 > sd 0:1:0:0: send 0xf79ed980 61 > command: Read (10): 28 00 33 62 > buffer = 0xf7cfb540, bufflen = 13312 63 > queuecommand 0xc0344010 64 > leaving scsi_dispatch_cmnd() 65 > scsi_delete_timer: scmd: f79ed980, r 66 > sd 0:1:0:0: done 0xf79ed980 SUCCESS 67 > command: Read (10): 28 00 33 68 > scsi host busy 1 failed 0 69 > sd 0:1:0:0: Notifying upper driver o 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 devi 74 > sda6: rw=0, want=1044134458, limit=9 75 > Buffer I/O error on device sda6, log 76 > attempt to access beyond end of devi 77 78 2. When INQUIRY with EVPD bit set issued 79 system memory gets corrupted. 80 Root Cause: MegaRAID F/W handle the IN 81 incorrectly. 82 Fix: MegaRAID F/W has fixed the proble 83 soon. Meanwhile, driver will filter ou 84 85 3. One member in the data structure of th 86 issue on 64-bit platform. 87 Customer reported "kernel unaligned ac 88 application communicates with MegaRAID 89 Root Cause: in uioc_t structure, one o 90 led system to display the error messag 91 Fix: A patch submitted to community fr 92 93 > -----Original Message----- 94 > From: linux-scsi-owner@vger.kernel.o 95 > [mailto:linux-scsi-owner@vger.kernel 96 > Sent: Wednesday, July 12, 2006 4:20 97 > To: linux-scsi@vger.kernel.org; linu 98 > Subject: Re: Help: strange messages 99 > 100 > Hi, 101 > 102 > I saw same message. 103 > 104 > When GAM(Global Array Manager) is st 105 > message output. 106 > kernel: kernel unaligned access to 0 107 > ip=0xa000000200053371 108 > 109 > The uioc structure used by ioctl is 110 > the allignment of each member are di 111 > In a 64 bit structure, the allignmen 112 > boundary. this causes this messages. 113 > In a 32 bit structure, we don't see 114 > of member fit 32 bit boundary even i 115 > 116 > patch 117 > I Add 32 bit dummy member to fit 64 118 > We confirmed this patch fix the prob 119 > 120 > ************************************ 121 > **************** 122 > --- linux-2.6.9/drivers/scsi/megarai 123 > 2006-04-03 17:13:03.000000000 +0900 124 > +++ linux-2.6.9/drivers/scsi/megarai 125 > 2006-04-03 17:14:09.000000000 +0900 126 > @@ -132,6 +132,10 @@ 127 > /* Driver Data: */ 128 > void __user * use 129 > uint32_t use 130 > + 131 > + /* 64bit alignment */ 132 > + uint32_t pad 133 > + 134 > mraid_passthru_t __u 135 > 136 > mraid_passthru_t *pt 137 > ************************************ 138 > **************** 139 140 Release Date : Mon Apr 11 12:27:22 EST 2006< 141 Current Version : 2.20.4.8 (scsi module), 2.20 142 Older Version : 2.20.4.7 (scsi module), 2.20 143 144 1. Fixed a bug in megaraid_reset_handler( 145 Customer reported "Unable to handle ke 146 at virtual address 00000000" when syst 147 for some reason. It happened randomly. 148 Root Cause: in the megaraid_reset_hand 149 returning pending packets in the pend_ 150 pending packets. 151 Fix: Made the change in the driver so 152 in the pend_list. 153 154 2. Added change request. 155 As found in the following URL, rmb() o 156 problem. I had to increase the loop co 157 http://marc.theaimsgroup.com/?l=linux- 158 159 I attached a patch for your reference, 160 Could you check and get this fix in yo 161 162 Best Regards, 163 Jun'ichi Nomura 164 165 Release Date : Fri Nov 11 12:27:22 EST 2005< 166 Current Version : 2.20.4.7 (scsi module), 2.20 167 Older Version : 2.20.4.6 (scsi module), 2.20 168 169 1. Sorted out PCI IDs to remove megaraid 170 Based on the patch from Daniel, sorted 171 character node name change from 'megad 172 conflict. 173 --- 174 Hopefully we'll be getting the build r 175 but we should also be thinking about t 176 support overlap in the megaraid driver 177 178 This patch pencils in a date of Feb 06 179 printk abuse in hope that existing leg 180 going on. 181 182 Signed-off-by: Daniel Drake <dsd@gentoo 183 --- 184 185 2. Fixed a issue: megaraid always fails t 186 --- 187 I found that the megaraid driver alway 188 adapter with the following message: 189 megaraid: resetting the host.. 190 megaraid mbox: reset sequence 191 megaraid: fast sync command ti 192 megaraid: reservation reset fa 193 when the "Cluster mode" of the adapter 194 So, whenever the reset occurs, the ada 195 offline and just become unavailable. 196 197 Jun'ichi Nomura [mailto:jnomura@mtc.bi 198 --- 199 200 Release Date : Mon Mar 07 12:27:22 EST 2005< 201 Current Version : 2.20.4.6 (scsi module), 2.20 202 Older Version : 2.20.4.5 (scsi module), 2.20 203 204 1. Added IOCTL backward compatibility. 205 Convert megaraid_mm driver to new comp 206 I don't have easy access to hardware, 207 - Signed-off-by:Andi Kleen <ak@ 208 209 2. megaraid_mbox fix: wrong order of argu 210 That, BTW, shows why cross-builds are 211 problem had been a new warning showing 212 build (number of exceeding 256 got tru 213 - Signed-off-by: Al Viro 214 <viro@parcelfarce.linux.theplan 215 216 3. Convert pci_module_init to pci_registe 217 Convert from pci_module_init to pci_re 218 (from:http://kernelnewbies.org/KernelJ 219 - Signed-off-by: Domen Puncer < 220 221 4. Use the pre defined DMA mask constants 222 Use the DMA_{64,32}BIT_MASK constants 223 pci_set_dma_mask() or pci_set_consiste 224 http://marc.theaimsgroup.com/?t=108001 225 details. 226 Signed-off-by: Tobias Klauser < 227 Signed-off-by: Domen Puncer <do 228 229 5. Remove SSID checking for Dobson, Linds 230 Checking the SSVID/SSID for controller 231 and Verde is unnecessary because devic 232 and it is unique value. So, all contro 233 supported by the driver regardless SSV 234 235 6. Date Thu, 27 Jan 2005 04:31:09 +0100 236 From Herbert Poetzl <> 237 Subject RFC: assert_spin_locked() for 238 239 Greetings! 240 241 overcautious programming will kill you 242 ever thought about checking a spin_loc 243 asserting that it must be held (maybe 244 spinlock debugging?) ... 245 246 there are several checks present in th 247 where somebody does a variation on the 248 249 BUG_ON(!spin_is_locked(&some_lock)); 250 251 so what's wrong about that? nothing, u 252 compile the code with CONFIG_DEBUG_SPI 253 without CONFIG_SMP ... in which case t 254 will kill your kernel ... 255 256 maybe it's not advised to make such as 257 but here is a solution which works for 258 (compile tested for sh, x86_64 and x86 259 tested for x86 only) 260 261 best, 262 Herbert 263 264 - Herbert Poetzl <herbert@13thf 265 266 Release Date : Thu Feb 03 12:27:22 EST 2005< 267 Current Version : 2.20.4.5 (scsi module), 2.20 268 Older Version : 2.20.4.4 (scsi module), 2.20 269 270 1. Modified name of two attributes in scs 271 On Wed, 2005-02-02 at 10:56 -0500, Ju, 272 > + .sdev_attrs 273 > + .shost_attrs 274 275 These are, perhaps, slightly confusing 276 The terms device and class_device have 277 generic device model, neither of which 278 Why not simply megaraid_sdev_attrs and 279 280 Other than this, it looks fine to me t 281 282 Release Date : Thu Jan 27 00:01:03 EST 2005< 283 Current Version : 2.20.4.4 (scsi module), 2.20 284 Older Version : 2.20.4.3 (scsi module), 2.20 285 286 1. Bump up the version of scsi module due 287 288 Release Date : Thu Jan 21 00:01:03 EST 2005< 289 Current Version : 2.20.4.3 (scsi module), 2.20 290 Older Version : 2.20.4.2 (scsi module), 2.20 291 292 1. Remove driver ioctl for logical drive 293 replace with the sysfs attribute. To r 294 capacity, application shall now use th 295 logical drive number for a scsi device 296 logical drives, class device attribute 297 identify each controller. 298 - Atul Mukker <atulm@lsil.com> 299 300 "James, I've been thinking about this 301 to something here. Let each driver add 302 303 - Matt Domsch <Matt_Domsch@dell 304 linux-scsi mailing list 305 306 307 "Then, if you simply publish your LD n 308 the device, you can look through /sys 309 310 - James Bottomley <James.Bottom 311 linux-scsi mailing list 312 313 314 "I don't see why not ... it's your dri 315 extra information you need as scsi_dev 316 the designs of the extensible attribut 317 318 - James Bottomley <James.Bottom 319 linux-scsi mailing list 320 321 2. Add AMI megaraid support - Brian King < 322 PCI_VENDOR_ID_AMI, PCI_DEVICE_ 323 PCI_VENDOR_ID_AMI, PCI_SUBSYS_ 324 325 3. Make some code static - Adrian Bunk <bu 326 Date: Mon, 15 Nov 2004 03:14:57 +010 327 328 The patch below makes some needlessly 329 -wait_queue_head_t wait_q; 330 +static wait_queue_head_t wait_q; 331 332 Signed-off-by: Adrian Bunk <bunk@stusta 333 334 4. Added NEC ROMB support - NEC MegaRAID 335 PCI_VENDOR_ID_LSI_LOGIC, PCI_D 336 PCI_SUBSYS_ID_NEC, PCI_SUBSYS_ 337 338 5. Fixed Tape drive issue : For any Direc 339 including tape, timeout value set by d 340 value, most of command will return wit 341 command like ERASE or FORMAT, it takes 342 capacity of the device and the command 343 completes. 344 To address this issue, the 'timeout' f 345 have NO TIMEOUT (i.e., 4) value as its 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 353 Older Version : 2.20.4.1 (scsi module), 2.20 354 355 i. Introduced driver ioctl that returns s 356 357 "Why can't the existing sysfs interfac 358 - Brian King (brking@us.ibm.co 359 360 "I've looked into solving this another 361 to get this driver-private mapping of 362 without putting code something like th 363 364 "...and by providing a mapping a funct 365 is free to change its mapping algorith 366 - Matt Domsch (Matt_Domsch@del 367 368 Release Date : Thu Dec 9 19:02:14 EST 2004< 369 370 Current Version : 2.20.4.1 (scsi module), 2.20 371 Older Version : 2.20.4.1 (scsi module), 2.20 372 373 i. Fix a bug in kioc's dma buffer dealloc 374 375 Release Date : Thu Nov 4 18:24:56 EST 2004< 376 377 Current Version : 2.20.4.1 (scsi module), 2.20 378 Older Version : 2.20.4.0 (scsi module), 2.20 379 380 i. Handle IOCTL cmd timeouts more properl 381 382 ii. pci_dma_sync_{sg,single}_for_cpu was i 383 incorrectly (instead of _for_device). 384 pci_dma_sync_{sg,single}_for_device. 385 386 Release Date : Wed Oct 06 11:15:29 EDT 2004< 387 Current Version : 2.20.4.0 (scsi module), 2.20 388 Older Version : 2.20.4.0 (scsi module), 2.20 389 390 i. Remove CONFIG_COMPAT around register_i 391 392 Release Date : Mon Sep 27 22:15:07 EDT 2004< 393 Current Version : 2.20.4.0 (scsi module), 2.20 394 Older Version : 2.20.3.1 (scsi module), 2.20 395 396 i. Fix data corruption. Because of a typo 397 were wrongly shared by the ioctl path. 398 to be replaced by an incoming ioctl co 399 400 Release Date : Tue Aug 24 09:43:35 EDT 2004< 401 Current Version : 2.20.3.1 (scsi module), 2.20 402 Older Version : 2.20.3.0 (scsi module), 2.20 403 404 i. Function reordering so that inline fun 405 are actually used. It is now mandatory 406 407 Declare some heavy-weight functions to 408 megaraid_mbox_build_cmd, megaraid_mbox 409 megaraid_mbox_prepare_pthru, megaraid_ 410 megaraid_busywait_mbox 411 412 - Andrew Morton, 08.19.2004 413 linux-scsi mailing list 414 415 "Something else to clean up after incl 416 inline function is actually rendered a 417 the function is always used before it 418 re-arrange the code to eliminate the n 419 function prototypes at the top of each 420 declare with a prototype) each inline 421 422 - Matt Domsch <Matt_Domsch@dell 423 linux-scsi mailing list 424 425 426 ii. Display elapsed time (countdown) while 427 428 iii. Module compilation reorder in Makefile 429 not occur when driver is compiled non- 430 431 Patrick J. LoPresti <patl@users 432 linux-scsi mailing list 433 434 435 Release Date : Thu Aug 19 09:58:33 EDT 2004< 436 Current Version : 2.20.3.0 (scsi module), 2.20 437 Older Version : 2.20.2.0 (scsi module), 2.20 438 439 i. When copying the mailbox packets, copy 440 mailboxes) and only first 22 bytes (fo 441 avoid getting the stale values for bus 442 bit just before issuing command to the 443 444 ii. In the reset handling, if the reset co 445 driver, do not (wrongly) print informa 446 packet. 447 448 iii. Have extended wait when issuing comman 449 required for the cases where the optio 450 no BIOS to start the controller. The F 451 the first command from the driver. The 452 timeout for the synchronous commands, 453 actually required. We now wait up to M 454 FW boot process. 455 456 iv. In megaraid_mbox_product_info, clear t 457 before preparing the command for inqui 458 FW does not get junk values in the com 459 460 v. Do away with the redundant LSI_CONFIG_ 461 CONFIG_COMPAT. Replace <asm/ioctl32.h> 462 463 - James Bottomley <James.Bottom 464 linux-scsi mailing list 465 466 vi. Add support for 64-bit applications. C 467 32-bit applications, even on 64-bit pl 468 "buffer" fields of the mimd_t structur 469 addresses in application mailbox and p 470 471 vii. Move the function declarations for the 472 megaraid_mm.h to megaraid_mm.c 473 474 - Andrew Morton, 08.19.2004 475 linux-scsi mailing list 476 477 viii. Change default values for MEGARAID_NEW 478 MEGARAID_MAILBOX to 'n' in Kconfig.meg 479 480 - Andrew Morton, 08.19.2004 481 linux-scsi mailing list 482 483 ix. replace udelay with msleep 484 485 x. Typos corrected in comments and whites 486 grouping of expressions. 487 488 489 Release Date : Fri Jul 23 15:22:07 EDT 2004< 490 Current Version : 2.20.2.0 (scsi module), 2.20 491 Older Version : 2.20.1.0 (scsi module), 2.20 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 megar 498 499 iv. Remove yield() while mailbox handshake 500 501 502 "My other main gripe is things like th 503 504 + // wait for maximum 1 second f 505 + for (i = 0; i < 40000; i++) { 506 + if (mbox->numstatus != 507 + udelay(25); yield(); 508 + } 509 510 which litter the driver. Use of yield 511 512 - James Bottomley <James.Bottom 513 linux-scsi mailing list 514 515 v. Remove redundant __megaraid_busywait_m 516 517 vi. Fix bug in the management module, whic 518 IO module is loaded and then unloaded, 519 management utility. The current versio 520 handle the adapter unregister properly 521 522 Specifically, it still keeps a referen 523 controllers. To avoid this, the static 524 replaced by a dynamic list, which gets 525 is added or removed. 526 527 Also, during unregistration of the IO 528 now released in the exact reverse orde 529 sequence. 530 531 532 Release Date : Fri Jun 25 18:58:43 EDT 2004< 533 Current Version : 2.20.1.0 534 Older Version : megaraid 2.20.0.1 535 536 i. Stale list pointer in adapter causes k 537 megaraid_mbox is unloaded 538 539 540 Release Date : Thu Jun 24 20:37:11 EDT 2004< 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 de 545 SCSI & PCI. 546 547 ii. Redundant structure mraid_driver_t rem 548 549 iii. Miscellaneous indentation and goto/lab 550 - Christoph Hellwig <hch@infrad 551 552 iv. scsi_host_put(), do just before comple 553 554 555 556 Release Date : Mon Jun 21 19:53:54 EDT 2004< 557 Current Version : 2.20.0.0 558 Older Version : megaraid 2.20.0.rc2 and 2.00 559 560 i. Independent module to interact with us 561 multiplex command to low level RAID mo 562 563 "Shared code in a third module, a "lib 564 solution. modprobe automatically loads 565 running "modprobe driver1" or "modprob 566 load the shared library module." 567 568 - Jeff Garzik <jgarzik@pobox.co 569 570 "As Jeff hinted, if your userspace<->d 571 your new MPT-based RAID controllers an 572 then perhaps you need a single small h 573 better name), loaded by both mptraid a 574 handles registering the /dev/megaraid 575 both mptraid and megaraid would regist 576 adapter discovered, and lsiioctl would 577 redirecting userspace tool ioctls to t 578 579 - Matt Domsch <Matt_Domsch@dell 580 581 ii. Remove C99 initializations from pci_de 582 583 "pci_id_table_g would be much more rea 584 initializers. 585 PCI table doesn't change, there's lots 586 readable variant. And it's really far 587 lines without C99 initializers." 588 589 - Christoph Hellwig <hch@infrad 590 591 iii. Many fixes as suggested by Christoph H< 592 linux-scsi, 05.28.2004 593 594 iv. We now support up to 32 parallel ioctl 595 There is a conscious effort to let mem 596 commands. 597 598 v. Do away with internal memory managemen 599 instead. 600 601 vi. Kill tasklet when unloading the driver 602 603 vii. Do not use "host_lock', driver has fin 604 data structures. 605 606 viii. Optimize the build scatter-gather list 607 know the data transfer address and len 608 609 ix. Better implementation of error handlin 610 performs extended errors recovery for 611 612 x. Disassociate the management commands w 613 Driver now treats the management packe 614 dedicated callback routine.
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.