]> git.baikalelectronics.ru Git - kernel.git/commitdiff
net: sock: introduce sk_error_report
authorAlexander Aring <aahringo@redhat.com>
Sun, 27 Jun 2021 22:48:21 +0000 (18:48 -0400)
committerDavid S. Miller <davem@davemloft.net>
Tue, 29 Jun 2021 18:28:21 +0000 (11:28 -0700)
This patch introduces a function wrapper to call the sk_error_report
callback. That will prepare to add additional handling whenever
sk_error_report is called, for example to trace socket errors.

Signed-off-by: Alexander Aring <aahringo@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
42 files changed:
drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_cm.c
drivers/vhost/vsock.c
include/linux/skmsg.h
include/net/sock.h
include/net/tls.h
net/caif/caif_socket.c
net/can/bcm.c
net/can/isotp.c
net/can/j1939/socket.c
net/can/raw.c
net/core/skbuff.c
net/core/sock.c
net/dccp/ipv4.c
net/dccp/ipv6.c
net/dccp/proto.c
net/dccp/timer.c
net/ipv4/ping.c
net/ipv4/raw.c
net/ipv4/tcp.c
net/ipv4/tcp_input.c
net/ipv4/tcp_ipv4.c
net/ipv4/tcp_timer.c
net/ipv4/udp.c
net/ipv6/raw.c
net/ipv6/tcp_ipv6.c
net/ipv6/udp.c
net/kcm/kcmsock.c
net/mptcp/subflow.c
net/netlink/af_netlink.c
net/nfc/rawsock.c
net/packet/af_packet.c
net/qrtr/qrtr.c
net/sctp/input.c
net/sctp/ipv6.c
net/smc/af_smc.c
net/strparser/strparser.c
net/unix/af_unix.c
net/vmw_vsock/af_vsock.c
net/vmw_vsock/virtio_transport.c
net/vmw_vsock/virtio_transport_common.c
net/vmw_vsock/vmci_transport.c
net/xdp/xsk.c

index 19dc7dc054a29075fa42e05a92824e9ced2ee7c2..bcad69c480740b85f9dec0401f8a92b78036dbc8 100644 (file)
@@ -2134,7 +2134,7 @@ static void chtls_abort_req_rss(struct sock *sk, struct sk_buff *skb)
                sk->sk_err = ETIMEDOUT;
 
                if (!sock_flag(sk, SOCK_DEAD))
-                       sk->sk_error_report(sk);
+                       sk_error_report(sk);
 
                if (sk->sk_state == TCP_SYN_RECV && !abort_syn_rcv(sk, skb))
                        return;
index 119f08491d3c90fe42576af6ea69776c92dd9f1d..d38c996b4f46d5edd064ac0e4b4b945ca7db37e1 100644 (file)
@@ -734,7 +734,7 @@ static void vhost_vsock_reset_orphans(struct sock *sk)
        vsk->peer_shutdown = SHUTDOWN_MASK;
        sk->sk_state = SS_UNCONNECTED;
        sk->sk_err = ECONNRESET;
-       sk->sk_error_report(sk);
+       sk_error_report(sk);
 }
 
 static int vhost_vsock_dev_release(struct inode *inode, struct file *file)
index fcaa9a7996c8b82c72c64371f809ad750852db1f..31866031e370becf82d371d0ef6f92347d13e7be 100644 (file)
@@ -347,7 +347,7 @@ static inline void sk_psock_report_error(struct sk_psock *psock, int err)
        struct sock *sk = psock->sk;
 
        sk->sk_err = err;
-       sk->sk_error_report(sk);
+       sk_error_report(sk);
 }
 
 struct sk_psock *sk_psock_init(struct sock *sk, int node);
index ced2fc965ec7ba5c910fc717206483df815f30cc..8bdd80027ffbd1631de16192dcbee5451522336d 100644 (file)
@@ -2281,6 +2281,8 @@ static inline int sock_error(struct sock *sk)
        return -err;
 }
 
