aacraid: kernel: AAC: Host adapter dead -1 (bisected)

From: Arkadiusz Miskiewicz
Date: Sun Jan 15 2017 - 06:08:20 EST



Hi.

There is a bug with handling of adaptec raid cards (in my case it is Adaptec
3405) where kernel logs hundreds of "AAC: Host adapter dead -1" messages.

Bug was reported previously on lkml but there was no progres in solving it.

There is also bugzilla entry:
https://bugzilla.kernel.org/show_bug.cgi?id=151661

I've bisected that to commit bellow and indeed, reverting it from kernel 4.9.3
makes messages go away.

Could anyone at microsemi look at this regression?

Thanks

commit 78cbccd3bd683c295a44af8050797dc4a41376ff
Author: Raghava Aditya Renukunta <RaghavaAditya.Renukunta@xxxxxxxxxxxxx>
Date: Mon Apr 25 23:32:37 2016 -0700

aacraid: Fix for KDUMP driver hang

When KDUMP is triggered the driver first talks to the firmware in INTX
mode, but the adapter firmware is still in MSIX mode. Therefore the first
driver command hangs since the driver is waiting for an INTX response and
firmware gives a MSIX response. If when the OS is installed on a RAID
drive created by the adapter KDUMP will hang since the driver does not
receive a response in sync mode.

Fixed by: Change the firmware to INTX mode if it is in MSIX mode before
sending the first sync command.

Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Raghava Aditya Renukunta
<RaghavaAditya.Renukunta@xxxxxxxxxxxxx>
Reviewed-by: Johannes Thumshirn <jthumshirn@xxxxxxx>
Signed-off-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>

my hardware:
02:0e.0 RAID bus controller [0104]: Adaptec AAC-RAID [9005:0285]
Subsystem: Adaptec 3405 [9005:02bb]
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping+ SERR+ FastB2B- DisINTx-
Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 32 (250ns min, 250ns max), Cache Line Size: 4 bytes
Interrupt: pin A routed to IRQ 18
Region 0: Memory at fba00000 (64-bit, non-prefetchable) [size=2M]
[virtual] Expansion ROM at fbc00000 [disabled] [size=256K]
Capabilities: [c0] Power Management version 2
Flags: PMEClk- DSI- D1+ D2- AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [d0] MSI: Enable- Count=1/2 Maskable- 64bit+
Address: 0000000000000000 Data: 0000
Capabilities: [e0] PCI-X non-bridge device
Command: DPERE- ERO- RBC=512 OST=4
Status: Dev=02:0e.0 64bit+ 133MHz+ SCD- USC- DC=bridge
DMMRBC=1024 DMOST=4 DMCRS=16 RSCEM- 266MHz- 533MHz-
Kernel driver in use: aacraid
Kernel modules: aacraid

[ 1.956009] Adaptec aacraid driver 1.2-1[41066]-ms
[ 2.164584] AAC0: kernel 5.2-0[17342] Aug 4 2010
[ 2.164633] AAC0: monitor 5.2-0[17342]
[ 2.164676] AAC0: bios 5.2-0[17342]
[ 2.164719] AAC0: serial 7C46114103A
[ 2.164761] AAC0: Non-DASD support enabled.
[ 2.164804] AAC0: 64bit support enabled.
[ 2.164846] AAC0: 64 Bit DAC enabled
[ 2.177929] scsi host6: aacraid


--
Arkadiusz MiÅkiewicz, arekm / ( maven.pl | pld-linux.org )