mirror of https://gitee.com/openkylin/linux.git
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: Michael S. Tsirkin <mst@mellanox.co.il> Signed-off-by: Roland Dreier <rolandd@cisco.com>
This commit is contained in:
parent
2664b25051
commit
47f7a0714b
|
@ -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);
|
||||
|
||||
if (path->pathrec.dlid) {
|
||||
if (path->ah) {
|
||||
kref_get(&path->ah->ref);
|
||||
neigh->ah = path->ah;
|
||||
|
||||
|
@ -591,7 +591,7 @@ static void unicast_arp_send(struct sk_buff *skb, struct net_device *dev,
|
|||
return;
|
||||
}
|
||||
|
||||
if (path->pathrec.dlid) {
|
||||
if (path->ah) {
|
||||
ipoib_dbg(priv, "Send unicast ARP to %04x\n",
|
||||
be16_to_cpu(path->pathrec.dlid));
|
||||
|
||||
|
|
Loading…
Reference in New Issue