+void sk_error_report(struct sock *sk);
+
 static inline unsigned long sock_wspace(struct sock *sk)
 {
        int amt = 0;
index 8d398a5de3ee7d0fabcf2a156706649fdef9a318..be4b3e1cac46221d3f51e0d8708b33fe8af4974f 100644 (file)
@@ -469,7 +469,7 @@ static inline bool tls_is_sk_tx_device_offloaded(struct sock *sk)
 static inline void tls_err_abort(struct sock *sk, int err)
 {
        sk->sk_err = err;
-       sk->sk_error_report(sk);
+       sk_error_report(sk);
 }
 
 static inline bool tls_bigint_increment(unsigned char *seq, int len)
index 3ad0a1df6712834a7f70b21a78173a02c7cba897..647554c9813b98a691bbc976510a0dbabf89d29d 100644 (file)
@@ -243,7 +243,7 @@ static void caif_ctrl_cb(struct cflayer *layr,
                cf_sk->sk.sk_shutdown = SHUTDOWN_MASK;
                cf_sk->sk.sk_err = ECONNRESET;
                set_rx_flow_on(cf_sk);
-               cf_sk->sk.sk_error_report(&cf_sk->sk);
+               sk_error_report(&cf_sk->sk);
                break;
 
        default:
index f3e4d9528fa38787563ddbdce0375e1f417436d8..e15a7dbe5f6c718dcae220d3740d71c4446e6902 100644 (file)
@@ -1417,7 +1417,7 @@ static void bcm_notify(struct bcm_sock *bo, unsigned long msg,
                if (notify_enodev) {
                        sk->sk_err = ENODEV;
                        if (!sock_flag(sk, SOCK_DEAD))
-                               sk->sk_error_report(sk);
+                               sk_error_report(sk);
                }
                break;
 
@@ -1425,7 +1425,7 @@ static void bcm_notify(struct bcm_sock *bo, unsigned long msg,
                if (bo->bound && bo->ifindex == dev->ifindex) {
                        sk->sk_err = ENETDOWN;
                        if (!sock_flag(sk, SOCK_DEAD))
-                               sk->sk_error_report(sk);
+                               sk_error_report(sk);
                }
        }
 }
index bd49299319a13398259936e845e0efdfb28c4e9d..9fd274cf166bb21700657c9ffb8c8b0ae12e6fc9 100644 (file)
@@ -168,7 +168,7 @@ static enum hrtimer_restart isotp_rx_timer_handler(struct hrtimer *hrtimer)
                /* report 'connection timed out' */
                sk->sk_err = ETIMEDOUT;
                if (!sock_flag(sk, SOCK_DEAD))
-                       sk->sk_error_report(sk);
+                       sk_error_report(sk);
 
                /* reset rx state */
                so->rx.state = ISOTP_IDLE;
@@ -339,7 +339,7 @@ static int isotp_rcv_fc(struct isotp_sock *so, struct canfd_frame *cf, int ae)
                /* malformed PDU - report 'not a data message' */
                sk->sk_err = EBADMSG;
                if (!sock_flag(sk, SOCK_DEAD))
-                       sk->sk_error_report(sk);
+                       sk_error_report(sk);
 
                so->tx.state = ISOTP_IDLE;
                wake_up_interruptible(&so->wait);
@@ -392,7 +392,7 @@ static int isotp_rcv_fc(struct isotp_sock *so, struct canfd_frame *cf, int ae)
                /* overflow on receiver side - report 'message too long' */
                sk->sk_err = EMSGSIZE;
                if (!sock_flag(sk, SOCK_DEAD))
-                       sk->sk_error_report(sk);
+                       sk_error_report(sk);
                fallthrough;
 
        default:
@@ -420,7 +420,7 @@ static int isotp_rcv_sf(struct sock *sk, struct canfd_frame *cf, int pcilen,
                /* malformed PDU - report 'not a data message' */
                sk->sk_err = EBADMSG;
                if (!sock_flag(sk, SOCK_DEAD))
-                       sk->sk_error_report(sk);
+                       sk_error_report(sk);
                return 1;
        }
 
@@ -535,7 +535,7 @@ static int isotp_rcv_cf(struct sock *sk, struct canfd_frame *cf, int ae,
                /* wrong sn detected - report 'illegal byte sequence' */
                sk->sk_err = EILSEQ;
                if (!sock_flag(sk, SOCK_DEAD))
-                       sk->sk_error_report(sk);
+                       sk_error_report(sk);
 
                /* reset rx state */
                so->rx.state = ISOTP_IDLE;
@@ -559,7 +559,7 @@ static int isotp_rcv_cf(struct sock *sk, struct canfd_frame *cf, int ae,
                        /* malformed PDU - report 'not a data message' */
                        sk->sk_err = EBADMSG;
                        if (!sock_flag(sk, SOCK_DEAD))
-                               sk->sk_error_report(sk);
+                               sk_error_report(sk);
                        return 1;
                }
 
@@ -758,7 +758,7 @@ static enum hrtimer_restart isotp_tx_timer_handler(struct hrtimer *hrtimer)
                /* report 'communication error on send' */
                sk->sk_err = ECOMM;
                if (!sock_flag(sk, SOCK_DEAD))
-                       sk->sk_error_report(sk);
+                       sk_error_report(sk);
 
                /* reset tx state */
                so->tx.state = ISOTP_IDLE;
@@ -1157,7 +1157,7 @@ out:
        if (notify_enetdown) {
                sk->sk_err = ENETDOWN;
                if (!sock_flag(sk, SOCK_DEAD))
-                       sk->sk_error_report(sk);
+                       sk_error_report(sk);
        }
 
        return err;
@@ -1356,13 +1356,13 @@ static void isotp_notify(struct isotp_sock *so, unsigned long msg,
 
                sk->sk_err = ENODEV;
                if (!sock_flag(sk, SOCK_DEAD))
-                       sk->sk_error_report(sk);
+                       sk_error_report(sk);
                break;
 
        case NETDEV_DOWN:
                sk->sk_err = ENETDOWN;
                if (!sock_flag(sk, SOCK_DEAD))
-                       sk->sk_error_report(sk);
+                       sk_error_report(sk);
                break;
        }
 }
index 56aa66147d5acb2020ef46e2677545c73bb705fb..bf18a32dc6aea8a4ef2e9537eacbffc25b17653d 100644 (file)
@@ -1009,7 +1009,7 @@ void j1939_sk_send_loop_abort(struct sock *sk, int err)
 {
        sk->sk_err = err;
 
-       sk->sk_error_report(sk);
+       sk_error_report(sk);
 }
 
 static int j1939_sk_send_loop(struct j1939_priv *priv,  struct sock *sk,
@@ -1189,7 +1189,7 @@ void j1939_sk_netdev_event_netdown(struct j1939_priv *priv)
        list_for_each_entry(jsk, &priv->j1939_socks, list) {
                jsk->sk.sk_err = error_code;
                if (!sock_flag(&jsk->sk, SOCK_DEAD))
-                       jsk->sk.sk_error_report(&jsk->sk);
+                       sk_error_report(&jsk->sk);
 
                j1939_sk_queue_drop_all(priv, jsk, error_code);
        }
index ac96fc210025310d9ffe401191f463ef4ad54f47..ed4fcb7ab0c32b136383f6b6f74d1cd0b5051892 100644 (file)
@@ -295,13 +295,13 @@ static void raw_notify(struct raw_sock *ro, unsigned long msg,
 
                sk->sk_err = ENODEV;
                if (!sock_flag(sk, SOCK_DEAD))
-                       sk->sk_error_report(sk);
+                       sk_error_report(sk);
                break;
 
        case NETDEV_DOWN:
                sk->sk_err = ENETDOWN;
                if (!sock_flag(sk, SOCK_DEAD))
-                       sk->sk_error_report(sk);
+                       sk_error_report(sk);
                break;
        }
 }
@@ -488,7 +488,7 @@ static int raw_bind(struct socket *sock, struct sockaddr *uaddr, int len)
        if (notify_enetdown) {
                sk->sk_err = ENETDOWN;
                if (!sock_flag(sk, SOCK_DEAD))
-                       sk->sk_error_report(sk);
+                       sk_error_report(sk);
        }
 
        return err;
index 2531ac4ffa696bf90f481341f869241002537c57..12aabcda6db20e73e05ebf66ece7d2e0ea01e1a3 100644 (file)
@@ -1294,7 +1294,7 @@ static void __msg_zerocopy_callback(struct ubuf_info *uarg)
        }
        spin_unlock_irqrestore(&q->lock, flags);
 
-       sk->sk_error_report(sk);
+       sk_error_report(sk);
 
 release:
        consume_skb(skb);
@@ -4685,7 +4685,7 @@ int sock_queue_err_skb(struct sock *sk, struct sk_buff *skb)
 
        skb_queue_tail(&sk->sk_error_queue, skb);
        if (!sock_flag(sk, SOCK_DEAD))
-               sk->sk_error_report(sk);
+               sk_error_report(sk);
        return 0;
 }
 EXPORT_SYMBOL(sock_queue_err_skb);
