Skip to content

Commit

Permalink
ath9k_htc: Validate TX Endpoint ID
Browse files Browse the repository at this point in the history
Check for the endpoint IDs when processing
TX completions and drop the unsupported EPIDs.

We can add other endpoints (UAPSD,..) when support
is added.

Signed-off-by: Sujith <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
  • Loading branch information
Sujith authored and John W. Linville committed Apr 27, 2010
1 parent 5bf1e17 commit d439260
Showing 1 changed file with 12 additions and 3 deletions.
15 changes: 12 additions & 3 deletions drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
Original file line number Diff line number Diff line change
Expand Up @@ -244,16 +244,25 @@ void ath9k_htc_txep(void *drv_priv, struct sk_buff *skb,
enum htc_endpoint_id ep_id, bool txok)
{
struct ath9k_htc_priv *priv = (struct ath9k_htc_priv *) drv_priv;
struct ath_common *common = ath9k_hw_common(priv->ah);
struct ieee80211_tx_info *tx_info;

if (!skb)
return;

if (ep_id == priv->mgmt_ep)
if (ep_id == priv->mgmt_ep) {
skb_pull(skb, sizeof(struct tx_mgmt_hdr));
else
/* TODO: Check for cab/uapsd/data */
} else if ((ep_id == priv->data_bk_ep) ||
(ep_id == priv->data_be_ep) ||
(ep_id == priv->data_vi_ep) ||
(ep_id == priv->data_vo_ep)) {
skb_pull(skb, sizeof(struct tx_frame_hdr));
} else {
ath_print(common, ATH_DBG_FATAL,
"Unsupported TX EPID: %d\n", ep_id);
dev_kfree_skb_any(skb);
return;
}

tx_info = IEEE80211_SKB_CB(skb);

Expand Down

0 comments on commit d439260

Please sign in to comment.