• Daniel C Halperin's avatar
    iwlwifi: remove incorrect uses of ieee80211_get_tx_rate to prevent TX stall · b58ef214
    Daniel C Halperin authored
    Refactor and correct rate selection for outgoing transmitted
    packets.
    
    First, note that HT rates in the mac80211 rate table do not provide valid
    indices when ieee80211_get_tx_rate is called; the check to see if we could to
    abort a transmission early in iwl_tx_skb() would thus occasionally read invalid
    memory and occasionally stall transmission (if the erroneous byte was 0xff).
    We remove that code; the check wasn't valid anyway.
    
    Second, iwl_tx_cmd_build_rate() also called ieee80211_get_tx_rate to be used
    for sending management packets, which do not use the uCode station table.  This
    patch refactors that function and adds comments to enhance legibility, replaces
    the call to ieee80211_get_tx_rate() with a direct lookup, and adds error
    handling in case the table entry is invalid.
    Signed-off-by: default avatarDaniel C Halperin <daniel.c.halperin@intel.com>
    Signed-off-by: default avatarReinette Chatre <reinette.chatre@intel.com>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    b58ef214
iwl-tx.c 43.3 KB