@@ -4716,7 +4716,7 @@ struct sk_buff *sock_dequeue_err_skb(struct sock *sk)
                sk->sk_err = 0;
 
        if (skb_next)
-               sk->sk_error_report(sk);
+               sk_error_report(sk);
 
        return skb;
 }
index a2337b37eba6df6b2505a2fa5ea7acd2eb820735..c30f8f4cbb229227034e936450a9b62707104884 100644 (file)
@@ -331,6 +331,12 @@ int __sk_backlog_rcv(struct sock *sk, struct sk_buff *skb)
 }
 EXPORT_SYMBOL(__sk_backlog_rcv);
 
+void sk_error_report(struct sock *sk)
+{
+       sk->sk_error_report(sk);
+}
+EXPORT_SYMBOL(sk_error_report);
+
 static int sock_get_timeout(long timeo, void *optval, bool old_timeval)
 {
        struct __kernel_sock_timeval tv;
index f81c1df761d38b0c0677e03bfd10e0da5584998b..0ea29270d7e53730d14ec43654be8f956f891552 100644 (file)
@@ -329,7 +329,7 @@ static int dccp_v4_err(struct sk_buff *skb, u32 info)
                        __DCCP_INC_STATS(DCCP_MIB_ATTEMPTFAILS);
                        sk->sk_err = err;
 
-                       sk->sk_error_report(sk);
+                       sk_error_report(sk);
 
                        dccp_done(sk);
                } else
