diff options
author | sam <sam@FreeBSD.org> | 2007-10-15 17:39:47 +0000 |
---|---|---|
committer | sam <sam@FreeBSD.org> | 2007-10-15 17:39:47 +0000 |
commit | 4d72e12bc158aaa04ce18468c3c6286e0928dd0e (patch) | |
tree | eec531b0589be78a8bdd5475800a309c4f607b82 /sys/dev/usb | |
parent | 2906dd04e87e8096a2505643089f92266359b10a (diff) | |
download | FreeBSD-src-4d72e12bc158aaa04ce18468c3c6286e0928dd0e.zip FreeBSD-src-4d72e12bc158aaa04ce18468c3c6286e0928dd0e.tar.gz |
fix a bug of RX routines that can't process multi-frame transactions
properly due to the shortage of the RX buffer size. In a case of zyd
devices, up to 3 frames can be combined in an USB transaction. So, RX
buffer should be at least ((MCLBYTES + extra structs) * 3)
Submitted by: Weongyo Jeong <weongyo.jeong@gmail.com>
MFC after: 3 days
Diffstat (limited to 'sys/dev/usb')
-rw-r--r-- | sys/dev/usb/if_zydreg.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/dev/usb/if_zydreg.h b/sys/dev/usb/if_zydreg.h index 05e92f2..1595ba4 100644 --- a/sys/dev/usb/if_zydreg.h +++ b/sys/dev/usb/if_zydreg.h @@ -1083,8 +1083,9 @@ struct zyd_notif_retry { (sizeof(struct zyd_plcphdr) + IEEE80211_MIN_LEN + \ sizeof(struct zyd_rx_stat)) #define ZYD_MIN_RXBUFSZ ZYD_MIN_FRAGSZ -#define ZYX_MAX_RXBUFSZ \ - (sizeof(struct zyd_plcphdr) + MCLBYTES + sizeof(struct zyd_rx_desc)) +#define ZYX_MAX_RXBUFSZ \ + ((sizeof(struct zyd_plcphdr) + MCLBYTES + \ + sizeof(struct zyd_rx_desc)) * 3) #define ZYD_CMD_FLAG_READ (1 << 0) |