Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 213971
b: refs/heads/master
c: fc88518
h: refs/heads/master
i:
  213969: 3afca7a
  213967: 49f6034
v: v3
  • Loading branch information
Johannes Berg authored and John W. Linville committed Aug 16, 2010
1 parent a8bd534 commit 4cd1344
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 21 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 86df5f7284ffdea9923153764691e490abf36081
refs/heads/master: fc88518916793af8ad6a02e05ff254d95c36d875
49 changes: 29 additions & 20 deletions trunk/net/mac80211/rx.c
Original file line number Diff line number Diff line change
Expand Up @@ -2615,28 +2615,37 @@ void ieee80211_rx(struct ieee80211_hw *hw, struct sk_buff *skb)
if (WARN_ON(!local->started))
goto drop;

if (status->flag & RX_FLAG_HT) {
if (likely(!(status->flag & RX_FLAG_FAILED_PLCP_CRC))) {
/*
* rate_idx is MCS index, which can be [0-76] as documented on:
*
* http://wireless.kernel.org/en/developers/Documentation/ieee80211/802.11n
*
* Anything else would be some sort of driver or hardware error.
* The driver should catch hardware errors.
* Validate the rate, unless a PLCP error means that
* we probably can't have a valid rate here anyway.
*/
if (WARN((status->rate_idx < 0 ||
status->rate_idx > 76),
"Rate marked as an HT rate but passed "
"status->rate_idx is not "
"an MCS index [0-76]: %d (0x%02x)\n",
status->rate_idx,
status->rate_idx))
goto drop;
} else {
if (WARN_ON(status->rate_idx < 0 ||
status->rate_idx >= sband->n_bitrates))
goto drop;
rate = &sband->bitrates[status->rate_idx];

if (status->flag & RX_FLAG_HT) {
/*
* rate_idx is MCS index, which can be [0-76]
* as documented on:
*
* http://wireless.kernel.org/en/developers/Documentation/ieee80211/802.11n
*
* Anything else would be some sort of driver or
* hardware error. The driver should catch hardware
* errors.
*/
if (WARN((status->rate_idx < 0 ||
status->rate_idx > 76),
"Rate marked as an HT rate but passed "
"status->rate_idx is not "
"an MCS index [0-76]: %d (0x%02x)\n",
status->rate_idx,
status->rate_idx))
goto drop;
} else {
if (WARN_ON(status->rate_idx < 0 ||
status->rate_idx >= sband->n_bitrates))
goto drop;
rate = &sband->bitrates[status->rate_idx];
}
}

/*
Expand Down

0 comments on commit 4cd1344

Please sign in to comment.