Thanks to everyone that responded!! My resolution is to wait_event_interruptible where I check the condition when I am awaken. If the condition is equal to the condition that I set elsewhere when I get what I am waiting for, then I handle the data and return it to the user. If the condition is not what I expect, then I know that it was a signal that caused me to continue. At that point, I simply return from my blocking I/O and assume that if the user app is still running it will ask again or if has crashed, then the module can be unloaded if need be. Thanks again, -- Best regards, David Stroupe Keyed-Up Software -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ IRC Channel: irc.openprojects.net / #kernelnewbies Web Page: http://www.kernelnewbies.org/