@@ -356,7 +356,7 @@ static int dccp_v4_err(struct sk_buff *skb, u32 info)
        inet = inet_sk(sk);
        if (!sock_owned_by_user(sk) && inet->recverr) {
                sk->sk_err = err;
-               sk->sk_error_report(sk);
+               sk_error_report(sk);
        } else /* Only an error on timeout */
                sk->sk_err_soft = err;
 out:
index 6f5304db5a67da0e9d625382b623e41c4adc5f14..fa663518fa0e465458b7486ad0cd0672425f08b0 100644 (file)
@@ -172,7 +172,7 @@ static int dccp_v6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
                         * Wake people up to see the error
                         * (see connect in sock.c)
                         */
-                       sk->sk_error_report(sk);
+                       sk_error_report(sk);
                        dccp_done(sk);
                } else
                        sk->sk_err_soft = err;
@@ -181,7 +181,7 @@ static int dccp_v6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
 
        if (!sock_owned_by_user(sk) && np->recverr) {
                sk->sk_err = err;
-               sk->sk_error_report(sk);
+               sk_error_report(sk);
        } else
                sk->sk_err_soft = err;
 
index 6d705d90c6149c4d6043645addd9db94b7d25353..7eb0fb2319407beebee84ef9e022218160dfedc2 100644 (file)
@@ -302,7 +302,7 @@ int dccp_disconnect(struct sock *sk, int flags)
 
        WARN_ON(inet->inet_num && !icsk->icsk_bind_hash);
 
-       sk->sk_error_report(sk);
+       sk_error_report(sk);
        return 0;
 }
 
index db768f223ef781766520a3559b0cc5e6009db42d..27a3b37acd2efea080d1d52e9f4097046e61f05f 100644 (file)
@@ -20,7 +20,7 @@ int  sysctl_dccp_retries2             __read_mostly = TCP_RETR2;
 static void dccp_write_err(struct sock *sk)
 {
        sk->sk_err = sk->sk_err_soft ? : ETIMEDOUT;
-       sk->sk_error_report(sk);
+       sk_error_report(sk);
 
        dccp_send_reset(sk, DCCP_RESET_CODE_ABORTED);
        dccp_done(sk);
index 95a718397fd1285015482fb0450ba1f3d4cee840..1e44a43acfe2dfe57efdc64479c2d18402881d73 100644 (file)
@@ -573,7 +573,7 @@ void ping_err(struct sk_buff *skb, int offset, u32 info)
                }
        }
        sk->sk_err = err;
