Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 24 Jan 2018 20:13:07 +0000 (UTC)
From:      John Baldwin <jhb@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r328358 - head/sys/dev/cxgbe/crypto
Message-ID:  <201801242013.w0OKD7iJ037370@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jhb
Date: Wed Jan 24 20:13:07 2018
New Revision: 328358
URL: https://svnweb.freebsd.org/changeset/base/328358

Log:
  Clamp DSGL entries to a length of 2KB.
  
  This works around an issue in the T6 that can result in DMA engine
  stalls if an error occurs while processing a DSGL entry with a length
  larger than 2KB.
  
  Submitted by:	Harsh Jain @ Chelsio
  Sponsored by:	Chelsio Communications

Modified:
  head/sys/dev/cxgbe/crypto/t4_crypto.c

Modified: head/sys/dev/cxgbe/crypto/t4_crypto.c
==============================================================================
--- head/sys/dev/cxgbe/crypto/t4_crypto.c	Wed Jan 24 20:12:00 2018	(r328357)
+++ head/sys/dev/cxgbe/crypto/t4_crypto.c	Wed Jan 24 20:13:07 2018	(r328358)
@@ -116,11 +116,13 @@ __FBSDID("$FreeBSD$");
 #define	MAX_AAD_LEN		511
 
 /*
- * The documentation for CPL_RX_PHYS_DSGL claims a maximum of 32
- * SG entries.
+ * The documentation for CPL_RX_PHYS_DSGL claims a maximum of 32 SG
+ * entries.  While the CPL includes a 16-bit length field, the T6 can
+ * sometimes hang if an error occurs while processing a request with a
+ * single DSGL entry larger than 2k.
  */
 #define	MAX_RX_PHYS_DSGL_SGE	32
-#define	DSGL_SGE_MAXLEN		65535
+#define	DSGL_SGE_MAXLEN		2048
 
 /*
  * The adapter only supports requests with a total input or output



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201801242013.w0OKD7iJ037370>