Hi Seokmann,

I thought about the race issue of megaraid_isr() and 
megaraid_queue_command().

fuinction : lock name
----------------------
megaraid_mbox_runpendq () : pending_list_lock
megaraid_isr() : no lock
wait_till_fw_ready(): host_lock
megaraid_mbox_mm_done(): no lock

When  quiescent was accessed, the pending_list_lock is used.
(See attached file: linux-2.6.12-rc1-megaraid-isr-quiescent-race-more-fix.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
    - linux-2.6.12-rc1-megaraid-queuecommand-error-midlayer-retry-fix.patch     
       
    - linux-2.6.12-rc1-megaraid-isr-quiescent-race-more-fix.patch

Please check the source. 
Now, the verification is being executed with the server of Toshiba.

It is sure to relate to FW about outstanding_cmds. 
I want to hear your opinion. 
--
Haruo

Attachment: linux-2.6.12-rc1-megaraid-isr-quiescent-race-more-fix.patch
Description: linux-2.6.12-rc1-megaraid-isr-quiescent-race-more-fix.patch



Reply via email to