-       sk->sk_error_report(sk);
+       sk_error_report(sk);
 out:
        sock_put(sk);
 }
index 50a73178d63a841a60bf2fdb441b846df775874a..bb446e60cf58057b448f094b4d6f48d6e91d113c 100644 (file)
@@ -280,7 +280,7 @@ static void raw_err(struct sock *sk, struct sk_buff *skb, u32 info)
 
        if (inet->recverr || harderr) {
                sk->sk_err = err;
-               sk->sk_error_report(sk);
+               sk_error_report(sk);
        }
 }
 
@@ -929,7 +929,7 @@ int raw_abort(struct sock *sk, int err)
        lock_sock(sk);
 
        sk->sk_err = err;
-       sk->sk_error_report(sk);
+       sk_error_report(sk);
        __udp_disconnect(sk, 0);
 
        release_sock(sk);
index 0e3f0e0e5b5176704ea31feb69e5b479c478ee5c..a0a96eb826c45b66a6731b22127ab98dcd59709c 100644 (file)
@@ -3059,7 +3059,7 @@ int tcp_disconnect(struct sock *sk, int flags)
                sk->sk_frag.offset = 0;
        }
 
-       sk->sk_error_report(sk);
+       sk_error_report(sk);
        return 0;
 }
 EXPORT_SYMBOL(tcp_disconnect);
@@ -4448,7 +4448,7 @@ int tcp_abort(struct sock *sk, int err)
                sk->sk_err = err;
                /* This barrier is coupled with smp_rmb() in tcp_poll() */
                smp_wmb();
-               sk->sk_error_report(sk);
+               sk_error_report(sk);
                if (tcp_need_reset(sk->sk_state))
                        tcp_send_active_reset(sk, GFP_ATOMIC);
                tcp_done(sk);
index 7d5e59f688de9ddb1effdedb282118fdb5a7cf25..e6ca5a1f3b595b8cb3ca453a6f432067f2d70254 100644 (file)
@@ -4270,7 +4270,7 @@ void tcp_reset(struct sock *sk, struct sk_buff *skb)
        tcp_done(sk);
 
        if (!sock_flag(sk, SOCK_DEAD))
-               sk->sk_error_report(sk);
+               sk_error_report(sk);
 }
 
 /*
index 6cb8e269f1ab4b7e5e34332546efa1817292aba9..e66ad6bfe8083bfde66d24d9644abcdb649508be 100644 (file)
@@ -585,7 +585,7 @@ int tcp_v4_err(struct sk_buff *skb, u32 info)
                if (!sock_owned_by_user(sk)) {
                        sk->sk_err = err;
 
-                       sk->sk_error_report(sk);
+                       sk_error_report(sk);
 
                        tcp_done(sk);
                } else {
@@ -613,7 +613,7 @@ int tcp_v4_err(struct sk_buff *skb, u32 info)
        inet = inet_sk(sk);
        if (!sock_owned_by_user(sk) && inet->recverr) {
                sk->sk_err = err;
-               sk->sk_error_report(sk);
+               sk_error_report(sk);
        } else  { /* Only an error on timeout */
                sk->sk_err_soft = err;
        }
index 56b9d648f054e296ae89f68be79ac52869e5c367..20cf4a98c69d85d07c884d7bc8316191ff962bd8 100644 (file)
@@ -68,7 +68,7 @@ u32 tcp_clamp_probe0_to_user_timeout(const struct sock *sk, u32 when)
 static void tcp_write_err(struct sock *sk)
 {
        sk->sk_err = sk->sk_err_soft ? : ETIMEDOUT;
-       sk->sk_error_report(sk);
+       sk_error_report(sk);
 
        tcp_write_queue_purge(sk);
        tcp_done(sk);
index 1307ad0d3b9edcda49e59cbc6201e1024f2ceb41..f86ccbf7c135a45a30ffcb3e861dbf4f2cecd939 100644 (file)
@@ -776,7 +776,7 @@ int __udp4_lib_err(struct sk_buff *skb, u32 info, struct udp_table *udptable)
                ip_icmp_error(sk, skb, err, uh->dest, info, (u8 *)(uh+1));
 
        sk->sk_err = err;
-       sk->sk_error_report(sk);
+       sk_error_report(sk);
 out:
        return 0;
 }
