Commit fe60594a authored by Sujith's avatar Sujith Committed by John W. Linville

ath9k: Simplify RC alloc/free functions

Signed-off-by: default avatarSujith <Sujith.Manoharan@atheros.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 256b7759
...@@ -780,29 +780,6 @@ struct ath_rate_softc *ath_rate_attach(struct ath_hal *ah) ...@@ -780,29 +780,6 @@ struct ath_rate_softc *ath_rate_attach(struct ath_hal *ah)
return asc; return asc;
} }
static struct ath_rate_node *ath_rate_node_alloc(struct ath_vap *avp,
struct ath_rate_softc *rsc,
gfp_t gfp)
{
struct ath_rate_node *anode;
anode = kzalloc(sizeof(struct ath_rate_node), gfp);
if (anode == NULL)
return NULL;
anode->avp = avp;
anode->asc = rsc;
avp->rc_node = anode;
return anode;
}
static void ath_rate_node_free(struct ath_rate_node *anode)
{
if (anode != NULL)
kfree(anode);
}
void ath_rate_detach(struct ath_rate_softc *asc) void ath_rate_detach(struct ath_rate_softc *asc)
{ {
if (asc != NULL) if (asc != NULL)
...@@ -1778,17 +1755,6 @@ static int ath_rate_newassoc(struct ath_softc *sc, ...@@ -1778,17 +1755,6 @@ static int ath_rate_newassoc(struct ath_softc *sc,
return 0; return 0;
} }
/*
* This routine is called to initialize the rate control parameters
* in the SIB. It is called initially during system initialization
* or when a station is associated with the AP.
*/
static void ath_rc_sib_init(struct ath_rate_node *ath_rc_priv)
{
ath_rc_priv->rssi_down_time = jiffies_to_msecs(jiffies);
}
static void ath_setup_rates(struct ath_softc *sc, static void ath_setup_rates(struct ath_softc *sc,
struct ieee80211_supported_band *sband, struct ieee80211_supported_band *sband,
struct ieee80211_sta *sta, struct ieee80211_sta *sta,
...@@ -1964,21 +1930,23 @@ static void *ath_rate_alloc_sta(void *priv, struct ieee80211_sta *sta, gfp_t gfp ...@@ -1964,21 +1930,23 @@ static void *ath_rate_alloc_sta(void *priv, struct ieee80211_sta *sta, gfp_t gfp
struct ath_vap *avp; struct ath_vap *avp;
struct ath_rate_node *rate_priv; struct ath_rate_node *rate_priv;
DPRINTF(sc, ATH_DBG_RATE, "%s\n", __func__);
vif = sc->sc_vaps[0]; vif = sc->sc_vaps[0];
ASSERT(vif); ASSERT(vif);
avp = (void *)vif->drv_priv; avp = (void *)vif->drv_priv;
rate_priv = ath_rate_node_alloc(avp, sc->sc_rc, gfp); rate_priv = kzalloc(sizeof(struct ath_rate_node), gfp);
if (!rate_priv) { if (!rate_priv) {
DPRINTF(sc, ATH_DBG_FATAL, DPRINTF(sc, ATH_DBG_FATAL,
"%s: Unable to allocate private rc structure\n", "%s: Unable to allocate private rc structure\n",
__func__); __func__);
return NULL; return NULL;
} }
ath_rc_sib_init(rate_priv);
rate_priv->avp = avp;
rate_priv->asc = sc->sc_rc;
avp->rc_node = rate_priv;
rate_priv->rssi_down_time = jiffies_to_msecs(jiffies);
return rate_priv; return rate_priv;
} }
...@@ -1987,10 +1955,8 @@ static void ath_rate_free_sta(void *priv, struct ieee80211_sta *sta, ...@@ -1987,10 +1955,8 @@ static void ath_rate_free_sta(void *priv, struct ieee80211_sta *sta,
void *priv_sta) void *priv_sta)
{ {
struct ath_rate_node *rate_priv = priv_sta; struct ath_rate_node *rate_priv = priv_sta;
struct ath_softc *sc = priv;
DPRINTF(sc, ATH_DBG_RATE, "%s", __func__); kfree(rate_priv);
ath_rate_node_free(rate_priv);
} }
static struct rate_control_ops ath_rate_ops = { static struct rate_control_ops ath_rate_ops = {
......
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