X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=net%2Fax25%2Fax25_subr.c;h=d8f2157331757a47d5272ac77cef9fee97544cc8;hb=c7eeae734f38bcdce97d43152bf9db6b9b18759a;hp=85c58c49b4d0bd2873abfc76167102c0dfa4e7a6;hpb=a727fea99bf4b2addcd64c596735148117a7b37f;p=powerpc.git diff --git a/net/ax25/ax25_subr.c b/net/ax25/ax25_subr.c index 85c58c49b4..d8f2157331 100644 --- a/net/ax25/ax25_subr.c +++ b/net/ax25/ax25_subr.c @@ -14,7 +14,6 @@ #include #include #include -#include #include #include #include @@ -163,7 +162,7 @@ void ax25_send_control(ax25_cb *ax25, int frametype, int poll_bit, int type) skb_reserve(skb, ax25->ax25_dev->dev->hard_header_len); - skb->nh.raw = skb->data; + skb_reset_network_header(skb); /* Assume a response - address structure for DTE */ if (ax25->modulus == AX25_MODULUS) { @@ -206,7 +205,7 @@ void ax25_return_dm(struct net_device *dev, ax25_address *src, ax25_address *des return; /* Next SABM will get DM'd */ skb_reserve(skb, dev->hard_header_len); - skb->nh.raw = skb->data; + skb_reset_network_header(skb); ax25_digi_invert(digi, &retdigi); @@ -280,6 +279,7 @@ void ax25_disconnect(ax25_cb *ax25, int reason) ax25_link_failed(ax25, reason); if (ax25->sk != NULL) { + local_bh_disable(); bh_lock_sock(ax25->sk); ax25->sk->sk_state = TCP_CLOSE; ax25->sk->sk_err = reason; @@ -289,5 +289,6 @@ void ax25_disconnect(ax25_cb *ax25, int reason) sock_set_flag(ax25->sk, SOCK_DEAD); } bh_unlock_sock(ax25->sk); + local_bh_enable(); } }