summaryrefslogtreecommitdiffstats
path: root/sys/dev/usb
diff options
context:
space:
mode:
authorsam <sam@FreeBSD.org>2007-10-15 17:39:47 +0000
committersam <sam@FreeBSD.org>2007-10-15 17:39:47 +0000
commit4d72e12bc158aaa04ce18468c3c6286e0928dd0e (patch)
treeeec531b0589be78a8bdd5475800a309c4f607b82 /sys/dev/usb
parent2906dd04e87e8096a2505643089f92266359b10a (diff)
downloadFreeBSD-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.h5
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)
OpenPOWER on IntegriCloud