Date: Wed, 3 Jun 2020 22:30:44 +0000 (UTC) From: Adrian Chadd <adrian@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r361778 - head/sys/dev/usb/wlan Message-ID: <202006032230.053MUiiN040059@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: adrian Date: Wed Jun 3 22:30:44 2020 New Revision: 361778 URL: https://svnweb.freebsd.org/changeset/base/361778 Log: [run] Fix up tx/rx frame size. This specifically fixes that TX frames are large enough now to hold a 3900 odd byte AMSDU (the little ones); me flipping it on earlier messed up transmit! Tested: * if_run, STA mode, TX/RX TCP/UDP iperf. TCP is now back to normal and correctly does ~ 3200 byte AMSDU/fast frames (2x1600ish byte MSDUs). Modified: head/sys/dev/usb/wlan/if_run.c head/sys/dev/usb/wlan/if_runvar.h Modified: head/sys/dev/usb/wlan/if_run.c ============================================================================== --- head/sys/dev/usb/wlan/if_run.c Wed Jun 3 22:19:52 2020 (r361777) +++ head/sys/dev/usb/wlan/if_run.c Wed Jun 3 22:30:44 2020 (r361778) @@ -3050,10 +3050,11 @@ run_bulk_rx_callback(struct usb_xfer *xfer, usb_error_ tr_setup: if (sc->rx_m == NULL) { sc->rx_m = m_getjcl(M_NOWAIT, MT_DATA, M_PKTHDR, - MJUMPAGESIZE /* xfer can be bigger than MCLBYTES */); + RUN_MAX_RXSZ); } if (sc->rx_m == NULL) { - RUN_DPRINTF(sc, RUN_DEBUG_RECV | RUN_DEBUG_RECV_DESC, + RUN_DPRINTF(sc, RUN_DEBUG_RECV | + RUN_DEBUG_RECV_DESC | RUN_DEBUG_USB, "could not allocate mbuf - idle with stall\n"); counter_u64_add(ic->ic_ierrors, 1); usbd_xfer_set_stall(xfer); Modified: head/sys/dev/usb/wlan/if_runvar.h ============================================================================== --- head/sys/dev/usb/wlan/if_runvar.h Wed Jun 3 22:19:52 2020 (r361777) +++ head/sys/dev/usb/wlan/if_runvar.h Wed Jun 3 22:30:44 2020 (r361778) @@ -23,14 +23,15 @@ #ifndef _IF_RUNVAR_H_ #define _IF_RUNVAR_H_ +/* Support up to 4KB frames - useful for A-MSDU/FF. */ #define RUN_MAX_RXSZ \ MIN(4096, MJUMPAGESIZE) -/* NB: "11" is the maximum number of padding bytes needed for Tx */ +/* Support up to 8KB frames - useful for A-MSDU/FF. */ #define RUN_MAX_TXSZ \ (sizeof (struct rt2870_txd) + \ sizeof (struct rt2860_txwi) + \ - MCLBYTES + 11) + 8192 + 11) #define RUN_TX_TIMEOUT 5000 /* ms */
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202006032230.053MUiiN040059>