I have been writing a scsi module and as part of the module
initialisation I would like to delay while waiting for a specific
condition. I have tried to put the detect routine in a loop which
spins on jiffies + a timeout and my hardware condition. I had all
sorts of problems with this code and I found that module load
locked up. I tried using barrier and schedule in this loop and found
that schedule worked for me most of the time.
I thought I would have a look at the code with kgdb. Firstly I noticed
that schedule is not defined in the kgdb enabled kernel. Also even
if I put this detect routine in a spin for a while my interrupts do not
get serviced until after this spin and quite possibly not until the
detect routine returns.
I would like to know the correct way to facilitate a delay in a scsi
module detect routine, while waiting for a hardware condition which
gets satisfied by a number of interrupts. If this condition is not met
in a timeout period the code also continue.
I would also like to understand the kgdb kernel behaviour.
I am running a 2.4.16 kernel.
Cheers
Simon.
__________________________
Simon Haynes - Baydel
Phone : 44 (0) 1372 378811
Email : [email protected]
__________________________