Skip site navigation (1)Skip section navigation (2)
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>