[nvmewin] INTx
Chang, Alex
Alex.Chang at idt.com
Mon Feb 27 15:43:16 PST 2012
There is another bug in IoCompletionDpcRoutine. The Boolean variable "InterruptClaimed" needs to be reset to FALSE when checking next completion queues as below. Otherwise, it might write some bogus values to the Head Pointer of the queues.
if (InterruptClaimed == TRUE) {
/* Now update the Completion Head Pointer via Doorbell register */
StorPortWriteRegisterUlong(pAE, pCQI->pCplHDBL, (ULONG)pCQI->CplQHeadPtr);
InterruptClaimed = FALSE;
}
________________________________
From: Luse, Paul E [mailto:paul.e.luse at intel.com]
Sent: Monday, February 27, 2012 11:30 AM
To: Chang, Alex; nvmewin at lists.openfabrics.org
Subject: RE: INTx
Hi Alex,
Yep, you need to grab/release the DpcLock instead of the per message lock when in INTx mode - good catch.
Thx
Paul
From: Chang, Alex [mailto:Alex.Chang at idt.com]
Sent: Monday, February 27, 2012 12:02 PM
To: Luse, Paul E; nvmewin at lists.openfabrics.org
Subject: INTx
Hi Paul,
I believe the newly added DPC scheme crashes the system when using INTx. In IoCompletionDpcRoutine, the driver calls StorPortAcquireMSISpinLock with a specific MsgID causes blue screen. I should have tested it earlier. Should we call StorPortAcquireSpinLock instead?
Thanks,
Alex
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openfabrics.org/pipermail/nvmewin/attachments/20120227/c97e48c7/attachment.html>
More information about the nvmewin
mailing list