2002-09-13 13:55:33

by Kevin Curtis

[permalink] [raw]
Subject: Preventing signal interrupt in Kernel module code

Hi,
I have written a Kernel module and I'm having a small problem with
signals that I hope someone can steer me through. The signal in question
are SIGCHILD, but that is not really relevant. I must be able to handle any
signal that the process has enabled.

My module has several wait queues, most of which I can cope with
being interrupted by a signal (returning EINTR to the process). However,
there are some hardware operations that I need to wait for completion of, as
it would be impossible to restart them or pick up where we left off. I
still want to use a wait queue so other things can run. Is there some
system call I can make to mask signals until the operation has completed.
Would I still call signal_pending() to see if one had occurred while they
were blocked?

I'm sure the answer is really simple but I haven't stumbled across it yet.

TIA

Kevin