[Prism54-devel] Recent changes to reset functionality

Jens Maurer Jens.Maurer@gmx.net
Sat, 07 Feb 2004 18:04:10 +0100


I've had a look at islpci_reset_if() and
the function that calls it, islpci_reset().

I think the general approach is fine (give the card a little
more time if the interrupt doesn't come through the
first time), but the implementation has a race condition.
There is a time window between leaving islpci_reset_if() the
first time and re-entering it later where a reset interrupt
would not trigger the wait queue, because no interested
parties are registered at this moment.

I suggest moving the "wait a little longer" functionality
entirely into islpci_reset_if(), and make sure to continue
to perform adequate waitqueue maintenance there.

Jens Maurer