mac80211: mesh hwmp locking fixes
authorJohannes Berg <johannes@sipsolutions.net>
Sat, 23 Feb 2008 14:17:20 +0000 (15:17 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Thu, 6 Mar 2008 20:30:42 +0000 (15:30 -0500)
This fixes missing unlocks noticed by sparse.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
net/mac80211/mesh_hwmp.c

index 9a501aae48eba54ffda44342782164045f9bded9..c2f40ef418cfd42207df28805e9ea41d68080d07 100644 (file)
@@ -264,8 +264,10 @@ static u32 hwmp_route_info_get(struct net_device *dev,
 
        rcu_read_lock();
        sta = sta_info_get(local, mgmt->sa);
-       if (!sta)
+       if (!sta) {
+               rcu_read_unlock();
                return 0;
+       }
 
        last_hop_metric = airtime_link_metric_get(local, sta);
        /* Update and check originator routing info */
@@ -293,6 +295,7 @@ static u32 hwmp_route_info_get(struct net_device *dev,
                break;
        default:
                sta_info_put(sta);
+               rcu_read_unlock();
                return 0;
        }
        new_metric = orig_metric + last_hop_metric;