aboutsummaryrefslogtreecommitdiffstats
path: root/net/netrom/af_netrom.c
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2006-07-10 19:23:21 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2006-07-12 16:58:43 -0400
commit5cc29e3bea77092c48e5c71d792c7461e6a6c4cf (patch)
treec72c228a673d61f11e5782d564b912eabda09a64 /net/netrom/af_netrom.c
parent95ff9f4d3cc72b62b76498290d00d129e1e62545 (diff)
[NETROM]: Fix locking order when establishing a NETROM circuit.
When establishing a new circuit in nr_rx_frame the locks are taken in a different order than in the rest of the stack. This should be harmless but triggers lockdep. Either way, reordering the code a little solves the issue. Signed-off-by: Ralf Baechle <ralf@linux-mips.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/netrom/af_netrom.c')
-rw-r--r--net/netrom/af_netrom.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/net/netrom/af_netrom.c b/net/netrom/af_netrom.c
index ecc796878f38..672d5f803f8f 100644
--- a/net/netrom/af_netrom.c
+++ b/net/netrom/af_netrom.c
@@ -986,18 +986,18 @@ int nr_rx_frame(struct sk_buff *skb, struct net_device *dev)
986 nr_make->vl = 0; 986 nr_make->vl = 0;
987 nr_make->state = NR_STATE_3; 987 nr_make->state = NR_STATE_3;
988 sk_acceptq_added(sk); 988 sk_acceptq_added(sk);
989
990 nr_insert_socket(make);
991
992 skb_queue_head(&sk->sk_receive_queue, skb); 989 skb_queue_head(&sk->sk_receive_queue, skb);
993 990
994 nr_start_heartbeat(make);
995 nr_start_idletimer(make);
996
997 if (!sock_flag(sk, SOCK_DEAD)) 991 if (!sock_flag(sk, SOCK_DEAD))
998 sk->sk_data_ready(sk, skb->len); 992 sk->sk_data_ready(sk, skb->len);
999 993
1000 bh_unlock_sock(sk); 994 bh_unlock_sock(sk);
995
996 nr_insert_socket(make);
997
998 nr_start_heartbeat(make);
999 nr_start_idletimer(make);
1000
1001 return 1; 1001 return 1;
1002} 1002}
1003 1003