aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/infiniband/core/addr.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/infiniband/core/addr.c b/drivers/infiniband/core/addr.c
index a5ea1bce968..c15fd2ea56c 100644
--- a/drivers/infiniband/core/addr.c
+++ b/drivers/infiniband/core/addr.c
@@ -200,7 +200,7 @@ static int addr4_resolve(struct sockaddr_in *src_in,
200 src_in->sin_family = AF_INET; 200 src_in->sin_family = AF_INET;
201 src_in->sin_addr.s_addr = rt->rt_src; 201 src_in->sin_addr.s_addr = rt->rt_src;
202 202
203 if (rt->idev->dev->flags & IFF_LOOPBACK) { 203 if (rt->dst.dev->flags & IFF_LOOPBACK) {
204 ret = rdma_translate_ip((struct sockaddr *) dst_in, addr); 204 ret = rdma_translate_ip((struct sockaddr *) dst_in, addr);
205 if (!ret) 205 if (!ret)
206 memcpy(addr->dst_dev_addr, addr->src_dev_addr, MAX_ADDR_LEN); 206 memcpy(addr->dst_dev_addr, addr->src_dev_addr, MAX_ADDR_LEN);
@@ -208,12 +208,12 @@ static int addr4_resolve(struct sockaddr_in *src_in,
208 } 208 }
209 209
210 /* If the device does ARP internally, return 'done' */ 210 /* If the device does ARP internally, return 'done' */
211 if (rt->idev->dev->flags & IFF_NOARP) { 211 if (rt->dst.dev->flags & IFF_NOARP) {
212 rdma_copy_addr(addr, rt->idev->dev, NULL); 212 rdma_copy_addr(addr, rt->dst.dev, NULL);
213 goto put; 213 goto put;
214 } 214 }
215 215
216 neigh = neigh_lookup(&arp_tbl, &rt->rt_gateway, rt->idev->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(rt->dst.neighbour, NULL);
219 ret = -ENODATA; 219 ret = -ENODATA;