Commit 51e059bd authored by David Miller's avatar David Miller Committed by David S. Miller

cxgb4i: Handle dst_get_neighbour_noref() returning NULL.

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
Acked-by: default avatarRoland Dreier <roland@purestorage.com>
parent a58b61e5
...@@ -1127,6 +1127,7 @@ static int init_act_open(struct cxgbi_sock *csk) ...@@ -1127,6 +1127,7 @@ static int init_act_open(struct cxgbi_sock *csk)
struct net_device *ndev = cdev->ports[csk->port_id]; struct net_device *ndev = cdev->ports[csk->port_id];
struct port_info *pi = netdev_priv(ndev); struct port_info *pi = netdev_priv(ndev);
struct sk_buff *skb = NULL; struct sk_buff *skb = NULL;
struct neighbour *n;
unsigned int step; unsigned int step;
log_debug(1 << CXGBI_DBG_TOE | 1 << CXGBI_DBG_SOCK, log_debug(1 << CXGBI_DBG_TOE | 1 << CXGBI_DBG_SOCK,
...@@ -1141,7 +1142,12 @@ static int init_act_open(struct cxgbi_sock *csk) ...@@ -1141,7 +1142,12 @@ static int init_act_open(struct cxgbi_sock *csk)
cxgbi_sock_set_flag(csk, CTPF_HAS_ATID); cxgbi_sock_set_flag(csk, CTPF_HAS_ATID);
cxgbi_sock_get(csk); cxgbi_sock_get(csk);
csk->l2t = cxgb4_l2t_get(lldi->l2t, dst_get_neighbour_noref(csk->dst), ndev, 0); n = dst_get_neighbour_noref(csk->dst);
if (!n) {
pr_err("%s, can't get neighbour of csk->dst.\n", ndev->name);
goto rel_resource;
}
csk->l2t = cxgb4_l2t_get(lldi->l2t, n, ndev, 0);
if (!csk->l2t) { if (!csk->l2t) {
pr_err("%s, cannot alloc l2t.\n", ndev->name); pr_err("%s, cannot alloc l2t.\n", ndev->name);
goto rel_resource; goto rel_resource;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment