linux-stable/drivers/scsi/aacraid
Meelis Roos bef4e68830 scsi: aacraid: Fix driver oops with dead battery
The battery in my HP NetRAID-4M died of old age, and the aacraid driver
started oopsing with NULL pointer dereference on startup after that.

Fix it by reordering the init sequence to fill in function pointers
before ioremapping memory, or dev->a_ops.adapter_ioremap pointer will be
NULL.

Other subtypes of aacraid seem to have the order already correct.

This was the call trace:

 ? aac_probe_one+0x7a5/0xb30 [aacraid]
 pci_device_probe+0xc0/0x1a0
 driver_probe_device+0x1df/0x3b0
 __driver_attach+0xa9/0xe0
 ? driver_probe_device+0x3b0/0x3b0
 bus_for_each_dev+0x4c/0x90
 driver_attach+0x1d/0x40
 ? driver_probe_device+0x3b0/0x3b0
 bus_add_driver+0x1a7/0x2a0
 driver_register+0x6e/0x130
 __pci_register_driver+0x54/0x90
 ? 0xf81f4000
 aac_init+0x2b/0x1000 [aacraid]
 do_one_initcall+0x45/0x1e0
 ? kfree_skbmem+0x74/0xa0
 ? kfree+0x16d/0x240
 ? kvfree+0x45/0x50
 ? kvfree+0x45/0x50
 ? __vunmap+0x99/0x120
 ? do_init_module+0x1a/0x245
 do_init_module+0x83/0x245
 load_module+0x2764/0x34a0
 ? kernel_read_file+0x150/0x320
 SyS_finit_module+0x82/0xa0
 do_fast_syscall_32+0xba/0x340

Signed-off-by: Meelis Roos <mroos@linux.ee>
Reviewed-by: Raghava Aditya Renukunta <RaghavaAditya.Renukunta@microsemi.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2018-01-04 01:03:41 -05:00
..
aachba.c scsi: aacraid: Remove AAC_HIDE_DISK check in queue command 2018-01-03 23:26:43 -05:00
aacraid.h scsi: aacraid: Update driver version to 50877 2018-01-03 23:26:43 -05:00
commctrl.c scsi: aacraid: Fix ioctl reset hang 2018-01-03 23:26:41 -05:00
comminit.c scsi: aacraid: Move code to wait for IO completion to shutdown func 2018-01-03 23:26:42 -05:00
commsup.c scsi: aacraid: Remove unused rescan variable 2018-01-03 23:26:43 -05:00
dpcsup.c scsi: aacraid: Update copyrights 2017-02-03 10:35:04 -05:00
linit.c scsi: aacraid: Remove unused rescan variable 2018-01-03 23:26:43 -05:00
Makefile [SCSI] aacraid: Add new code for PMC-Sierra's SRC based controller family 2011-03-23 11:36:58 -05:00
nark.c scsi: aacraid: Update copyrights 2017-02-03 10:35:04 -05:00
rkt.c scsi: aacraid: Update copyrights 2017-02-03 10:35:04 -05:00
rx.c scsi: aacraid: pci_alloc_consistent() failures on ARM64 2017-04-26 18:28:06 -04:00
sa.c scsi: aacraid: Fix driver oops with dead battery 2018-01-04 01:03:41 -05:00
src.c scsi: aacraid: Add a small delay after IOP reset 2017-09-27 21:42:14 -04:00
TODO