On Wed, May 31, 2000 at 03:35:30PM +0200, Manfred Spraul wrote:
> I'm stuck with a network oops, perhaps someone could help me:
> 
> the actual oops happens in sock_def_writable because the magic value of
> skb->sk->wait is 0.
> 
> I think I tracked it back to sock_release():
> The network driver is drivers/net/hamradio/scc.c, the protocol is ax25,
> the application is ulistd.
> 
> Only "good" [skb->sk->wait->__magic correct] packets are added to
> scc->tx_queue [line 1732, scc_net_tx], but later a bad packet is
> dequeued in scc_txint [line 401].
> 
> I assume the socket was closed, and thus the inode was cleared.
> [clean_inode, fs/inode.c]
> 
> My questions are:
> * any other ideas what could have caused the oops? The oops first
> appeared in 2.3.99-pre3, pre2 was ok. 2.4.0test1-ac4 oopsed.
> * what should happen to pending packets if their socket is closed?

A socket cannot close when there are still packets owned by it.
2.2 uses a timer to simply wait, 2.4 uses callbacks from kfree_skb 
(sk->destruct)

I guess the new socket destroy mechanism does not work correctly
with AX.25. In theory it should still use the timer then.


-Andi

Reply via email to