diff options
author | Dmitry Shmidt <dimitrysh@google.com> | 2016-09-20 13:12:59 -0700 |
---|---|---|
committer | Dmitry Shmidt <dimitrysh@google.com> | 2016-09-20 13:12:59 -0700 |
commit | 321249bb2f9c61fd19adead0de1e058b94108d18 (patch) | |
tree | 58beee90c04911c4bcb08da2b2a76fe7c486f485 /net/ipv4/udp.c | |
parent | a517d900c6b4996dd6a6ba2f600dabe1c4da717a (diff) | |
parent | b7c491d2c40fde253ec06a63b3f93ea60c0467a9 (diff) |
Merge remote-tracking branch 'common/android-4.4' into android-4.4.y-merge
Change-Id: I049d2e9d238a92d56100e8e317be6688497eb501
Diffstat (limited to 'net/ipv4/udp.c')
-rw-r--r-- | net/ipv4/udp.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c index 037a29ab00f0..defc9cad1797 100644 --- a/net/ipv4/udp.c +++ b/net/ipv4/udp.c @@ -2265,6 +2265,20 @@ unsigned int udp_poll(struct file *file, struct socket *sock, poll_table *wait) } EXPORT_SYMBOL(udp_poll); +int udp_abort(struct sock *sk, int err) +{ + lock_sock(sk); + + sk->sk_err = err; + sk->sk_error_report(sk); + udp_disconnect(sk, 0); + + release_sock(sk); + + return 0; +} +EXPORT_SYMBOL_GPL(udp_abort); + struct proto udp_prot = { .name = "UDP", .owner = THIS_MODULE, @@ -2296,6 +2310,7 @@ struct proto udp_prot = { .compat_getsockopt = compat_udp_getsockopt, #endif .clear_sk = sk_prot_clear_portaddr_nulls, + .diag_destroy = udp_abort, }; EXPORT_SYMBOL(udp_prot); |