diff options
author | Damien Bergamini <damien@cvs.openbsd.org> | 2007-08-22 19:50:26 +0000 |
---|---|---|
committer | Damien Bergamini <damien@cvs.openbsd.org> | 2007-08-22 19:50:26 +0000 |
commit | dd654a77e55db513af679bbba472472b1a70b096 (patch) | |
tree | c9f8ff688e9c7177f65961021b52f5c013d175b6 /sys/net80211/ieee80211_input.c | |
parent | 72cafb89b9cca2393b2fb7a479b1f103493f645b (diff) |
when running out of rx buffers, allocate a new mbuf and copy the rx
buffer into it using m_copym2() instead of just dropping the received
frame. otherwise, it may happen that all rx buffers are queued by
tcp_input() waiting for a frame that will never arrive because we are
dropping it. when it happens, rx stop working and it is hard to
recover from this.
the problem is not visible when using WEP because WEP decryption is
currently done by software and that rx buffers are copied into mbufs
by the software decryption code.
while i'm here, increase the number of rx buffers allocated by wpi(4)
from 80 to 96 to limit the number of copies.
problem and solution found by bluhm@ - thanks.
Diffstat (limited to 'sys/net80211/ieee80211_input.c')
0 files changed, 0 insertions, 0 deletions