aboutsummaryrefslogtreecommitdiffstats
path: root/net/llc/llc_if.c
diff options
context:
space:
mode:
authorArnaldo Carvalho de Melo <acme@mandriva.com>2005-09-22 06:57:21 -0400
committerArnaldo Carvalho de Melo <acme@mandriva.com>2005-09-22 06:57:21 -0400
commitd389424e00f9097cd24b3df4ca0ab7221f140eeb (patch)
tree9ffa95a4e791b19e5d793a06943e40221858b236 /net/llc/llc_if.c
parent2928c19e1086e2f1e90d05931437ab6f1e4cfdc8 (diff)
[LLC]: Fix the accept path
Borrowing the structure of TCP/IP for this. On the receive of new connections I was bh_lock_socking the _new_ sock, not the listening one, duh, now it survives the ssh connections storm I've been using to test this specific bug. Also fixes send side skb sock accounting. Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
Diffstat (limited to 'net/llc/llc_if.c')
-rw-r--r--net/llc/llc_if.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/net/llc/llc_if.c b/net/llc/llc_if.c
index 764dbd704051..ba90f7f0801a 100644
--- a/net/llc/llc_if.c
+++ b/net/llc/llc_if.c
@@ -107,6 +107,7 @@ int llc_establish_connection(struct sock *sk, u8 *lmac, u8 *dmac, u8 dsap)
107 ev->type = LLC_CONN_EV_TYPE_PRIM; 107 ev->type = LLC_CONN_EV_TYPE_PRIM;
108 ev->prim = LLC_CONN_PRIM; 108 ev->prim = LLC_CONN_PRIM;
109 ev->prim_type = LLC_PRIM_TYPE_REQ; 109 ev->prim_type = LLC_PRIM_TYPE_REQ;
110 skb_set_owner_w(skb, sk);
110 rc = llc_conn_state_process(sk, skb); 111 rc = llc_conn_state_process(sk, skb);
111 } 112 }
112out_put: 113out_put:
@@ -141,6 +142,7 @@ int llc_send_disc(struct sock *sk)
141 skb = alloc_skb(0, GFP_ATOMIC); 142 skb = alloc_skb(0, GFP_ATOMIC);
142 if (!skb) 143 if (!skb)
143 goto out; 144 goto out;
145 skb_set_owner_w(skb, sk);
144 sk->sk_state = TCP_CLOSING; 146 sk->sk_state = TCP_CLOSING;
145 ev = llc_conn_ev(skb); 147 ev = llc_conn_ev(skb);
146 ev->type = LLC_CONN_EV_TYPE_PRIM; 148 ev->type = LLC_CONN_EV_TYPE_PRIM;