summaryrefslogtreecommitdiff
path: root/net/ipv6
diff options
context:
space:
mode:
authorCraig Gallek <kraig@google.com>2016-02-10 16:50:35 (GMT)
committerDavid S. Miller <davem@davemloft.net>2016-02-11 08:54:14 (GMT)
commit086c653f5862591a9cfe2386f5650d03adacc33a (patch)
treec0aba9d55ae1740be1c7fbbbc30f30e68862e071 /net/ipv6
parent30c1de08dda9202699c1ddc7fd658693faf93bf2 (diff)
downloadlinux-086c653f5862591a9cfe2386f5650d03adacc33a.tar.xz
sock: struct proto hash function may error
In order to support fast reuseport lookups in TCP, the hash function defined in struct proto must be capable of returning an error code. This patch changes the function signature of all related hash functions to return an integer and handles or propagates this return value at all call sites. Signed-off-by: Craig Gallek <kraig@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6')
-rw-r--r--net/ipv6/af_inet6.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/net/ipv6/af_inet6.c b/net/ipv6/af_inet6.c
index 9f5137c..b11c37c 100644
--- a/net/ipv6/af_inet6.c
+++ b/net/ipv6/af_inet6.c
@@ -235,7 +235,11 @@ lookup_protocol:
* creation time automatically shares.
*/
inet->inet_sport = htons(inet->inet_num);
- sk->sk_prot->hash(sk);
+ err = sk->sk_prot->hash(sk);
+ if (err) {
+ sk_common_release(sk);
+ goto out;
+ }
}
if (sk->sk_prot->init) {
err = sk->sk_prot->init(sk);