@@ -2867,7 +2867,7 @@ int udp_abort(struct sock *sk, int err)
                goto out;
 
        sk->sk_err = err;
-       sk->sk_error_report(sk);
+       sk_error_report(sk);
        __udp_disconnect(sk, 0);
 
 out:
index bf3646b57c686843ed5fa67bea88674c11aafde1..60f1e4f5be5aaeded68aa44b22f6507c7ccdbc01 100644 (file)
@@ -354,7 +354,7 @@ static void rawv6_err(struct sock *sk, struct sk_buff *skb,
 
        if (np->recverr || harderr) {
                sk->sk_err = err;
-               sk->sk_error_report(sk);
+               sk_error_report(sk);
        }
 }
 
index 4d71464094b3111f56854f51d120f596eaf699c3..578ab6305c3f84819bb38054acf1e62c00a9061e 100644 (file)
@@ -467,7 +467,7 @@ static int tcp_v6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
 
                if (!sock_owned_by_user(sk)) {
                        sk->sk_err = err;
-                       sk->sk_error_report(sk);                /* Wake people up to see the error (see connect in sock.c) */
+                       sk_error_report(sk);            /* Wake people up to see the error (see connect in sock.c) */
 
                        tcp_done(sk);
                } else
@@ -486,7 +486,7 @@ static int tcp_v6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
 
        if (!sock_owned_by_user(sk) && np->recverr) {
                sk->sk_err = err;
-               sk->sk_error_report(sk);
+               sk_error_report(sk);
        } else
                sk->sk_err_soft = err;
 
index 3fcd86f4dfdcac895b0bbeb9f511d494df6b3050..368972dbd91961e9915d4f6b1fd9542a8d8ed139 100644 (file)
@@ -610,7 +610,7 @@ int __udp6_lib_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
        }
 
        sk->sk_err = err;
-       sk->sk_error_report(sk);
+       sk_error_report(sk);
 out:
        return 0;
 }
index 6201965bd822f0cef1f8716c26e28e7bc915701d..11a715d76a4f17408cf547cce227a6aa16f41ef8 100644 (file)
@@ -47,7 +47,7 @@ static inline struct kcm_tx_msg *kcm_tx_msg(struct sk_buff *skb)
 static void report_csk_error(struct sock *csk, int err)
 {
        csk->sk_err = EPIPE;
-       csk->sk_error_report(csk);
+       sk_error_report(csk);
 }
 
 static void kcm_abort_tx_psock(struct kcm_psock *psock, int err,
index d55f4ef736a5068244f779a7162ebeec0a287c36..706a26a1b0fe39fe0771ce034ea0470e6f2cae4a 100644 (file)
@@ -1240,7 +1240,7 @@ void __mptcp_error_report(struct sock *sk)
 
                /* This barrier is coupled with smp_rmb() in mptcp_poll() */
                smp_wmb();
-               sk->sk_error_report(sk);
+               sk_error_report(sk);
                break;
        }
 }
index 6133e412b948c4cd3373d249bd5c29f917ba4322..d233ac4a91b677c548e99d9ace5ca28f4220eafd 100644 (file)
@@ -351,7 +351,7 @@ static void netlink_overrun(struct sock *sk)
                if (!test_and_set_bit(NETLINK_S_CONGESTED,
                                      &nlk_sk(sk)->state)) {
                        sk->sk_err = ENOBUFS;
-                       sk->sk_error_report(sk);
+                       sk_error_report(sk);
                }
        }
        atomic_inc(&sk->sk_drops);
@@ -1576,7 +1576,7 @@ static int do_one_set_err(struct sock *sk, struct netlink_set_err_data *p)
        }
 
        sk->sk_err = p->code;
-       sk->sk_error_report(sk);
+       sk_error_report(sk);
 out:
        return ret;
 }
