Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

cxgb4i: Handle dst_get_neighbour_noref() returning NULL.

parent a58b61e5
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -1127,6 +1127,7 @@ static int init_act_open(struct cxgbi_sock *csk)
	struct net_device *ndev = cdev->ports[csk->port_id];
	struct port_info *pi = netdev_priv(ndev);
	struct sk_buff *skb = NULL;
	struct neighbour *n;
	unsigned int step;

	log_debug(1 << CXGBI_DBG_TOE | 1 << CXGBI_DBG_SOCK,
@@ -1141,7 +1142,12 @@ static int init_act_open(struct cxgbi_sock *csk)
	cxgbi_sock_set_flag(csk, CTPF_HAS_ATID);
	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) {
		pr_err("%s, cannot alloc l2t.\n", ndev->name);
		goto rel_resource;