Hi Seokmann

Haruo> The race issue seem to be in latest megaraid_mbox 2.20.4.5.
Haruo> I think that I make adapter->quiescent illegal by megaraid_isr() and 
Haruo> megaraid_mbox_mm_done(). 

I think that patch is almost OK. 
It works with  Express5800(4way) without trouble. 
Strictly, it is necessary to be likely to lock to adapter->quiescent.
In addition, I have changed access of outstanding_cmds to atomic access.
(See attached file : linux-2.6.12-rc1-megaraid-outstanding_cmds-atomic.patch)

The patching order is:
  - linux-2.6.12-rc1-megaraid-isr-quiescent-race-fix.patch
  - linux-2.6.12-rc1-megaraid-outstanding_cmds-atomic.patch

Seokmann> Can you please provide where the driver hung?

Interrupt doesn't enter. I think that it repeatedly executes megaraid_isr().
I am using KDB, it can specify driver's place with the NMI switch when hang up. 
I continue the driver's debugging further. 

Thanks
--
Haruo

Attachment: linux-2.6.12-rc1-megaraid-outstanding_cmds-atomic.patch
Description: linux-2.6.12-rc1-megaraid-outstanding_cmds-atomic.patch



Reply via email to