awaitRequests: blocked_queue_tl was being set to NULL rather than
END_TSO_QUEUE if the thread being removed was at the end of the queue.
This bug has been in the code since 2003 - I have absolutely no idea
why it hasn't manifested until today.
blocked_queue_hd = tso->link;
}
if (blocked_queue_tl == tso) {
- blocked_queue_tl = prev;
+ blocked_queue_tl = prev ? prev : END_TSO_QUEUE;
}
/* Terminates the run queue + this inner for-loop. */