aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/infiniband/core/addr.c7
-rw-r--r--drivers/infiniband/hw/cxgb3/iwch_cm.c3
-rw-r--r--drivers/infiniband/hw/cxgb4/cm.c3
-rw-r--r--drivers/infiniband/hw/nes/nes_cm.c3
-rw-r--r--drivers/net/bonding/bond_main.c6
-rw-r--r--drivers/net/cnic.c7
-rw-r--r--drivers/net/pptp.c8
-rw-r--r--drivers/scsi/cxgbi/libcxgbi.c3
8 files changed, 24 insertions, 16 deletions
diff --git a/drivers/infiniband/core/addr.c b/drivers/infiniband/core/addr.c
index 8aba0ba57de5..2d749937a969 100644
--- a/drivers/infiniband/core/addr.c
+++ b/drivers/infiniband/core/addr.c
@@ -193,10 +193,11 @@ static int addr4_resolve(struct sockaddr_in *src_in,
193 fl.nl_u.ip4_u.saddr = src_ip; 193 fl.nl_u.ip4_u.saddr = src_ip;
194 fl.oif = addr->bound_dev_if; 194 fl.oif = addr->bound_dev_if;
195 195
196 ret = ip_route_output_key(&init_net, &rt, &fl); 196 rt = ip_route_output_key(&init_net, &fl);
197 if (ret) 197 if (IS_ERR(rt)) {
198 ret = PTR_ERR(rt);
198 goto out; 199 goto out;
199 200 }
200 src_in->sin_family = AF_INET; 201 src_in->sin_family = AF_INET;
201 src_in->sin_addr.s_addr = rt->rt_src; 202 src_in->sin_addr.s_addr = rt->rt_src;
202 203
diff --git a/drivers/infiniband/hw/cxgb3/iwch_cm.c b/drivers/infiniband/hw/cxgb3/iwch_cm.c
index e654285aa6ba..e0ccbc53fbcc 100644
--- a/drivers/infiniband/hw/cxgb3/iwch_cm.c
+++ b/drivers/infiniband/hw/cxgb3/iwch_cm.c
@@ -354,7 +354,8 @@ static struct rtable *find_route(struct t3cdev *dev, __be32 local_ip,
354 } 354 }
355 }; 355 };
356 356
357 if (ip_route_output_flow(&init_net, &rt, &fl, NULL)) 357 rt = ip_route_output_flow(&init_net, &fl, NULL);
358 if (IS_ERR(rt))
358 return NULL; 359 return NULL;
359 return rt; 360 return rt;
360} 361}
diff --git a/drivers/infiniband/hw/cxgb4/cm.c b/drivers/infiniband/hw/cxgb4/cm.c
index 7e0484f18db5..77b0eef2aad9 100644
--- a/drivers/infiniband/hw/cxgb4/cm.c
+++ b/drivers/infiniband/hw/cxgb4/cm.c
@@ -331,7 +331,8 @@ static struct rtable *find_route(struct c4iw_dev *dev, __be32 local_ip,
331 } 331 }
332 }; 332 };
333 333
334 if (ip_route_output_flow(&init_net, &rt, &fl, NULL)) 334 rt = ip_route_output_flow(&init_net, &fl, NULL);
335 if (IS_ERR(rt))
335 return NULL; 336 return NULL;
336 return rt; 337 return rt;
337} 338}
diff --git a/drivers/infiniband/hw/nes/nes_cm.c b/drivers/infiniband/hw/nes/nes_cm.c
index ec3aa11c36cb..e81599cb1fe6 100644
--- a/drivers/infiniband/hw/nes/nes_cm.c
+++ b/drivers/infiniband/hw/nes/nes_cm.c
@@ -1112,7 +1112,8 @@ static int nes_addr_resolve_neigh(struct nes_vnic *nesvnic, u32 dst_ip, int arpi
1112 1112
1113 memset(&fl, 0, sizeof fl); 1113 memset(&fl, 0, sizeof fl);
1114 fl.nl_u.ip4_u.daddr = htonl(dst_ip); 1114 fl.nl_u.ip4_u.daddr = htonl(dst_ip);
1115 if (ip_route_output_key(&init_net, &rt, &fl)) { 1115 rt = ip_route_output_key(&init_net, &fl);
1116 if (IS_ERR(rt)) {
1116 printk(KERN_ERR "%s: ip_route_output_key failed for 0x%08X\n", 1117 printk(KERN_ERR "%s: ip_route_output_key failed for 0x%08X\n",
1117 __func__, dst_ip); 1118 __func__, dst_ip);
1118 return rc; 1119 return rc;
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
index 584f97b73060..0592e6da15a6 100644
--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
@@ -2681,7 +2681,7 @@ static void bond_arp_send(struct net_device *slave_dev, int arp_op, __be32 dest_
2681 2681
2682static void bond_arp_send_all(struct bonding *bond, struct slave *slave) 2682static void bond_arp_send_all(struct bonding *bond, struct slave *slave)
2683{ 2683{
2684 int i, vlan_id, rv; 2684 int i, vlan_id;
2685 __be32 *targets = bond->params.arp_targets; 2685 __be32 *targets = bond->params.arp_targets;
2686 struct vlan_entry *vlan; 2686 struct vlan_entry *vlan;
2687 struct net_device *vlan_dev; 2687 struct net_device *vlan_dev;
@@ -2708,8 +2708,8 @@ static void bond_arp_send_all(struct bonding *bond, struct slave *slave)
2708 fl.fl4_dst = targets[i]; 2708 fl.fl4_dst = targets[i];
2709 fl.fl4_tos = RTO_ONLINK; 2709 fl.fl4_tos = RTO_ONLINK;
2710 2710
2711 rv = ip_route_output_key(dev_net(bond->dev), &rt, &fl); 2711 rt = ip_route_output_key(dev_net(bond->dev), &fl);
2712 if (rv) { 2712 if (IS_ERR(rt)) {
2713 if (net_ratelimit()) { 2713 if (net_ratelimit()) {
2714 pr_warning("%s: no route to arp_ip_target %pI4\n", 2714 pr_warning("%s: no route to arp_ip_target %pI4\n",
2715 bond->dev->name, &fl.fl4_dst); 2715 bond->dev->name, &fl.fl4_dst);
diff --git a/drivers/net/cnic.c b/drivers/net/cnic.c
index 5274de3e1bb9..25f08880ae0f 100644
--- a/drivers/net/cnic.c
+++ b/drivers/net/cnic.c
@@ -3397,9 +3397,12 @@ static int cnic_get_v4_route(struct sockaddr_in *dst_addr,
3397 memset(&fl, 0, sizeof(fl)); 3397 memset(&fl, 0, sizeof(fl));
3398 fl.nl_u.ip4_u.daddr = dst_addr->sin_addr.s_addr; 3398 fl.nl_u.ip4_u.daddr = dst_addr->sin_addr.s_addr;
3399 3399
3400 err = ip_route_output_key(&init_net, &rt, &fl); 3400 rt = ip_route_output_key(&init_net, &fl);
3401 if (!err) 3401 err = 0;
3402 if (!IS_ERR(rt))
3402 *dst = &rt->dst; 3403 *dst = &rt->dst;
3404 else
3405 err = PTR_ERR(rt);
3403 return err; 3406 return err;
3404#else 3407#else
3405 return -ENETUNREACH; 3408 return -ENETUNREACH;
diff --git a/drivers/net/pptp.c b/drivers/net/pptp.c
index 164cfad6ce79..1af549c89d51 100644
--- a/drivers/net/pptp.c
+++ b/drivers/net/pptp.c
@@ -175,7 +175,6 @@ static int pptp_xmit(struct ppp_channel *chan, struct sk_buff *skb)
175 struct pptp_opt *opt = &po->proto.pptp; 175 struct pptp_opt *opt = &po->proto.pptp;
176 struct pptp_gre_header *hdr; 176 struct pptp_gre_header *hdr;
177 unsigned int header_len = sizeof(*hdr); 177 unsigned int header_len = sizeof(*hdr);
178 int err = 0;
179 int islcp; 178 int islcp;
180 int len; 179 int len;
181 unsigned char *data; 180 unsigned char *data;
@@ -198,8 +197,8 @@ static int pptp_xmit(struct ppp_channel *chan, struct sk_buff *skb)
198 .saddr = opt->src_addr.sin_addr.s_addr, 197 .saddr = opt->src_addr.sin_addr.s_addr,
199 .tos = RT_TOS(0) } }, 198 .tos = RT_TOS(0) } },
200 .proto = IPPROTO_GRE }; 199 .proto = IPPROTO_GRE };
201 err = ip_route_output_key(&init_net, &rt, &fl); 200 rt = ip_route_output_key(&init_net, &fl);
202 if (err) 201 if (IS_ERR(rt))
203 goto tx_error; 202 goto tx_error;
204 } 203 }
205 tdev = rt->dst.dev; 204 tdev = rt->dst.dev;
@@ -477,7 +476,8 @@ static int pptp_connect(struct socket *sock, struct sockaddr *uservaddr,
477 .tos = RT_CONN_FLAGS(sk) } }, 476 .tos = RT_CONN_FLAGS(sk) } },
478 .proto = IPPROTO_GRE }; 477 .proto = IPPROTO_GRE };
479 security_sk_classify_flow(sk, &fl); 478 security_sk_classify_flow(sk, &fl);
480 if (ip_route_output_key(&init_net, &rt, &fl)) { 479 rt = ip_route_output_key(&init_net, &fl);
480 if (IS_ERR(rt)) {
481 error = -EHOSTUNREACH; 481 error = -EHOSTUNREACH;
482 goto end; 482 goto end;
483 } 483 }
diff --git a/drivers/scsi/cxgbi/libcxgbi.c b/drivers/scsi/cxgbi/libcxgbi.c
index 261aa817bdd5..889199aa1f5b 100644
--- a/drivers/scsi/cxgbi/libcxgbi.c
+++ b/drivers/scsi/cxgbi/libcxgbi.c
@@ -470,7 +470,8 @@ static struct rtable *find_route_ipv4(__be32 saddr, __be32 daddr,
470 } 470 }
471 }; 471 };
472 472
473 if (ip_route_output_flow(&init_net, &rt, &fl, NULL)) 473 rt = ip_route_output_flow(&init_net, &fl, NULL);
474 if (IS_ERR(rt))
474 return NULL; 475 return NULL;
475 476
476 return rt; 477 return rt;