summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorVarun Prakash <varun@chelsio.com>2017-01-03 21:25:48 +0530
committerDavid S. Miller <davem@davemloft.net>2017-01-04 13:25:53 -0500
commita9a8cdb368d99bb655b5cdabea560446db0527cc (patch)
treee17849b4cb87bae42f1592f731e66ee5265cc1ab /drivers
parent63dfb0dac9055145db85ce764355aef2f563739a (diff)
downloadlinux-a9a8cdb368d99bb655b5cdabea560446db0527cc.tar.bz2
libcxgb: fix error check for ip6_route_output()
ip6_route_output() never returns NULL so check dst->error instead of !dst. Signed-off-by: Varun Prakash <varun@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/ethernet/chelsio/libcxgb/libcxgb_cm.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/drivers/net/ethernet/chelsio/libcxgb/libcxgb_cm.c b/drivers/net/ethernet/chelsio/libcxgb/libcxgb_cm.c
index 0f0de5b63622..d04a6c163445 100644
--- a/drivers/net/ethernet/chelsio/libcxgb/libcxgb_cm.c
+++ b/drivers/net/ethernet/chelsio/libcxgb/libcxgb_cm.c
@@ -133,17 +133,15 @@ cxgb_find_route6(struct cxgb4_lld_info *lldi,
if (ipv6_addr_type(&fl6.daddr) & IPV6_ADDR_LINKLOCAL)
fl6.flowi6_oif = sin6_scope_id;
dst = ip6_route_output(&init_net, NULL, &fl6);
- if (!dst)
- goto out;
- if (!cxgb_our_interface(lldi, get_real_dev,
- ip6_dst_idev(dst)->dev) &&
- !(ip6_dst_idev(dst)->dev->flags & IFF_LOOPBACK)) {
+ if (dst->error ||
+ (!cxgb_our_interface(lldi, get_real_dev,
+ ip6_dst_idev(dst)->dev) &&
+ !(ip6_dst_idev(dst)->dev->flags & IFF_LOOPBACK))) {
dst_release(dst);
- dst = NULL;
+ return NULL;
}
}
-out:
return dst;
}
EXPORT_SYMBOL(cxgb_find_route6);