git: d724218a7492 - stable/13 - cxgbei: Limit T5 transmit data segments to 15k.

From: John Baldwin <jhb_at_FreeBSD.org>
Date: Fri, 29 Oct 2021 23:58:38 UTC
The branch stable/13 has been updated by jhb:

URL: https://cgit.FreeBSD.org/src/commit/?id=d724218a7492126c14fc853424e756b6bc836030

commit d724218a7492126c14fc853424e756b6bc836030
Author:     John Baldwin <jhb@FreeBSD.org>
AuthorDate: 2021-08-30 22:27:08 +0000
Commit:     John Baldwin <jhb@FreeBSD.org>
CommitDate: 2021-10-29 23:32:24 +0000

    cxgbei: Limit T5 transmit data segments to 15k.
    
    This avoids exceeding a limit in the firmware when using ISO with
    jumbo frames.
    
    Reported by:    Jithesh Arakkan @ Chelsio
    Sponsored by:   Chelsio Communications
    
    (cherry picked from commit 64f09f2346650f02b6deccbe05bb02b88fce4a5e)
---
 sys/dev/cxgbe/cxgbei/cxgbei.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/sys/dev/cxgbe/cxgbei/cxgbei.c b/sys/dev/cxgbe/cxgbei/cxgbei.c
index 6af7043460fb..e6ed2671711a 100644
--- a/sys/dev/cxgbe/cxgbei/cxgbei.c
+++ b/sys/dev/cxgbe/cxgbei/cxgbei.c
@@ -132,6 +132,8 @@ read_pdu_limits(struct adapter *sc, uint32_t *max_tx_data_len,
 	rx_len = min(rx_len, 4 * (1U << pr->pr_page_shift[0]));
 
 	if (chip_id(sc) == CHELSIO_T5) {
+		tx_len = min(tx_len, 15360);
+
 		rx_len = rounddown2(rx_len, 512);
 		tx_len = rounddown2(tx_len, 512);
 	}