On Fri, Nov 13, 2009 at 6:06 PM, Luis R. Rodriguez <mcgrof@xxxxxxxxx> wrote: > On Fri, Nov 13, 2009 at 4:51 PM, Felix Fietkau <nbd@xxxxxxxxxxx> wrote: >> This patch removes the need for separately allocated private tx info >> data in ath9k and brings the driver one small step closer to using the >> mac80211 rate control API properly. >> >> Signed-off-by: Felix Fietkau <nbd@xxxxxxxxxxx> > > Thanks for doing this! Comments below. > >> @@ -1301,23 +1298,30 @@ static void ath_tx_status(void *priv, st > > < ... > > >> hdr = (struct ieee80211_hdr *)skb->data; >> fc = hdr->frame_control; >> - tx_info_priv = ATH_TX_INFO_PRIV(tx_info); >> - final_ts_idx = tx_info_priv->tx.ts_rateindex; >> + for (i = 0; i < IEEE80211_TX_MAX_RATES; i++) { >> + struct ieee80211_tx_rate *rate = &tx_info->status.rates[i]; >> + if (!rate->count) >> + break; >> + >> + final_ts_idx = i; >> + long_retry = rate->count - 1; >> + } >> > > This seems to be the only trade off, doing a loop on tx complete but I > think I'm willing to trade that for the kmalloc()/kfree() removal. > > Reviewed-by: Luis R. Rodriguez <lrodriguez@xxxxxxxxxxx> Oh and can you add an unlikely for this: - else + if (tx_info->driver_flags & ATH_TX_INFO_FRAME_TYPE_INTERNAL) ath9k_tx_status(hw, skb); + else + ieee80211_tx_status(hw, skb); } Thanks! Luis -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html