wait_even_interruptible_timeout(), signal, spin_lock() = system hang

From: Shirish Pargaonkar
Date: Fri May 28 2010 - 12:44:52 EST


After this sequence of calls, system hangs (smp, x86 box based with
.34 kernel), can ping only.
I have not been able to break in with Alt Sysrq t, working on that

rc = wait_event_interruptible_timeout(ses->server->response_q,
(midQ->midState != MID_REQUEST_SUBMITTED), timeout);
if (rc < 0) {
cFYI(1, ("command 0x%x interrupted", midQ->command));
return -1;
}

and when function that invoking function after coming out with ERESTARTSYS
(I kill the command with Ctrl C) calls
spin_lock(&GlobalMid_Lock);

system hangs. If I sleep before return -1 (e.g. msleep(1), no hang)

I do not have to use wait_event_interruptible_timeout and no such problems with
wait_event_timeout, it is only when signal/interrupt is involved, I
run into this problem

Any pointers/ideas what could be happening, would be really really appreciated.

Regards,

Shirish
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/