scsi: hpsa: correct device resets
Correct a race condition that occurs between the reset handler and the
completion handler. There are times when the wait_event condition is
never met due to this race condition and the reset never completes.
The reset_pending field is NULL initially.
t Reset Handler Thread Completion Thread
-- -------------------- -----------------
t1 if (c->reset_pending)
t2 c->reset_pending = dev; if (atomic_dev_and_test(counter))
t3 atomic_inc(counter) wait_up_all(event_sync_wait_queue)
t4
t5 wait_event(...counter == 0)
Kernel.org Bugzilla:
https://bugzilla.kernel.org/show_bug.cgi?id=1994350
Bug 199435 - HPSA + P420i resetting logical Direct-Access
never complete
Reviewed-by:
Justin Lindley <justin.lindley@microsemi.com>
Reviewed-by:
David Carroll <david.carroll@microsemi.com>
Reviewed-by:
Scott Teel <scott.teel@microsemi.com>
Signed-off-by:
Don Brace <don.brace@microsemi.com>
Signed-off-by:
Martin K. Petersen <martin.petersen@oracle.com>
Loading
Please sign in to comment