rc80211-pid: fix sta_info refcounting
authorStefano Brivio <stefano.brivio@polimi.it>
Sun, 23 Dec 2007 03:43:57 +0000 (04:43 +0100)
committerDavid S. Miller <davem@davemloft.net>
Mon, 28 Jan 2008 23:00:53 +0000 (15:00 -0800)
Fix a bug which caused uncorrect refcounting of PHYs in mac80211. Thanks to
Johannes Berg for spotting this out.

Cc: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: Stefano Brivio <stefano.brivio@polimi.it>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/mac80211/rc80211_pid_algo.c

index 3e26280d3142044f5d7e37d08caff4a2999a83db..da3529017da1405bf390cacc12002e3d9e9dc629 100644 (file)
@@ -254,7 +254,7 @@ static void rate_control_pid_tx_status(void *priv, struct net_device *dev,
        /* Ignore all frames that were sent with a different rate than the rate
         * we currently advise mac80211 to use. */
        if (status->control.rate != &local->oper_hw_mode->rates[sta->txrate])
-               return;
+               goto ignore;
 
        spinfo = sta->rate_ctrl_priv;
        spinfo->tx_num_xmit++;
@@ -295,6 +295,7 @@ static void rate_control_pid_tx_status(void *priv, struct net_device *dev,
        if (time_after(jiffies, spinfo->last_sample + period))
                rate_control_pid_sample(pinfo, local, sta);
 
+ignore:
        sta_info_put(sta);
 }