2.0.3[0,1,2,3,pre4] black hangs.

Daniel Ryde (ryde@tripnet.se)
Thu, 23 Apr 1998 11:25:17 +0200 (CEST)


I have reported earlier about these solid hangs in free_wait. So I've made
a q'n dirty patch that I'm currently testing where I have a iteration
limit inside the for() loop in __remove_wait_queue() inline function:

In include/linux/sched.h:
extern inline void __remove_wait_queue(struct wait_queue ** p, struct wait_queue * wait)
{
struct wait_queue * next = wait->next;
struct wait_queue * head = next;
int bout;

for (bout=1000000; bout; bout--) {
struct wait_queue * nextlist = head->next;
if (nextlist == wait)
break;
head = nextlist;
}
head->next = next;
}

This is not good, I know, but can it brake things seriously? I was hoping
to get some gpf instead of a cli'ed infinite loop. And if the machine
continued to run normal after that then it would be superior.

Comments?

/D.Ryde

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu