Commit 727b662c authored by Sylvain Roger Rieunier's avatar Sylvain Roger Rieunier Committed by John W. Linville

ath9k: fix invalid max frame length

According to 802.11n-2012 standard in paragraph PPDU Fromat(20.3.2) HT-mixed
format  Hearder PPDU contains : L_STF, L_LTF, L_SIG, HT_SIG, HT_STF, HT_LTF
they are symbols in the preamble, there are in time unit(us) that's for why
it can't be computed in bytes
Signed-off-by: default avatarSylvain ROGER RIEUNIER <sylvain.roger.rieunier@gmail.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent c8e49556
...@@ -1040,11 +1040,11 @@ static int ath_max_framelen(int usec, int mcs, bool ht40, bool sgi) ...@@ -1040,11 +1040,11 @@ static int ath_max_framelen(int usec, int mcs, bool ht40, bool sgi)
int symbols, bits; int symbols, bits;
int bytes = 0; int bytes = 0;
usec -= L_STF + L_LTF + L_SIG + HT_SIG + HT_STF + HT_LTF(streams);
symbols = sgi ? TIME_SYMBOLS_HALFGI(usec) : TIME_SYMBOLS(usec); symbols = sgi ? TIME_SYMBOLS_HALFGI(usec) : TIME_SYMBOLS(usec);
bits = symbols * bits_per_symbol[mcs % 8][ht40] * streams; bits = symbols * bits_per_symbol[mcs % 8][ht40] * streams;
bits -= OFDM_PLCP_BITS; bits -= OFDM_PLCP_BITS;
bytes = bits / 8; bytes = bits / 8;
bytes -= L_STF + L_LTF + L_SIG + HT_SIG + HT_STF + HT_LTF(streams);
if (bytes > 65532) if (bytes > 65532)
bytes = 65532; bytes = 65532;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment