From f88b31885c4fd1f80bed2c3b3f2eb05f98367f31 Mon Sep 17 00:00:00 2001 From: Navdeep Parhar Date: Tue, 5 Apr 2022 14:54:11 -0700 Subject: [PATCH] cxgbe(4): meminfo should get the TLS region's limits from the hardware. meminfo is meant for debugging and it should read hardware configuration directly when possible instead of relying on values queried from the firmware. Rename the region to "TLSKey region" to match other drivers while here. MFC after: 1 week Sponsored by: Chelsio Communications --- sys/dev/cxgbe/t4_main.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/sys/dev/cxgbe/t4_main.c b/sys/dev/cxgbe/t4_main.c index 898a1d1ca4f..3b6b884f107 100644 --- a/sys/dev/cxgbe/t4_main.c +++ b/sys/dev/cxgbe/t4_main.c @@ -9708,8 +9708,8 @@ sysctl_meminfo(SYSCTL_HANDLER_ARGS) "Tx payload:", "Rx payload:", "LE hash:", "iSCSI region:", "TDDP region:", "TPT region:", "STAG region:", "RQ region:", "RQUDP region:", "PBL region:", "TXPBL region:", - "DBVFIFO region:", "ULPRX state:", "ULPTX state:", - "On-chip queues:", "TLS keys:", + "TLSKey region:", "DBVFIFO region:", "ULPRX state:", + "ULPTX state:", "On-chip queues:", }; struct mem_desc avail[4]; struct mem_desc mem[nitems(region) + 3]; /* up to 3 holes */ @@ -9824,6 +9824,8 @@ sysctl_meminfo(SYSCTL_HANDLER_ARGS) ulp_region(RX_RQUDP); ulp_region(RX_PBL); ulp_region(TX_PBL); + if (sc->cryptocaps & FW_CAPS_CONFIG_TLSKEYS) + ulp_region(RX_TLS_KEY); #undef ulp_region md->base = 0; @@ -9862,13 +9864,6 @@ sysctl_meminfo(SYSCTL_HANDLER_ARGS) md->idx = nitems(region); /* hide it */ md++; - md->base = sc->vres.key.start; - if (sc->vres.key.size) - md->limit = md->base + sc->vres.key.size - 1; - else - md->idx = nitems(region); /* hide it */ - md++; - /* add any address-space holes, there can be up to 3 */ for (n = 0; n < i - 1; n++) if (avail[n].limit < avail[n + 1].base) @@ -9877,6 +9872,7 @@ sysctl_meminfo(SYSCTL_HANDLER_ARGS) (md++)->base = avail[n].limit; n = md - mem; + MPASS(n <= nitems(mem)); qsort(mem, n, sizeof(struct mem_desc), mem_desc_cmp); for (lo = 0; lo < i; lo++)