@@ -2012,7 +2012,7 @@ static int netlink_recvmsg(struct socket *sock, struct msghdr *msg, size_t len,
                ret = netlink_dump(sk);
                if (ret) {
                        sk->sk_err = -ret;
-                       sk->sk_error_report(sk);
+                       sk_error_report(sk);
                }
        }
 
@@ -2439,7 +2439,7 @@ void netlink_ack(struct sk_buff *in_skb, struct nlmsghdr *nlh, int err,
        skb = nlmsg_new(payload + tlvlen, GFP_KERNEL);
        if (!skb) {
                NETLINK_CB(in_skb).sk->sk_err = ENOBUFS;
-               NETLINK_CB(in_skb).sk->sk_error_report(NETLINK_CB(in_skb).sk);
+               sk_error_report(NETLINK_CB(in_skb).sk);
                return;
        }
 
index 5f1d438a0a23f15946a6055edad795e5000576b9..5e39640becdbbae5607d76f359a9fbfc01668568 100644 (file)
@@ -49,7 +49,7 @@ static void rawsock_report_error(struct sock *sk, int err)
 
        sk->sk_shutdown = SHUTDOWN_MASK;
        sk->sk_err = -err;
-       sk->sk_error_report(sk);
+       sk_error_report(sk);
 
        rawsock_write_queue_purge(sk);
 }
index 77b0cdab38100b80c7ae37fea2b91f1e23fb1e89..77476184741d971d7e64aabb774d0c1f1225273f 100644 (file)
@@ -3206,7 +3206,7 @@ static int packet_do_bind(struct sock *sk, const char *name, int ifindex,
        } else {
                sk->sk_err = ENETDOWN;
                if (!sock_flag(sk, SOCK_DEAD))
-                       sk->sk_error_report(sk);
+                       sk_error_report(sk);
        }
 
 out_unlock:
@@ -4103,7 +4103,7 @@ static int packet_notifier(struct notifier_block *this,
                                        __unregister_prot_hook(sk, false);
                                        sk->sk_err = ENETDOWN;
                                        if (!sock_flag(sk, SOCK_DEAD))
-                                               sk->sk_error_report(sk);
+                                               sk_error_report(sk);
                                }
                                if (msg == NETDEV_UNREGISTER) {
                                        packet_cached_dev_reset(po);
index f2efaa4225f91e02611576380c0c3b4cac0a624d..e6f4a6202f8212f3b8c83824aa9227e127b3ac75 100644 (file)
@@ -751,7 +751,7 @@ static void qrtr_reset_ports(void)
        xa_for_each_start(&qrtr_ports, index, ipc, 1) {
                sock_hold(&ipc->sk);
                ipc->sk.sk_err = ENETRESET;
-               ipc->sk.sk_error_report(&ipc->sk);
+               sk_error_report(&ipc->sk);
                sock_put(&ipc->sk);
        }
        rcu_read_unlock();
index fe6429cc012f68bb1c4d5984c7d56c0cae262d31..76dcc137f7617aa16519b55ec7d4cbe8ed32c692 100644 (file)
@@ -593,7 +593,7 @@ static void sctp_v4_err_handle(struct sctp_transport *t, struct sk_buff *skb,
        }
        if (!sock_owned_by_user(sk) && inet_sk(sk)->recverr) {
                sk->sk_err = err;
-               sk->sk_error_report(sk);
+               sk_error_report(sk);
        } else {  /* Only an error on timeout */
                sk->sk_err_soft = err;
        }
index 05f81a4d0ee7cb3d2ce82d59e8265e3651554ef6..d041bed8632200eede417772f76acea1a753aa8e 100644 (file)
@@ -152,7 +152,7 @@ static void sctp_v6_err_handle(struct sctp_transport *t, struct sk_buff *skb,
        icmpv6_err_convert(type, code, &err);
        if (!sock_owned_by_user(sk) && np->recverr) {
                sk->sk_err = err;
-               sk->sk_error_report(sk);
+               sk_error_report(sk);
        } else {
                sk->sk_err_soft = err;
        }
index e41fdac606d48b80e46aaa207f39d395cbb5a0e1..898389611ae8179bdb53395b2bf738c88f83bd71 100644 (file)
@@ -2218,7 +2218,7 @@ static int smc_setsockopt(struct socket *sock, int level, int optname,
                                                   optval, optlen);
        if (smc->clcsock->sk->sk_err) {
                sk->sk_err = smc->clcsock->sk->sk_err;
-               sk->sk_error_report(sk);
+               sk_error_report(sk);
        }
 
        if (optlen < sizeof(int))
index b3815c1e8f2ea874ae7c4a5eef3f3f9282c254a0..9c0343568d2a0609cf1077043bf7742dd8d8585d 100644 (file)
@@ -58,7 +58,7 @@ static void strp_abort_strp(struct strparser *strp, int err)
 
                /* Report an error on the lower socket */
                sk->sk_err = -err;
-               sk->sk_error_report(sk);
+               sk_error_report(sk);
        }
 }
 
