Skip to content

Commit

Permalink
ath9k: move the max rx buffer size check to ath9k_rx_accept()
Browse files Browse the repository at this point in the history
While at it flip the order, seems easier to read and also
add some better description as to why we do this check.

Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
  • Loading branch information
Luis R. Rodriguez authored and John W. Linville committed Nov 11, 2009
1 parent dd84978 commit 2c74aa4
Showing 1 changed file with 7 additions and 4 deletions.
11 changes: 7 additions & 4 deletions drivers/net/wireless/ath/ath9k/recv.c
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,13 @@ static bool ath9k_rx_accept(struct ath_common *common,

if (!rx_stats->rs_datalen)
return false;
/*
* rs_status follows rs_datalen so if rs_datalen is too large
* we can take a hint that hardware corrupted it, so ignore
* those frames.
*/
if (rx_stats->rs_datalen > common->rx_bufsize)
return false;

if (rx_stats->rs_more) {
/*
Expand Down Expand Up @@ -801,10 +808,6 @@ int ath_rx_tasklet(struct ath_softc *sc, int flush)
if (flush)
goto requeue;

/* The status portion of the descriptor could get corrupted. */
if (common->rx_bufsize < rx_stats->rs_datalen)
goto requeue;

if (!ath_rx_prepare(common, hw, skb, rx_stats,
rxs, &decrypt_error))
goto requeue;
Expand Down

0 comments on commit 2c74aa4

Please sign in to comment.