diff options
Diffstat (limited to 'drivers/infiniband/core')
-rw-r--r-- | drivers/infiniband/core/addr.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/infiniband/core/addr.c b/drivers/infiniband/core/addr.c index 8e21d457b899..236ad9a89c0a 100644 --- a/drivers/infiniband/core/addr.c +++ b/drivers/infiniband/core/addr.c | |||
@@ -215,7 +215,7 @@ static int addr4_resolve(struct sockaddr_in *src_in, | |||
215 | 215 | ||
216 | neigh = neigh_lookup(&arp_tbl, &rt->rt_gateway, rt->dst.dev); | 216 | neigh = neigh_lookup(&arp_tbl, &rt->rt_gateway, rt->dst.dev); |
217 | if (!neigh || !(neigh->nud_state & NUD_VALID)) { | 217 | if (!neigh || !(neigh->nud_state & NUD_VALID)) { |
218 | neigh_event_send(rt->dst.neighbour, NULL); | 218 | neigh_event_send(dst_get_neighbour(&rt->dst), NULL); |
219 | ret = -ENODATA; | 219 | ret = -ENODATA; |
220 | if (neigh) | 220 | if (neigh) |
221 | goto release; | 221 | goto release; |
@@ -273,9 +273,10 @@ static int addr6_resolve(struct sockaddr_in6 *src_in, | |||
273 | goto put; | 273 | goto put; |
274 | } | 274 | } |
275 | 275 | ||
276 | neigh = dst->neighbour; | 276 | neigh = dst_get_neighbour(dst); |
277 | if (!neigh || !(neigh->nud_state & NUD_VALID)) { | 277 | if (!neigh || !(neigh->nud_state & NUD_VALID)) { |
278 | neigh_event_send(dst->neighbour, NULL); | 278 | if (neigh) |
279 | neigh_event_send(neigh, NULL); | ||
279 | ret = -ENODATA; | 280 | ret = -ENODATA; |
280 | goto put; | 281 | goto put; |
281 | } | 282 | } |