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)
{
if (asc != NULL)
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,
struct ieee80211_supported_band *sband,
struct ieee80211_sta *sta,
struct ath_vap *avp;
struct ath_rate_node *rate_priv;
- DPRINTF(sc, ATH_DBG_RATE, "%s\n", __func__);
-
vif = sc->sc_vaps[0];
ASSERT(vif);
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) {
DPRINTF(sc, ATH_DBG_FATAL,
"%s: Unable to allocate private rc structure\n",
__func__);
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;
}
void *priv_sta)
{
struct ath_rate_node *rate_priv = priv_sta;
- struct ath_softc *sc = priv;
- DPRINTF(sc, ATH_DBG_RATE, "%s", __func__);
- ath_rate_node_free(rate_priv);
+ kfree(rate_priv);
}
static struct rate_control_ops ath_rate_ops = {