I sent simillar patch to Linus and DaveM on Sunday. Unfortunately it
did not found its way into either of these two trees (and IPX oops fix too).
In addition to yours I moved these 'sock->XXX = NULL' into sock_alloc_inode,
as I see no reason why sock->wait should be initialized in sock_alloc_inode,
but all other members in sock_alloc. It caused confusion to me, and
from your comment it looks like that you missed it too. Besides that
root of sockfs uses sock's inode with sock->ops, sk and file being
0x5a5a5a5a without moving initialization from sock_alloc to sock_alloc_inode.
> --- socket.c.orig Mon Feb 11 18:21:59 2002
> +++ socket.c Tue Feb 19 16:20:18 2002
> @@ -501,6 +501,8 @@ struct socket *sock_alloc(void)
> sock->ops = NULL;
> sock->sk = NULL;
> sock->file = NULL;
> +// init_waitqueue_head(&sock->wait); this is needed?
> + sock->passcred = 0;
>
> sockets_in_use[smp_processor_id()].counter++;
> return sock;
Best regards,
Petr Vandrovec
vandrove@vc.cvut.cz
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/