Skip to content

Commit da278cb

Browse files
krzyczrleon
authored andcommitted
RDMA/irdma: Add GEN3 HW statistics support
Plug into the unified HW statistics framework by adding a hardware statistics map array for GEN3, defining the HW-specific width and location for each counter in the statistics buffer. Signed-off-by: Krzysztof Czurylo <krzysztof.czurylo@intel.com> Signed-off-by: Tatyana Nikolova <tatyana.e.nikolova@intel.com> Link: https://patch.msgid.link/20250827152545.2056-7-tatyana.e.nikolova@intel.com Tested-by: Jacob Moroni <jmoroni@google.com> Signed-off-by: Leon Romanovsky <leon@kernel.org>
1 parent b800e82 commit da278cb

5 files changed

Lines changed: 166 additions & 61 deletions

File tree

drivers/infiniband/hw/irdma/ctrl.c

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1968,7 +1968,8 @@ int irdma_vsi_stats_init(struct irdma_sc_vsi *vsi,
19681968
(void *)((uintptr_t)stats_buff_mem->va +
19691969
IRDMA_GATHER_STATS_BUF_SIZE);
19701970

1971-
irdma_hw_stats_start_timer(vsi);
1971+
if (vsi->dev->hw_attrs.uk_attrs.hw_rev < IRDMA_GEN_3)
1972+
irdma_hw_stats_start_timer(vsi);
19721973

19731974
/* when stat allocation is not required default to fcn_id. */
19741975
vsi->stats_idx = info->fcn_id;
@@ -2013,7 +2014,9 @@ void irdma_vsi_stats_free(struct irdma_sc_vsi *vsi)
20132014

20142015
if (!vsi->pestat)
20152016
return;
2016-
irdma_hw_stats_stop_timer(vsi);
2017+
2018+
if (dev->hw_attrs.uk_attrs.hw_rev < IRDMA_GEN_3)
2019+
irdma_hw_stats_stop_timer(vsi);
20172020
dma_free_coherent(vsi->pestat->hw->device,
20182021
vsi->pestat->gather_info.stats_buff_mem.size,
20192022
vsi->pestat->gather_info.stats_buff_mem.va,
@@ -5929,14 +5932,26 @@ void irdma_cfg_aeq(struct irdma_sc_dev *dev, u32 idx, bool enable)
59295932
*/
59305933
void sc_vsi_update_stats(struct irdma_sc_vsi *vsi)
59315934
{
5932-
struct irdma_gather_stats *gather_stats;
5933-
struct irdma_gather_stats *last_gather_stats;
5935+
struct irdma_dev_hw_stats *hw_stats = &vsi->pestat->hw_stats;
5936+
struct irdma_gather_stats *gather_stats =
5937+
vsi->pestat->gather_info.gather_stats_va;
5938+
struct irdma_gather_stats *last_gather_stats =
5939+
vsi->pestat->gather_info.last_gather_stats_va;
5940+
const struct irdma_hw_stat_map *map = vsi->dev->hw_stats_map;
5941+
u16 max_stat_idx = vsi->dev->hw_attrs.max_stat_idx;
5942+
u16 i;
5943+
5944+
if (vsi->dev->hw_attrs.uk_attrs.hw_rev >= IRDMA_GEN_3) {
5945+
for (i = 0; i < max_stat_idx; i++) {
5946+
u16 idx = map[i].byteoff / sizeof(u64);
5947+
5948+
hw_stats->stats_val[i] = gather_stats->val[idx];
5949+
}
5950+
return;
5951+
}
59345952

5935-
gather_stats = vsi->pestat->gather_info.gather_stats_va;
5936-
last_gather_stats = vsi->pestat->gather_info.last_gather_stats_va;
5937-
irdma_update_stats(&vsi->pestat->hw_stats, gather_stats,
5938-
last_gather_stats, vsi->dev->hw_stats_map,
5939-
vsi->dev->hw_attrs.max_stat_idx);
5953+
irdma_update_stats(hw_stats, gather_stats, last_gather_stats,
5954+
map, max_stat_idx);
59405955
}
59415956

59425957
/**

drivers/infiniband/hw/irdma/defs.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -415,7 +415,7 @@ enum irdma_cqp_op_type {
415415
#define IRDMA_CQPSQ_STATS_USE_INST BIT_ULL(61)
416416
#define IRDMA_CQPSQ_STATS_OP GENMASK_ULL(37, 32)
417417
#define IRDMA_CQPSQ_STATS_INST_INDEX GENMASK_ULL(6, 0)
418-
#define IRDMA_CQPSQ_STATS_HMC_FCN_INDEX GENMASK_ULL(5, 0)
418+
#define IRDMA_CQPSQ_STATS_HMC_FCN_INDEX GENMASK_ULL(15, 0)
419419
#define IRDMA_CQPSQ_WS_WQEVALID BIT_ULL(63)
420420
#define IRDMA_CQPSQ_WS_NODEOP GENMASK_ULL(55, 52)
421421
#define IRDMA_SD_MAX GENMASK_ULL(15, 0)

drivers/infiniband/hw/irdma/ig3rdma_hw.c

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,70 @@ static const struct irdma_irq_ops ig3rdma_irq_ops = {
4848
.irdma_en_irq = ig3rdma_ena_irq,
4949
};
5050

51+
static const struct irdma_hw_stat_map ig3rdma_hw_stat_map[] = {
52+
[IRDMA_HW_STAT_INDEX_RXVLANERR] = { 0, 0, 0 },
53+
[IRDMA_HW_STAT_INDEX_IP4RXOCTS] = { 8, 0, 0 },
54+
[IRDMA_HW_STAT_INDEX_IP4RXPKTS] = { 16, 0, 0 },
55+
[IRDMA_HW_STAT_INDEX_IP4RXDISCARD] = { 24, 0, 0 },
56+
[IRDMA_HW_STAT_INDEX_IP4RXTRUNC] = { 32, 0, 0 },
57+
[IRDMA_HW_STAT_INDEX_IP4RXFRAGS] = { 40, 0, 0 },
58+
[IRDMA_HW_STAT_INDEX_IP4RXMCOCTS] = { 48, 0, 0 },
59+
[IRDMA_HW_STAT_INDEX_IP4RXMCPKTS] = { 56, 0, 0 },
60+
[IRDMA_HW_STAT_INDEX_IP6RXOCTS] = { 64, 0, 0 },
61+
[IRDMA_HW_STAT_INDEX_IP6RXPKTS] = { 72, 0, 0 },
62+
[IRDMA_HW_STAT_INDEX_IP6RXDISCARD] = { 80, 0, 0 },
63+
[IRDMA_HW_STAT_INDEX_IP6RXTRUNC] = { 88, 0, 0 },
64+
[IRDMA_HW_STAT_INDEX_IP6RXFRAGS] = { 96, 0, 0 },
65+
[IRDMA_HW_STAT_INDEX_IP6RXMCOCTS] = { 104, 0, 0 },
66+
[IRDMA_HW_STAT_INDEX_IP6RXMCPKTS] = { 112, 0, 0 },
67+
[IRDMA_HW_STAT_INDEX_IP4TXOCTS] = { 120, 0, 0 },
68+
[IRDMA_HW_STAT_INDEX_IP4TXPKTS] = { 128, 0, 0 },
69+
[IRDMA_HW_STAT_INDEX_IP4TXFRAGS] = { 136, 0, 0 },
70+
[IRDMA_HW_STAT_INDEX_IP4TXMCOCTS] = { 144, 0, 0 },
71+
[IRDMA_HW_STAT_INDEX_IP4TXMCPKTS] = { 152, 0, 0 },
72+
[IRDMA_HW_STAT_INDEX_IP6TXOCTS] = { 160, 0, 0 },
73+
[IRDMA_HW_STAT_INDEX_IP6TXPKTS] = { 168, 0, 0 },
74+
[IRDMA_HW_STAT_INDEX_IP6TXFRAGS] = { 176, 0, 0 },
75+
[IRDMA_HW_STAT_INDEX_IP6TXMCOCTS] = { 184, 0, 0 },
76+
[IRDMA_HW_STAT_INDEX_IP6TXMCPKTS] = { 192, 0, 0 },
77+
[IRDMA_HW_STAT_INDEX_IP4TXNOROUTE] = { 200, 0, 0 },
78+
[IRDMA_HW_STAT_INDEX_IP6TXNOROUTE] = { 208, 0, 0 },
79+
[IRDMA_HW_STAT_INDEX_TCPRTXSEG] = { 216, 0, 0 },
80+
[IRDMA_HW_STAT_INDEX_TCPRXOPTERR] = { 224, 0, 0 },
81+
[IRDMA_HW_STAT_INDEX_TCPRXPROTOERR] = { 232, 0, 0 },
82+
[IRDMA_HW_STAT_INDEX_TCPTXSEG] = { 240, 0, 0 },
83+
[IRDMA_HW_STAT_INDEX_TCPRXSEGS] = { 248, 0, 0 },
84+
[IRDMA_HW_STAT_INDEX_UDPRXPKTS] = { 256, 0, 0 },
85+
[IRDMA_HW_STAT_INDEX_UDPTXPKTS] = { 264, 0, 0 },
86+
[IRDMA_HW_STAT_INDEX_RDMARXWRS] = { 272, 0, 0 },
87+
[IRDMA_HW_STAT_INDEX_RDMARXRDS] = { 280, 0, 0 },
88+
[IRDMA_HW_STAT_INDEX_RDMARXSNDS] = { 288, 0, 0 },
89+
[IRDMA_HW_STAT_INDEX_RDMATXWRS] = { 296, 0, 0 },
90+
[IRDMA_HW_STAT_INDEX_RDMATXRDS] = { 304, 0, 0 },
91+
[IRDMA_HW_STAT_INDEX_RDMATXSNDS] = { 312, 0, 0 },
92+
[IRDMA_HW_STAT_INDEX_RDMAVBND] = { 320, 0, 0 },
93+
[IRDMA_HW_STAT_INDEX_RDMAVINV] = { 328, 0, 0 },
94+
[IRDMA_HW_STAT_INDEX_RXNPECNMARKEDPKTS] = { 336, 0, 0 },
95+
[IRDMA_HW_STAT_INDEX_RXRPCNPHANDLED] = { 344, 0, 0 },
96+
[IRDMA_HW_STAT_INDEX_RXRPCNPIGNORED] = { 352, 0, 0 },
97+
[IRDMA_HW_STAT_INDEX_TXNPCNPSENT] = { 360, 0, 0 },
98+
[IRDMA_HW_STAT_INDEX_RNR_SENT] = { 368, 0, 0 },
99+
[IRDMA_HW_STAT_INDEX_RNR_RCVD] = { 376, 0, 0 },
100+
[IRDMA_HW_STAT_INDEX_RDMAORDLMTCNT] = { 384, 0, 0 },
101+
[IRDMA_HW_STAT_INDEX_RDMAIRDLMTCNT] = { 392, 0, 0 },
102+
[IRDMA_HW_STAT_INDEX_RDMARXATS] = { 408, 0, 0 },
103+
[IRDMA_HW_STAT_INDEX_RDMATXATS] = { 416, 0, 0 },
104+
[IRDMA_HW_STAT_INDEX_NAKSEQERR] = { 424, 0, 0 },
105+
[IRDMA_HW_STAT_INDEX_NAKSEQERR_IMPLIED] = { 432, 0, 0 },
106+
[IRDMA_HW_STAT_INDEX_RTO] = { 440, 0, 0 },
107+
[IRDMA_HW_STAT_INDEX_RXOOOPKTS] = { 448, 0, 0 },
108+
[IRDMA_HW_STAT_INDEX_ICRCERR] = { 456, 0, 0 },
109+
};
110+
51111
void ig3rdma_init_hw(struct irdma_sc_dev *dev)
52112
{
53113
dev->irq_ops = &ig3rdma_irq_ops;
114+
dev->hw_stats_map = ig3rdma_hw_stat_map;
54115

55116
dev->hw_attrs.uk_attrs.hw_rev = IRDMA_GEN_3;
56117
dev->hw_attrs.uk_attrs.max_hw_wq_frags = IG3RDMA_MAX_WQ_FRAGMENT_COUNT;
@@ -70,6 +131,8 @@ void ig3rdma_init_hw(struct irdma_sc_dev *dev)
70131
dev->hw_attrs.page_size_cap = SZ_4K | SZ_2M | SZ_1G;
71132
dev->hw_attrs.max_hw_ird = IG3RDMA_MAX_IRD_SIZE;
72133
dev->hw_attrs.max_hw_ord = IG3RDMA_MAX_ORD_SIZE;
134+
dev->hw_attrs.max_stat_inst = IG3RDMA_MAX_STATS_COUNT;
135+
dev->hw_attrs.max_stat_idx = IRDMA_HW_STAT_INDEX_MAX_GEN_3;
73136
dev->hw_attrs.uk_attrs.min_hw_wq_size = IG3RDMA_MIN_WQ_SIZE;
74137
dev->hw_attrs.uk_attrs.max_hw_srq_quanta = IRDMA_SRQ_MAX_QUANTA;
75138
dev->hw_attrs.uk_attrs.max_hw_inline = IG3RDMA_MAX_INLINE_DATA_SIZE;

drivers/infiniband/hw/irdma/type.h

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,21 @@ enum irdma_hw_stats_index {
156156
IRDMA_HW_STAT_INDEX_RXRPCNPIGNORED = 44,
157157
IRDMA_HW_STAT_INDEX_TXNPCNPSENT = 45,
158158
IRDMA_HW_STAT_INDEX_MAX_GEN_2 = 46,
159+
160+
/* gen3 */
161+
IRDMA_HW_STAT_INDEX_RNR_SENT = 46,
162+
IRDMA_HW_STAT_INDEX_RNR_RCVD = 47,
163+
IRDMA_HW_STAT_INDEX_RDMAORDLMTCNT = 48,
164+
IRDMA_HW_STAT_INDEX_RDMAIRDLMTCNT = 49,
165+
IRDMA_HW_STAT_INDEX_RDMARXATS = 50,
166+
IRDMA_HW_STAT_INDEX_RDMATXATS = 51,
167+
IRDMA_HW_STAT_INDEX_NAKSEQERR = 52,
168+
IRDMA_HW_STAT_INDEX_NAKSEQERR_IMPLIED = 53,
169+
IRDMA_HW_STAT_INDEX_RTO = 54,
170+
IRDMA_HW_STAT_INDEX_RXOOOPKTS = 55,
171+
IRDMA_HW_STAT_INDEX_ICRCERR = 56,
172+
173+
IRDMA_HW_STAT_INDEX_MAX_GEN_3 = 57,
159174
};
160175

161176
enum irdma_feature_type {
@@ -569,7 +584,7 @@ struct irdma_sc_qp {
569584
struct irdma_stats_inst_info {
570585
bool use_hmc_fcn_index;
571586
u8 hmc_fn_id;
572-
u8 stats_idx;
587+
u16 stats_idx;
573588
};
574589

575590
struct irdma_up_info {
@@ -1027,7 +1042,7 @@ struct irdma_qp_host_ctx_info {
10271042
u32 send_cq_num;
10281043
u32 rcv_cq_num;
10291044
u32 rem_endpoint_idx;
1030-
u8 stats_idx;
1045+
u16 stats_idx;
10311046
bool srq_valid:1;
10321047
bool tcp_info_valid:1;
10331048
bool iwarp_info_valid:1;

drivers/infiniband/hw/irdma/verbs.c

Lines changed: 61 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -3923,50 +3923,14 @@ static int irdma_req_notify_cq(struct ib_cq *ibcq,
39233923
return ret;
39243924
}
39253925

3926-
static int irdma_roce_port_immutable(struct ib_device *ibdev, u32 port_num,
3927-
struct ib_port_immutable *immutable)
3928-
{
3929-
struct ib_port_attr attr;
3930-
int err;
3931-
3932-
immutable->core_cap_flags = RDMA_CORE_PORT_IBA_ROCE_UDP_ENCAP;
3933-
err = ib_query_port(ibdev, port_num, &attr);
3934-
if (err)
3935-
return err;
3936-
3937-
immutable->max_mad_size = IB_MGMT_MAD_SIZE;
3938-
immutable->pkey_tbl_len = attr.pkey_tbl_len;
3939-
immutable->gid_tbl_len = attr.gid_tbl_len;
3940-
3941-
return 0;
3942-
}
3943-
3944-
static int irdma_iw_port_immutable(struct ib_device *ibdev, u32 port_num,
3945-
struct ib_port_immutable *immutable)
3946-
{
3947-
struct ib_port_attr attr;
3948-
int err;
3949-
3950-
immutable->core_cap_flags = RDMA_CORE_PORT_IWARP;
3951-
err = ib_query_port(ibdev, port_num, &attr);
3952-
if (err)
3953-
return err;
3954-
immutable->gid_tbl_len = attr.gid_tbl_len;
3955-
3956-
return 0;
3957-
}
3958-
3959-
static const struct rdma_stat_desc irdma_hw_stat_names[] = {
3926+
static const struct rdma_stat_desc irdma_hw_stat_descs[] = {
39603927
/* gen1 - 32-bit */
39613928
[IRDMA_HW_STAT_INDEX_IP4RXDISCARD].name = "ip4InDiscards",
39623929
[IRDMA_HW_STAT_INDEX_IP4RXTRUNC].name = "ip4InTruncatedPkts",
39633930
[IRDMA_HW_STAT_INDEX_IP4TXNOROUTE].name = "ip4OutNoRoutes",
39643931
[IRDMA_HW_STAT_INDEX_IP6RXDISCARD].name = "ip6InDiscards",
39653932
[IRDMA_HW_STAT_INDEX_IP6RXTRUNC].name = "ip6InTruncatedPkts",
39663933
[IRDMA_HW_STAT_INDEX_IP6TXNOROUTE].name = "ip6OutNoRoutes",
3967-
[IRDMA_HW_STAT_INDEX_TCPRTXSEG].name = "tcpRetransSegs",
3968-
[IRDMA_HW_STAT_INDEX_TCPRXOPTERR].name = "tcpInOptErrors",
3969-
[IRDMA_HW_STAT_INDEX_TCPRXPROTOERR].name = "tcpInProtoErrors",
39703934
[IRDMA_HW_STAT_INDEX_RXVLANERR].name = "rxVlanErrors",
39713935
/* gen1 - 64-bit */
39723936
[IRDMA_HW_STAT_INDEX_IP4RXOCTS].name = "ip4InOctets",
@@ -3985,16 +3949,14 @@ static const struct rdma_stat_desc irdma_hw_stat_names[] = {
39853949
[IRDMA_HW_STAT_INDEX_IP6TXPKTS].name = "ip6OutPkts",
39863950
[IRDMA_HW_STAT_INDEX_IP6TXFRAGS].name = "ip6OutSegRqd",
39873951
[IRDMA_HW_STAT_INDEX_IP6TXMCPKTS].name = "ip6OutMcastPkts",
3988-
[IRDMA_HW_STAT_INDEX_TCPRXSEGS].name = "tcpInSegs",
3989-
[IRDMA_HW_STAT_INDEX_TCPTXSEG].name = "tcpOutSegs",
3990-
[IRDMA_HW_STAT_INDEX_RDMARXRDS].name = "iwInRdmaReads",
3991-
[IRDMA_HW_STAT_INDEX_RDMARXSNDS].name = "iwInRdmaSends",
3992-
[IRDMA_HW_STAT_INDEX_RDMARXWRS].name = "iwInRdmaWrites",
3993-
[IRDMA_HW_STAT_INDEX_RDMATXRDS].name = "iwOutRdmaReads",
3994-
[IRDMA_HW_STAT_INDEX_RDMATXSNDS].name = "iwOutRdmaSends",
3995-
[IRDMA_HW_STAT_INDEX_RDMATXWRS].name = "iwOutRdmaWrites",
3996-
[IRDMA_HW_STAT_INDEX_RDMAVBND].name = "iwRdmaBnd",
3997-
[IRDMA_HW_STAT_INDEX_RDMAVINV].name = "iwRdmaInv",
3952+
[IRDMA_HW_STAT_INDEX_RDMARXRDS].name = "InRdmaReads",
3953+
[IRDMA_HW_STAT_INDEX_RDMARXSNDS].name = "InRdmaSends",
3954+
[IRDMA_HW_STAT_INDEX_RDMARXWRS].name = "InRdmaWrites",
3955+
[IRDMA_HW_STAT_INDEX_RDMATXRDS].name = "OutRdmaReads",
3956+
[IRDMA_HW_STAT_INDEX_RDMATXSNDS].name = "OutRdmaSends",
3957+
[IRDMA_HW_STAT_INDEX_RDMATXWRS].name = "OutRdmaWrites",
3958+
[IRDMA_HW_STAT_INDEX_RDMAVBND].name = "RdmaBnd",
3959+
[IRDMA_HW_STAT_INDEX_RDMAVINV].name = "RdmaInv",
39983960

39993961
/* gen2 - 32-bit */
40003962
[IRDMA_HW_STAT_INDEX_RXRPCNPHANDLED].name = "cnpHandled",
@@ -4008,9 +3970,59 @@ static const struct rdma_stat_desc irdma_hw_stat_names[] = {
40083970
[IRDMA_HW_STAT_INDEX_UDPRXPKTS].name = "RxUDP",
40093971
[IRDMA_HW_STAT_INDEX_UDPTXPKTS].name = "TxUDP",
40103972
[IRDMA_HW_STAT_INDEX_RXNPECNMARKEDPKTS].name = "RxECNMrkd",
4011-
3973+
[IRDMA_HW_STAT_INDEX_TCPRTXSEG].name = "RetransSegs",
3974+
[IRDMA_HW_STAT_INDEX_TCPRXOPTERR].name = "InOptErrors",
3975+
[IRDMA_HW_STAT_INDEX_TCPRXPROTOERR].name = "InProtoErrors",
3976+
[IRDMA_HW_STAT_INDEX_TCPRXSEGS].name = "InSegs",
3977+
[IRDMA_HW_STAT_INDEX_TCPTXSEG].name = "OutSegs",
3978+
3979+
/* gen3 */
3980+
[IRDMA_HW_STAT_INDEX_RNR_SENT].name = "RNR sent",
3981+
[IRDMA_HW_STAT_INDEX_RNR_RCVD].name = "RNR received",
3982+
[IRDMA_HW_STAT_INDEX_RDMAORDLMTCNT].name = "ord limit count",
3983+
[IRDMA_HW_STAT_INDEX_RDMAIRDLMTCNT].name = "ird limit count",
3984+
[IRDMA_HW_STAT_INDEX_RDMARXATS].name = "Rx atomics",
3985+
[IRDMA_HW_STAT_INDEX_RDMATXATS].name = "Tx atomics",
3986+
[IRDMA_HW_STAT_INDEX_NAKSEQERR].name = "Nak Sequence Error",
3987+
[IRDMA_HW_STAT_INDEX_NAKSEQERR_IMPLIED].name = "Nak Sequence Error Implied",
3988+
[IRDMA_HW_STAT_INDEX_RTO].name = "RTO",
3989+
[IRDMA_HW_STAT_INDEX_RXOOOPKTS].name = "Rcvd Out of order packets",
3990+
[IRDMA_HW_STAT_INDEX_ICRCERR].name = "CRC errors",
40123991
};
40133992

3993+
static int irdma_roce_port_immutable(struct ib_device *ibdev, u32 port_num,
3994+
struct ib_port_immutable *immutable)
3995+
{
3996+
struct ib_port_attr attr;
3997+
int err;
3998+
3999+
immutable->core_cap_flags = RDMA_CORE_PORT_IBA_ROCE_UDP_ENCAP;
4000+
err = ib_query_port(ibdev, port_num, &attr);
4001+
if (err)
4002+
return err;
4003+
4004+
immutable->max_mad_size = IB_MGMT_MAD_SIZE;
4005+
immutable->pkey_tbl_len = attr.pkey_tbl_len;
4006+
immutable->gid_tbl_len = attr.gid_tbl_len;
4007+
4008+
return 0;
4009+
}
4010+
4011+
static int irdma_iw_port_immutable(struct ib_device *ibdev, u32 port_num,
4012+
struct ib_port_immutable *immutable)
4013+
{
4014+
struct ib_port_attr attr;
4015+
int err;
4016+
4017+
immutable->core_cap_flags = RDMA_CORE_PORT_IWARP;
4018+
err = ib_query_port(ibdev, port_num, &attr);
4019+
if (err)
4020+
return err;
4021+
immutable->gid_tbl_len = attr.gid_tbl_len;
4022+
4023+
return 0;
4024+
}
4025+
40144026
static void irdma_get_dev_fw_str(struct ib_device *dev, char *str)
40154027
{
40164028
struct irdma_device *iwdev = to_iwdev(dev);
@@ -4034,7 +4046,7 @@ static struct rdma_hw_stats *irdma_alloc_hw_port_stats(struct ib_device *ibdev,
40344046
int num_counters = dev->hw_attrs.max_stat_idx;
40354047
unsigned long lifespan = RDMA_HW_STATS_DEFAULT_LIFESPAN;
40364048

4037-
return rdma_alloc_hw_stats_struct(irdma_hw_stat_names, num_counters,
4049+
return rdma_alloc_hw_stats_struct(irdma_hw_stat_descs, num_counters,
40384050
lifespan);
40394051
}
40404052

0 commit comments

Comments
 (0)