CVSROOT: /cvs Module name: src Changes by: s...@cvs.openbsd.org 2021/03/23 06:03:44
Modified files: sys/net80211 : ieee80211_input.c Log message: Fix a corner case bug in Rx block ack window gap-wait timeout handling. If ieee80211_input_ba_flush() was called when there was nothing to flush, the (already pending) gap wait timeout was re-armed. This is only correct if we flush at least one packet. Otherwise packets that arrive at a constant rate of about 4-5 packets per second would extend the gap-wait timeout until the block ack window fills up. In extreme cases this can result in packets being queued for almost 20s. Fix this by returning immediately from ieee80211_input_ba_flush() if the first packet in the reordering buffer is missing. This prevents the timeout from being re-armed. Patch by Christian Ehrhardt. Tested by me on iwm(4) 7265.