mac80211: timeout a single frame in the rx reorder buffer
authorEliad Peller <eliad@wizery.com>
Wed, 1 Feb 2012 16:48:09 +0000 (18:48 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 1 Feb 2012 20:26:00 +0000 (15:26 -0500)
The current code checks for stored_mpdu_num > 1, causing
the reorder_timer to be triggered indefinitely, but the
frame is never timed-out (until the next packet is received)

Signed-off-by: Eliad Peller <eliad@wizery.com>
Cc: <stable@vger.kernel.org>
Acked-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
net/mac80211/rx.c

index 7514091207696b9066e416305da8fb8084f651b0..5a5e504a8ffbc9cbf1d22bf8e35949311990406e 100644 (file)
@@ -611,7 +611,7 @@ static void ieee80211_sta_reorder_release(struct ieee80211_hw *hw,
        index = seq_sub(tid_agg_rx->head_seq_num, tid_agg_rx->ssn) %
                                                tid_agg_rx->buf_size;
        if (!tid_agg_rx->reorder_buf[index] &&
-           tid_agg_rx->stored_mpdu_num > 1) {
+           tid_agg_rx->stored_mpdu_num) {
                /*
                 * No buffers ready to be released, but check whether any
                 * frames in the reorder buffer have timed out.