aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/cnic.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2011-03-12 00:00:52 -0500
committerDavid S. Miller <davem@davemloft.net>2011-03-12 18:08:42 -0500
commit78fbfd8a653ca972afe479517a40661bfff6d8c3 (patch)
tree9dccc5c16bf269d53d8499064ec95a998e84c646 /drivers/net/cnic.c
parent1561747ddf9d28185548687b11aae7074d6129c4 (diff)
ipv4: Create and use route lookup helpers.
The idea here is this minimizes the number of places one has to edit in order to make changes to how flows are defined and used. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/cnic.c')
-rw-r--r--drivers/net/cnic.c16
1 files changed, 5 insertions, 11 deletions
diff --git a/drivers/net/cnic.c b/drivers/net/cnic.c
index 271a1f00c224..65832951fe07 100644
--- a/drivers/net/cnic.c
+++ b/drivers/net/cnic.c
@@ -3407,20 +3407,14 @@ static int cnic_get_v4_route(struct sockaddr_in *dst_addr,
3407 struct dst_entry **dst) 3407 struct dst_entry **dst)
3408{ 3408{
3409#if defined(CONFIG_INET) 3409#if defined(CONFIG_INET)
3410 struct flowi fl;
3411 int err;
3412 struct rtable *rt; 3410 struct rtable *rt;
3413 3411
3414 memset(&fl, 0, sizeof(fl)); 3412 rt = ip_route_output(&init_net, dst_addr->sin_addr.s_addr, 0, 0, 0);
3415 fl.nl_u.ip4_u.daddr = dst_addr->sin_addr.s_addr; 3413 if (!IS_ERR(rt)) {
3416
3417 rt = ip_route_output_key(&init_net, &fl);
3418 err = 0;
3419 if (!IS_ERR(rt))
3420 *dst = &rt->dst; 3414 *dst = &rt->dst;
3421 else 3415 return 0;
3422 err = PTR_ERR(rt); 3416 }
3423 return err; 3417 return PTR_ERR(rt);
3424#else 3418#else
3425 return -ENETUNREACH; 3419 return -ENETUNREACH;
3426#endif 3420#endif