Commit 13e05aa6 authored by Stefano Brivio's avatar Stefano Brivio Committed by David S. Miller

rc80211-pid: fix sta_info refcounting

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: default avatarStefano Brivio <stefano.brivio@polimi.it>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent fa44327c
...@@ -254,7 +254,7 @@ static void rate_control_pid_tx_status(void *priv, struct net_device *dev, ...@@ -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 /* Ignore all frames that were sent with a different rate than the rate
* we currently advise mac80211 to use. */ * we currently advise mac80211 to use. */
if (status->control.rate != &local->oper_hw_mode->rates[sta->txrate]) if (status->control.rate != &local->oper_hw_mode->rates[sta->txrate])
return; goto ignore;
spinfo = sta->rate_ctrl_priv; spinfo = sta->rate_ctrl_priv;
spinfo->tx_num_xmit++; spinfo->tx_num_xmit++;
...@@ -295,6 +295,7 @@ static void rate_control_pid_tx_status(void *priv, struct net_device *dev, ...@@ -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)) if (time_after(jiffies, spinfo->last_sample + period))
rate_control_pid_sample(pinfo, local, sta); rate_control_pid_sample(pinfo, local, sta);
ignore:
sta_info_put(sta); sta_info_put(sta);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment