aboutsummaryrefslogtreecommitdiffstats
path: root/net/rxrpc/ar-error.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/rxrpc/ar-error.c')
-rw-r--r--net/rxrpc/ar-error.c14
1 files changed, 1 insertions, 13 deletions
diff --git a/net/rxrpc/ar-error.c b/net/rxrpc/ar-error.c
index db57458c824c..74c0fcd36838 100644
--- a/net/rxrpc/ar-error.c
+++ b/net/rxrpc/ar-error.c
@@ -37,7 +37,7 @@ void rxrpc_UDP_error_report(struct sock *sk)
37 37
38 _enter("%p{%d}", sk, local->debug_id); 38 _enter("%p{%d}", sk, local->debug_id);
39 39
40 skb = skb_dequeue(&sk->sk_error_queue); 40 skb = sock_dequeue_err_skb(sk);
41 if (!skb) { 41 if (!skb) {
42 _leave("UDP socket errqueue empty"); 42 _leave("UDP socket errqueue empty");
43 return; 43 return;
@@ -111,18 +111,6 @@ void rxrpc_UDP_error_report(struct sock *sk)
111 skb_queue_tail(&trans->error_queue, skb); 111 skb_queue_tail(&trans->error_queue, skb);
112 rxrpc_queue_work(&trans->error_handler); 112 rxrpc_queue_work(&trans->error_handler);
113 113
114 /* reset and regenerate socket error */
115 spin_lock_bh(&sk->sk_error_queue.lock);
116 sk->sk_err = 0;
117 skb = skb_peek(&sk->sk_error_queue);
118 if (skb) {
119 sk->sk_err = SKB_EXT_ERR(skb)->ee.ee_errno;
120 spin_unlock_bh(&sk->sk_error_queue.lock);
121 sk->sk_error_report(sk);
122 } else {
123 spin_unlock_bh(&sk->sk_error_queue.lock);
124 }
125
126 _leave(""); 114 _leave("");
127} 115}
128 116