Hi all,

Currently i am developing a device driver for an custom made embedded system running linux kernel 2.6.28.7

In this system i am getting the following soft lockup error

BUG: soft lockup - CPU0 stuck for 61s!
followed by call trace

I tried navigating into kernel source and found out the this error originates from kernel/softlockup.c file under void softlockup_tick(void) function.

Now i suspect that the cause of the error is with the wait_event_interruptible call inside my driver code. In one of the driver i have used wait_event_timeout and correspondingly i have used wake_up call.

Now some of my colleagues suggested me to use wake_up_interruptible instead of wake_up call.

1. What is the difference between those two calls?
2. What is the cause for this softlockup problem?

Thanks in advance.