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

Commit 47f7a071 authored by Michael S. Tsirkin's avatar Michael S. Tsirkin Committed by Roland Dreier
Browse files

IPoIB: Make sure path is fully initialized before using it



The SA path record query completion can initialize path->pathrec.dlid
before IPoIB's callback runs and initializes path->ah, so we must test
ah rather than dlid.

Signed-off-by: default avatarMichael S. Tsirkin <mst@mellanox.co.il>
Signed-off-by: default avatarRoland Dreier <rolandd@cisco.com>
parent 2664b250
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -505,7 +505,7 @@ static void neigh_add_path(struct sk_buff *skb, struct net_device *dev)


	list_add_tail(&neigh->list, &path->neigh_list);
	list_add_tail(&neigh->list, &path->neigh_list);


	if (path->pathrec.dlid) {
	if (path->ah) {
		kref_get(&path->ah->ref);
		kref_get(&path->ah->ref);
		neigh->ah = path->ah;
		neigh->ah = path->ah;


@@ -591,7 +591,7 @@ static void unicast_arp_send(struct sk_buff *skb, struct net_device *dev,
		return;
		return;
	}
	}


	if (path->pathrec.dlid) {
	if (path->ah) {
		ipoib_dbg(priv, "Send unicast ARP to %04x\n",
		ipoib_dbg(priv, "Send unicast ARP to %04x\n",
			  be16_to_cpu(path->pathrec.dlid));
			  be16_to_cpu(path->pathrec.dlid));