diff options
Diffstat (limited to 'drivers/net/cnic.c')
-rw-r--r-- | drivers/net/cnic.c | 16 |
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 |