index 58c2f318b0a869e90136d52b8980d10c7638e0cf..23c92ad15c61e948c89f4896e5775b6ab070cc4c 100644 (file)
@@ -491,7 +491,7 @@ static void unix_dgram_disconnected(struct sock *sk, struct sock *other)
                 */
                if (!sock_flag(other, SOCK_DEAD) && unix_peer(other) == sk) {
                        other->sk_err = ECONNRESET;
-                       other->sk_error_report(other);
+                       sk_error_report(other);
                }
        }
 }
index 21ccf450e249c19b43747f0059842a95b8387eff..9f12da1ff4064de47e0315b3895bcf1a5a384ba8 100644 (file)
@@ -1281,7 +1281,7 @@ static void vsock_connect_timeout(struct work_struct *work)
            (sk->sk_shutdown != SHUTDOWN_MASK)) {
                sk->sk_state = TCP_CLOSE;
                sk->sk_err = ETIMEDOUT;
-               sk->sk_error_report(sk);
+               sk_error_report(sk);
                vsock_transport_cancel_pkt(vsk);
        }
        release_sock(sk);
index ed1664e7bd88840c4e336628efa76048e55f37c0..e0c2c992ad9c5f648aff86a80c7231539a837544 100644 (file)
@@ -360,7 +360,7 @@ static void virtio_vsock_reset_sock(struct sock *sk)
        lock_sock(sk);
        sk->sk_state = TCP_CLOSE;
        sk->sk_err = ECONNRESET;
-       sk->sk_error_report(sk);
+       sk_error_report(sk);
        release_sock(sk);
 }
 
index f014ccfdd9c2a5f679d923f87d0bc8aa21e0b88d..169ba8b72a630fdf832bdb577b57fc2fdc93195d 100644 (file)
@@ -1007,7 +1007,7 @@ destroy:
        virtio_transport_reset(vsk, pkt);
        sk->sk_state = TCP_CLOSE;
        sk->sk_err = skerr;
-       sk->sk_error_report(sk);
+       sk_error_report(sk);
        return err;
 }
 
index e617ed93f06bb2d4a662b5504e28cfebef99f05a..7aef34e32bdf8fc9bfb3344002d06e356726c1ca 100644 (file)
@@ -831,7 +831,7 @@ static void vmci_transport_handle_detach(struct sock *sk)
 
                                sk->sk_state = TCP_CLOSE;
                                sk->sk_err = ECONNRESET;
-                               sk->sk_error_report(sk);
+                               sk_error_report(sk);
                                return;
                        }
                        sk->sk_state = TCP_CLOSE;
@@ -1365,7 +1365,7 @@ destroy:
 
        sk->sk_state = TCP_CLOSE;
        sk->sk_err = skerr;
-       sk->sk_error_report(sk);
+       sk_error_report(sk);
        return err;
 }
 
index 996da915f52088096d41ba9fac11bd60d4438243..d6b500dc420847f107cbd967c15bc3b0107d0b53 100644 (file)
@@ -1313,7 +1313,7 @@ static int xsk_notifier(struct notifier_block *this,
                        if (xs->dev == dev) {
                                sk->sk_err = ENETDOWN;
                                if (!sock_flag(sk, SOCK_DEAD))
-                                       sk->sk_error_report(sk);
+                                       sk_error_report(sk);
 
                                xsk_unbind_dev(xs);