Re: Oops in 2.2.15pre7

From: Halvard Moe (halvardm@math.uio.no)
Date: Mon Feb 28 2000 - 11:53:03 EST


We have now used the patch below for almost six days on all our four
x-terminal servers without any oopses. Compared to the number of
oopses we had before inserting the patch (about one oops per machine
per day) I'm now convinced that the patch has solved the problem.

Thanks!

Halvard Moe

> As I see it will be:
> CPU0 CPU1
> kill_fasync unattaching this list node
> start to work on next (*)
> list node kfree_s it.
> -----------------------------------------------
> Access fasync->next >(OOPS)
>
> Or do you mean that synchronize_irq must be inserted in (*) (see patch)?
> If this is not right, too, then show your version, pls.
>
> --- socket.c.orig Mon Feb 21 16:38:03 2000
> +++ socket.c Mon Feb 21 16:39:34 2000
> @@ -521,6 +521,7 @@
> if(fa!=NULL)
> {
> fa->fa_fd=fd;
> + synchronize_irq();
> kfree_s(fna,sizeof(struct fasync_struct));
> release_sock(sock->sk);
> return 0;
> @@ -536,6 +537,7 @@
> if (fa!=NULL)
> {
> *prev=fa->fa_next;
> + synchronize_irq();
> kfree_s(fa,sizeof(struct fasync_struct));
> }
> }
>
> > Correct reader will see either list before modification or after modification,
> > both of them are valid. kill_fasync() is correct reader,
> > I do not know about tty_io.c.
> In tty_io.c we have function fasync_helper, which is much the same as
> socket.c::sock_fasync (besides that it works not with sockets),
> and the only difference is that in fasync_helper we *do* have sti/cli
> (Alan quoted that part from fasync_helper), and sock_fasync does not have
> sti/cli.

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



This archive was generated by hypermail 2b29 : Tue Feb 29 2000 - 21:00:20 EST