summaryrefslogtreecommitdiffstats
path: root/net/phonet/socket.c
diff options
context:
space:
mode:
authorCraig Gallek <kraig@google.com>2016-02-10 11:50:35 -0500
committerDavid S. Miller <davem@davemloft.net>2016-02-11 03:54:14 -0500
commit086c653f5862591a9cfe2386f5650d03adacc33a (patch)
treec0aba9d55ae1740be1c7fbbbc30f30e68862e071 /net/phonet/socket.c
parent30c1de08dda9202699c1ddc7fd658693faf93bf2 (diff)
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/phonet/socket.c')
-rw-r--r--net/phonet/socket.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/net/phonet/socket.c b/net/phonet/socket.c
index d575ef4e9aa6..ffd5f2297584 100644
--- a/net/phonet/socket.c
+++ b/net/phonet/socket.c
@@ -140,13 +140,15 @@ void pn_deliver_sock_broadcast(struct net *net, struct sk_buff *skb)
140 rcu_read_unlock(); 140 rcu_read_unlock();
141} 141}
142 142
143void pn_sock_hash(struct sock *sk) 143int pn_sock_hash(struct sock *sk)
144{ 144{
145 struct hlist_head *hlist = pn_hash_list(pn_sk(sk)->sobject); 145 struct hlist_head *hlist = pn_hash_list(pn_sk(sk)->sobject);
146 146
147 mutex_lock(&pnsocks.lock); 147 mutex_lock(&pnsocks.lock);
148 sk_add_node_rcu(sk, hlist); 148 sk_add_node_rcu(sk, hlist);
149 mutex_unlock(&pnsocks.lock); 149 mutex_unlock(&pnsocks.lock);
150
151 return 0;
150} 152}
151EXPORT_SYMBOL(pn_sock_hash); 153EXPORT_SYMBOL(pn_sock_hash);
152 154
@@ -200,7 +202,7 @@ static int pn_socket_bind(struct socket *sock, struct sockaddr *addr, int len)
200 pn->resource = spn->spn_resource; 202 pn->resource = spn->spn_resource;
201 203
202 /* Enable RX on the socket */ 204 /* Enable RX on the socket */
203 sk->sk_prot->hash(sk); 205 err = sk->sk_prot->hash(sk);
204out_port: 206out_port:
205 mutex_unlock(&port_mutex); 207 mutex_unlock(&port_mutex);
206out: 208out: