My app has a thread separate from the main thread that calls my driver. Within the driver the call blocks using wait_event_interruptible(queue, condition == 0xda); I know that elsewhere in the driver condition is being set to 0xda (because I have a printk there), but the wait is never broken until I do a ctrl-c on the app. At that time the wait wakes up and takes the program path that checks to see if condition == 0xda. So what I am seeing is that either the wait macro never sees the condition change until after the wait loop breaks, or the condition is not checked correctly in that loop. Any thoughts? TIA -- 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/