Skip to content

Commit

Permalink
RDMA/nes: Add missing rcu_read_unlock() in nes_addr_resolve_neigh()
Browse files Browse the repository at this point in the history
Make sure all exit paths from this function unlock everything.

Reported-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Roland Dreier <roland@purestorage.com>
  • Loading branch information
Roland Dreier committed Jan 27, 2012
1 parent 81f99dc commit 7525c85
Showing 1 changed file with 3 additions and 2 deletions.
5 changes: 3 additions & 2 deletions drivers/infiniband/hw/nes/nes_cm.c
Original file line number Diff line number Diff line change
Expand Up @@ -1363,8 +1363,7 @@ static int nes_addr_resolve_neigh(struct nes_vnic *nesvnic, u32 dst_ip, int arpi
if (!memcmp(nesadapter->arp_table[arpindex].mac_addr,
neigh->ha, ETH_ALEN)) {
/* Mac address same as in nes_arp_table */
ip_rt_put(rt);
return rc;
goto out;
}

nes_manage_arp_cache(nesvnic->netdev,
Expand All @@ -1380,6 +1379,8 @@ static int nes_addr_resolve_neigh(struct nes_vnic *nesvnic, u32 dst_ip, int arpi
neigh_event_send(neigh, NULL);
}
}

out:
rcu_read_unlock();
ip_rt_put(rt);
return rc;
Expand Down

0 comments on commit 7525c85

Please sign in to comment.