mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-04-15 02:37:34 +07:00
[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>
This commit is contained in:
parent
95ff9f4d3c
commit
5cc29e3bea
@ -986,18 +986,18 @@ int nr_rx_frame(struct sk_buff *skb, struct net_device *dev)
|
|||||||
nr_make->vl = 0;
|
nr_make->vl = 0;
|
||||||
nr_make->state = NR_STATE_3;
|
nr_make->state = NR_STATE_3;
|
||||||
sk_acceptq_added(sk);
|
sk_acceptq_added(sk);
|
||||||
|
|
||||||
nr_insert_socket(make);
|
|
||||||
|
|
||||||
skb_queue_head(&sk->sk_receive_queue, skb);
|
skb_queue_head(&sk->sk_receive_queue, skb);
|
||||||
|
|
||||||
nr_start_heartbeat(make);
|
|
||||||
nr_start_idletimer(make);
|
|
||||||
|
|
||||||
if (!sock_flag(sk, SOCK_DEAD))
|
if (!sock_flag(sk, SOCK_DEAD))
|
||||||
sk->sk_data_ready(sk, skb->len);
|
sk->sk_data_ready(sk, skb->len);
|
||||||
|
|
||||||
bh_unlock_sock(sk);
|
bh_unlock_sock(sk);
|
||||||
|
|
||||||
|
nr_insert_socket(make);
|
||||||
|
|
||||||
|
nr_start_heartbeat(make);
|
||||||
|
nr_start_idletimer(make);
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user