aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2016-03-18 12:39:22 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2016-03-18 12:39:22 -0400
commit9ea446352047d8350553250db51da2c73a610688 (patch)
treef75712fb5bfb5d2a83685023b2838f3c9ea40320 /include/linux
parent9dffdb38d864ae89e16ff7b3a09451270736e35b (diff)
parent082eaa50838c6b70a8244f8b01d7ed7d686f84db (diff)
Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma
Pull rdma updates from Doug Ledford: "Initial roundup of 4.6 merge window patches. This is the first of two pull requests. It is the smaller request, but touches for more different things (this is everything but what is in or going into staging). The pull request for the code in staging/rdma is on hold until after we decide what to do on the write/writev API issue and may be partially deferred until 4.7 as a result. Summary: - cxgb4 updates - nes updates - unification of iwarp portmapper code to core - add drain_cq API - various ib_core updates - minor ipoib updates - minor mlx4 updates - more significant mlx5 updates (including a minor merge conflict with net-next tree...merge is simple to resolve and Stephen's resolution was confirmed by Mellanox) - trivial net/9p rdma conversion - ocrdma RoCEv2 update - srpt updates" * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma: (85 commits) iwpm: crash fix for large connections test iw_cxgb3: support for iWARP port mapping iw_cxgb4: remove port mapper related code iw_nes: remove port mapper related code iwcm: common code for port mapper net/9p: convert to new CQ API IB/mlx5: Add support for don't trap rules net/mlx5_core: Introduce forward to next priority action net/mlx5_core: Create anchor of last flow table iser: Accept arbitrary sg lists mapping if the device supports it mlx5: Add arbitrary sg list support IB/core: Add arbitrary sg_list support IB/mlx5: Expose correct max_fast_reg_page_list_len IB/mlx5: Make coding style more consistent IB/mlx5: Convert UMR CQ to new CQ API IB/ocrdma: Skip using unneeded intermediate variable IB/ocrdma: Skip using unneeded intermediate variable IB/ocrdma: Delete unnecessary variable initialisations in 11 functions IB/core: Documentation fix in the MAD header file IB/core: trivial prink cleanup. ...
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/mlx4/device.h3
-rw-r--r--include/linux/mlx5/device.h33
-rw-r--r--include/linux/mlx5/driver.h26
-rw-r--r--include/linux/mlx5/fs.h5
-rw-r--r--include/linux/mlx5/mlx5_ifc.h51
-rw-r--r--include/linux/mlx5/qp.h7
-rw-r--r--include/linux/mlx5/vport.h2
7 files changed, 105 insertions, 22 deletions
diff --git a/include/linux/mlx4/device.h b/include/linux/mlx4/device.h
index a0e8cc8dcc67..8541a913f6a3 100644
--- a/include/linux/mlx4/device.h
+++ b/include/linux/mlx4/device.h
@@ -219,6 +219,7 @@ enum {
219 MLX4_DEV_CAP_FLAG2_UPDATE_QP_SRC_CHECK_LB = 1ULL << 31, 219 MLX4_DEV_CAP_FLAG2_UPDATE_QP_SRC_CHECK_LB = 1ULL << 31,
220 MLX4_DEV_CAP_FLAG2_LB_SRC_CHK = 1ULL << 32, 220 MLX4_DEV_CAP_FLAG2_LB_SRC_CHK = 1ULL << 32,
221 MLX4_DEV_CAP_FLAG2_ROCE_V1_V2 = 1ULL << 33, 221 MLX4_DEV_CAP_FLAG2_ROCE_V1_V2 = 1ULL << 33,
222 MLX4_DEV_CAP_FLAG2_DMFS_UC_MC_SNIFFER = 1ULL << 34,
222}; 223};
223 224
224enum { 225enum {
@@ -1160,6 +1161,8 @@ enum mlx4_net_trans_promisc_mode {
1160 MLX4_FS_REGULAR = 1, 1161 MLX4_FS_REGULAR = 1,
1161 MLX4_FS_ALL_DEFAULT, 1162 MLX4_FS_ALL_DEFAULT,
1162 MLX4_FS_MC_DEFAULT, 1163 MLX4_FS_MC_DEFAULT,
1164 MLX4_FS_MIRROR_RX_PORT,
1165 MLX4_FS_MIRROR_SX_PORT,
1163 MLX4_FS_UC_SNIFFER, 1166 MLX4_FS_UC_SNIFFER,
1164 MLX4_FS_MC_SNIFFER, 1167 MLX4_FS_MC_SNIFFER,
1165 MLX4_FS_MODE_NUM, /* should be last */ 1168 MLX4_FS_MODE_NUM, /* should be last */
diff --git a/include/linux/mlx5/device.h b/include/linux/mlx5/device.h
index 987764afa65c..9566b3b3b2c5 100644
--- a/include/linux/mlx5/device.h
+++ b/include/linux/mlx5/device.h
@@ -105,6 +105,29 @@ __mlx5_mask(typ, fld))
105 ___t; \ 105 ___t; \
106}) 106})
107 107
108/* Big endian getters */
109#define MLX5_GET64_BE(typ, p, fld) (*((__be64 *)(p) +\
110 __mlx5_64_off(typ, fld)))
111
112#define MLX5_GET_BE(type_t, typ, p, fld) ({ \
113 type_t tmp; \
114 switch (sizeof(tmp)) { \
115 case sizeof(u8): \
116 tmp = (__force type_t)MLX5_GET(typ, p, fld); \
117 break; \
118 case sizeof(u16): \
119 tmp = (__force type_t)cpu_to_be16(MLX5_GET(typ, p, fld)); \
120 break; \
121 case sizeof(u32): \
122 tmp = (__force type_t)cpu_to_be32(MLX5_GET(typ, p, fld)); \
123 break; \
124 case sizeof(u64): \
125 tmp = (__force type_t)MLX5_GET64_BE(typ, p, fld); \
126 break; \
127 } \
128 tmp; \
129 })
130
108enum { 131enum {
109 MLX5_MAX_COMMANDS = 32, 132 MLX5_MAX_COMMANDS = 32,
110 MLX5_CMD_DATA_BLOCK_SIZE = 512, 133 MLX5_CMD_DATA_BLOCK_SIZE = 512,
@@ -1284,7 +1307,8 @@ enum {
1284 MLX5_RFC_3635_COUNTERS_GROUP = 0x3, 1307 MLX5_RFC_3635_COUNTERS_GROUP = 0x3,
1285 MLX5_ETHERNET_EXTENDED_COUNTERS_GROUP = 0x5, 1308 MLX5_ETHERNET_EXTENDED_COUNTERS_GROUP = 0x5,
1286 MLX5_PER_PRIORITY_COUNTERS_GROUP = 0x10, 1309 MLX5_PER_PRIORITY_COUNTERS_GROUP = 0x10,
1287 MLX5_PER_TRAFFIC_CLASS_COUNTERS_GROUP = 0x11 1310 MLX5_PER_TRAFFIC_CLASS_COUNTERS_GROUP = 0x11,
1311 MLX5_INFINIBAND_PORT_COUNTERS_GROUP = 0x20,
1288}; 1312};
1289 1313
1290static inline u16 mlx5_to_sw_pkey_sz(int pkey_sz) 1314static inline u16 mlx5_to_sw_pkey_sz(int pkey_sz)
@@ -1294,6 +1318,11 @@ static inline u16 mlx5_to_sw_pkey_sz(int pkey_sz)
1294 return MLX5_MIN_PKEY_TABLE_SIZE << pkey_sz; 1318 return MLX5_MIN_PKEY_TABLE_SIZE << pkey_sz;
1295} 1319}
1296 1320
1297#define MLX5_BY_PASS_NUM_PRIOS 9 1321#define MLX5_BY_PASS_NUM_REGULAR_PRIOS 8
1322#define MLX5_BY_PASS_NUM_DONT_TRAP_PRIOS 8
1323#define MLX5_BY_PASS_NUM_MULTICAST_PRIOS 1
1324#define MLX5_BY_PASS_NUM_PRIOS (MLX5_BY_PASS_NUM_REGULAR_PRIOS +\
1325 MLX5_BY_PASS_NUM_DONT_TRAP_PRIOS +\
1326 MLX5_BY_PASS_NUM_MULTICAST_PRIOS)
1298 1327
1299#endif /* MLX5_DEVICE_H */ 1328#endif /* MLX5_DEVICE_H */
diff --git a/include/linux/mlx5/driver.h b/include/linux/mlx5/driver.h
index 1e3006dcf35d..9108904a6a56 100644
--- a/include/linux/mlx5/driver.h
+++ b/include/linux/mlx5/driver.h
@@ -338,7 +338,7 @@ struct mlx5_core_sig_ctx {
338 u32 sigerr_count; 338 u32 sigerr_count;
339}; 339};
340 340
341struct mlx5_core_mr { 341struct mlx5_core_mkey {
342 u64 iova; 342 u64 iova;
343 u64 size; 343 u64 size;
344 u32 key; 344 u32 key;
@@ -426,7 +426,7 @@ struct mlx5_srq_table {
426 struct radix_tree_root tree; 426 struct radix_tree_root tree;
427}; 427};
428 428
429struct mlx5_mr_table { 429struct mlx5_mkey_table {
430 /* protect radix tree 430 /* protect radix tree
431 */ 431 */
432 rwlock_t lock; 432 rwlock_t lock;
@@ -484,9 +484,9 @@ struct mlx5_priv {
484 struct mlx5_cq_table cq_table; 484 struct mlx5_cq_table cq_table;
485 /* end: cq staff */ 485 /* end: cq staff */
486 486
487 /* start: mr staff */ 487 /* start: mkey staff */
488 struct mlx5_mr_table mr_table; 488 struct mlx5_mkey_table mkey_table;
489 /* end: mr staff */ 489 /* end: mkey staff */
490 490
491 /* start: alloc staff */ 491 /* start: alloc staff */
492 /* protect buffer alocation according to numa node */ 492 /* protect buffer alocation according to numa node */
@@ -739,16 +739,18 @@ int mlx5_core_query_srq(struct mlx5_core_dev *dev, struct mlx5_core_srq *srq,
739 struct mlx5_query_srq_mbox_out *out); 739 struct mlx5_query_srq_mbox_out *out);
740int mlx5_core_arm_srq(struct mlx5_core_dev *dev, struct mlx5_core_srq *srq, 740int mlx5_core_arm_srq(struct mlx5_core_dev *dev, struct mlx5_core_srq *srq,
741 u16 lwm, int is_srq); 741 u16 lwm, int is_srq);
742void mlx5_init_mr_table(struct mlx5_core_dev *dev); 742void mlx5_init_mkey_table(struct mlx5_core_dev *dev);
743void mlx5_cleanup_mr_table(struct mlx5_core_dev *dev); 743void mlx5_cleanup_mkey_table(struct mlx5_core_dev *dev);
744int mlx5_core_create_mkey(struct mlx5_core_dev *dev, struct mlx5_core_mr *mr, 744int mlx5_core_create_mkey(struct mlx5_core_dev *dev,
745 struct mlx5_core_mkey *mkey,
745 struct mlx5_create_mkey_mbox_in *in, int inlen, 746 struct mlx5_create_mkey_mbox_in *in, int inlen,
746 mlx5_cmd_cbk_t callback, void *context, 747 mlx5_cmd_cbk_t callback, void *context,
747 struct mlx5_create_mkey_mbox_out *out); 748 struct mlx5_create_mkey_mbox_out *out);
748int mlx5_core_destroy_mkey(struct mlx5_core_dev *dev, struct mlx5_core_mr *mr); 749int mlx5_core_destroy_mkey(struct mlx5_core_dev *dev,
749int mlx5_core_query_mkey(struct mlx5_core_dev *dev, struct mlx5_core_mr *mr, 750 struct mlx5_core_mkey *mkey);
751int mlx5_core_query_mkey(struct mlx5_core_dev *dev, struct mlx5_core_mkey *mkey,
750 struct mlx5_query_mkey_mbox_out *out, int outlen); 752 struct mlx5_query_mkey_mbox_out *out, int outlen);
751int mlx5_core_dump_fill_mkey(struct mlx5_core_dev *dev, struct mlx5_core_mr *mr, 753int mlx5_core_dump_fill_mkey(struct mlx5_core_dev *dev, struct mlx5_core_mkey *_mkey,
752 u32 *mkey); 754 u32 *mkey);
753int mlx5_core_alloc_pd(struct mlx5_core_dev *dev, u32 *pdn); 755int mlx5_core_alloc_pd(struct mlx5_core_dev *dev, u32 *pdn);
754int mlx5_core_dealloc_pd(struct mlx5_core_dev *dev, u32 pdn); 756int mlx5_core_dealloc_pd(struct mlx5_core_dev *dev, u32 pdn);
@@ -847,6 +849,8 @@ int mlx5_core_destroy_psv(struct mlx5_core_dev *dev, int psv_num);
847void mlx5_core_put_rsc(struct mlx5_core_rsc_common *common); 849void mlx5_core_put_rsc(struct mlx5_core_rsc_common *common);
848int mlx5_query_odp_caps(struct mlx5_core_dev *dev, 850int mlx5_query_odp_caps(struct mlx5_core_dev *dev,
849 struct mlx5_odp_caps *odp_caps); 851 struct mlx5_odp_caps *odp_caps);
852int mlx5_core_query_ib_ppcnt(struct mlx5_core_dev *dev,
853 u8 port_num, void *out, size_t sz);
850 854
851static inline int fw_initializing(struct mlx5_core_dev *dev) 855static inline int fw_initializing(struct mlx5_core_dev *dev)
852{ 856{
diff --git a/include/linux/mlx5/fs.h b/include/linux/mlx5/fs.h
index 8230caa3fb6e..8dec5508d93d 100644
--- a/include/linux/mlx5/fs.h
+++ b/include/linux/mlx5/fs.h
@@ -38,6 +38,10 @@
38 38
39#define MLX5_FS_DEFAULT_FLOW_TAG 0x0 39#define MLX5_FS_DEFAULT_FLOW_TAG 0x0
40 40
41enum {
42 MLX5_FLOW_CONTEXT_ACTION_FWD_NEXT_PRIO = 1 << 16,
43};
44
41#define LEFTOVERS_RULE_NUM 2 45#define LEFTOVERS_RULE_NUM 2
42static inline void build_leftovers_ft_param(int *priority, 46static inline void build_leftovers_ft_param(int *priority,
43 int *n_ent, 47 int *n_ent,
@@ -52,6 +56,7 @@ enum mlx5_flow_namespace_type {
52 MLX5_FLOW_NAMESPACE_BYPASS, 56 MLX5_FLOW_NAMESPACE_BYPASS,
53 MLX5_FLOW_NAMESPACE_KERNEL, 57 MLX5_FLOW_NAMESPACE_KERNEL,
54 MLX5_FLOW_NAMESPACE_LEFTOVERS, 58 MLX5_FLOW_NAMESPACE_LEFTOVERS,
59 MLX5_FLOW_NAMESPACE_ANCHOR,
55 MLX5_FLOW_NAMESPACE_FDB, 60 MLX5_FLOW_NAMESPACE_FDB,
56}; 61};
57 62
diff --git a/include/linux/mlx5/mlx5_ifc.h b/include/linux/mlx5/mlx5_ifc.h
index 58eef02edc7e..9b8a02b7880f 100644
--- a/include/linux/mlx5/mlx5_ifc.h
+++ b/include/linux/mlx5/mlx5_ifc.h
@@ -458,7 +458,8 @@ struct mlx5_ifc_ads_bits {
458}; 458};
459 459
460struct mlx5_ifc_flow_table_nic_cap_bits { 460struct mlx5_ifc_flow_table_nic_cap_bits {
461 u8 reserved_at_0[0x200]; 461 u8 nic_rx_multi_path_tirs[0x1];
462 u8 reserved_at_1[0x1ff];
462 463
463 struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_nic_receive; 464 struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_nic_receive;
464 465
@@ -736,7 +737,9 @@ struct mlx5_ifc_cmd_hca_cap_bits {
736 u8 cqe_version[0x4]; 737 u8 cqe_version[0x4];
737 738
738 u8 compact_address_vector[0x1]; 739 u8 compact_address_vector[0x1];
739 u8 reserved_at_200[0xe]; 740 u8 reserved_at_200[0x3];
741 u8 ipoib_basic_offloads[0x1];
742 u8 reserved_at_204[0xa];
740 u8 drain_sigerr[0x1]; 743 u8 drain_sigerr[0x1];
741 u8 cmdif_checksum[0x2]; 744 u8 cmdif_checksum[0x2];
742 u8 sigerr_cqe[0x1]; 745 u8 sigerr_cqe[0x1];
@@ -767,10 +770,13 @@ struct mlx5_ifc_cmd_hca_cap_bits {
767 u8 cd[0x1]; 770 u8 cd[0x1];
768 u8 reserved_at_22c[0x1]; 771 u8 reserved_at_22c[0x1];
769 u8 apm[0x1]; 772 u8 apm[0x1];
770 u8 reserved_at_22e[0x7]; 773 u8 reserved_at_22e[0x2];
774 u8 imaicl[0x1];
775 u8 reserved_at_231[0x4];
771 u8 qkv[0x1]; 776 u8 qkv[0x1];
772 u8 pkv[0x1]; 777 u8 pkv[0x1];
773 u8 reserved_at_237[0x4]; 778 u8 set_deth_sqpn[0x1];
779 u8 reserved_at_239[0x3];
774 u8 xrc[0x1]; 780 u8 xrc[0x1];
775 u8 ud[0x1]; 781 u8 ud[0x1];
776 u8 uc[0x1]; 782 u8 uc[0x1];
@@ -1208,6 +1214,36 @@ struct mlx5_ifc_phys_layer_cntrs_bits {
1208 u8 reserved_at_640[0x180]; 1214 u8 reserved_at_640[0x180];
1209}; 1215};
1210 1216
1217struct mlx5_ifc_ib_port_cntrs_grp_data_layout_bits {
1218 u8 symbol_error_counter[0x10];
1219
1220 u8 link_error_recovery_counter[0x8];
1221
1222 u8 link_downed_counter[0x8];
1223
1224 u8 port_rcv_errors[0x10];
1225
1226 u8 port_rcv_remote_physical_errors[0x10];
1227
1228 u8 port_rcv_switch_relay_errors[0x10];
1229
1230 u8 port_xmit_discards[0x10];
1231
1232 u8 port_xmit_constraint_errors[0x8];
1233
1234 u8 port_rcv_constraint_errors[0x8];
1235
1236 u8 reserved_at_70[0x8];
1237
1238 u8 link_overrun_errors[0x8];
1239
1240 u8 reserved_at_80[0x10];
1241
1242 u8 vl_15_dropped[0x10];
1243
1244 u8 reserved_at_a0[0xa0];
1245};
1246
1211struct mlx5_ifc_eth_per_traffic_grp_data_layout_bits { 1247struct mlx5_ifc_eth_per_traffic_grp_data_layout_bits {
1212 u8 transmit_queue_high[0x20]; 1248 u8 transmit_queue_high[0x20];
1213 1249
@@ -1780,7 +1816,7 @@ struct mlx5_ifc_qpc_bits {
1780 u8 log_sq_size[0x4]; 1816 u8 log_sq_size[0x4];
1781 u8 reserved_at_55[0x6]; 1817 u8 reserved_at_55[0x6];
1782 u8 rlky[0x1]; 1818 u8 rlky[0x1];
1783 u8 reserved_at_5c[0x4]; 1819 u8 ulp_stateless_offload_mode[0x4];
1784 1820
1785 u8 counter_set_id[0x8]; 1821 u8 counter_set_id[0x8];
1786 u8 uar_page[0x18]; 1822 u8 uar_page[0x18];
@@ -2618,6 +2654,7 @@ union mlx5_ifc_eth_cntrs_grp_data_layout_auto_bits {
2618 struct mlx5_ifc_eth_extended_cntrs_grp_data_layout_bits eth_extended_cntrs_grp_data_layout; 2654 struct mlx5_ifc_eth_extended_cntrs_grp_data_layout_bits eth_extended_cntrs_grp_data_layout;
2619 struct mlx5_ifc_eth_per_prio_grp_data_layout_bits eth_per_prio_grp_data_layout; 2655 struct mlx5_ifc_eth_per_prio_grp_data_layout_bits eth_per_prio_grp_data_layout;
2620 struct mlx5_ifc_eth_per_traffic_grp_data_layout_bits eth_per_traffic_grp_data_layout; 2656 struct mlx5_ifc_eth_per_traffic_grp_data_layout_bits eth_per_traffic_grp_data_layout;
2657 struct mlx5_ifc_ib_port_cntrs_grp_data_layout_bits ib_port_cntrs_grp_data_layout;
2621 struct mlx5_ifc_phys_layer_cntrs_bits phys_layer_cntrs; 2658 struct mlx5_ifc_phys_layer_cntrs_bits phys_layer_cntrs;
2622 u8 reserved_at_0[0x7c0]; 2659 u8 reserved_at_0[0x7c0];
2623}; 2660};
@@ -3126,7 +3163,8 @@ struct mlx5_ifc_query_vport_counter_in_bits {
3126 u8 op_mod[0x10]; 3163 u8 op_mod[0x10];
3127 3164
3128 u8 other_vport[0x1]; 3165 u8 other_vport[0x1];
3129 u8 reserved_at_41[0xf]; 3166 u8 reserved_at_41[0xb];
3167 u8 port_num[0x4];
3130 u8 vport_number[0x10]; 3168 u8 vport_number[0x10];
3131 3169
3132 u8 reserved_at_60[0x60]; 3170 u8 reserved_at_60[0x60];
@@ -6956,6 +6994,7 @@ union mlx5_ifc_ports_control_registers_document_bits {
6956 struct mlx5_ifc_peir_reg_bits peir_reg; 6994 struct mlx5_ifc_peir_reg_bits peir_reg;
6957 struct mlx5_ifc_pelc_reg_bits pelc_reg; 6995 struct mlx5_ifc_pelc_reg_bits pelc_reg;
6958 struct mlx5_ifc_pfcc_reg_bits pfcc_reg; 6996 struct mlx5_ifc_pfcc_reg_bits pfcc_reg;
6997 struct mlx5_ifc_ib_port_cntrs_grp_data_layout_bits ib_port_cntrs_grp_data_layout;
6959 struct mlx5_ifc_phys_layer_cntrs_bits phys_layer_cntrs; 6998 struct mlx5_ifc_phys_layer_cntrs_bits phys_layer_cntrs;
6960 struct mlx5_ifc_pifr_reg_bits pifr_reg; 6999 struct mlx5_ifc_pifr_reg_bits pifr_reg;
6961 struct mlx5_ifc_pipg_reg_bits pipg_reg; 7000 struct mlx5_ifc_pipg_reg_bits pipg_reg;
diff --git a/include/linux/mlx5/qp.h b/include/linux/mlx5/qp.h
index 5b8c89ffaa58..cf031a3f16c5 100644
--- a/include/linux/mlx5/qp.h
+++ b/include/linux/mlx5/qp.h
@@ -499,7 +499,8 @@ struct mlx5_qp_context {
499 u8 reserved2[4]; 499 u8 reserved2[4];
500 __be32 next_send_psn; 500 __be32 next_send_psn;
501 __be32 cqn_send; 501 __be32 cqn_send;
502 u8 reserved3[8]; 502 __be32 deth_sqpn;
503 u8 reserved3[4];
503 __be32 last_acked_psn; 504 __be32 last_acked_psn;
504 __be32 ssn; 505 __be32 ssn;
505 __be32 params2; 506 __be32 params2;
@@ -621,9 +622,9 @@ static inline struct mlx5_core_qp *__mlx5_qp_lookup(struct mlx5_core_dev *dev, u
621 return radix_tree_lookup(&dev->priv.qp_table.tree, qpn); 622 return radix_tree_lookup(&dev->priv.qp_table.tree, qpn);
622} 623}
623 624
624static inline struct mlx5_core_mr *__mlx5_mr_lookup(struct mlx5_core_dev *dev, u32 key) 625static inline struct mlx5_core_mkey *__mlx5_mr_lookup(struct mlx5_core_dev *dev, u32 key)
625{ 626{
626 return radix_tree_lookup(&dev->priv.mr_table.tree, key); 627 return radix_tree_lookup(&dev->priv.mkey_table.tree, key);
627} 628}
628 629
629struct mlx5_page_fault_resume_mbox_in { 630struct mlx5_page_fault_resume_mbox_in {
diff --git a/include/linux/mlx5/vport.h b/include/linux/mlx5/vport.h
index 123771003e68..a9f2bcc98cab 100644
--- a/include/linux/mlx5/vport.h
+++ b/include/linux/mlx5/vport.h
@@ -92,5 +92,7 @@ int mlx5_modify_nic_vport_vlans(struct mlx5_core_dev *dev,
92 92
93int mlx5_nic_vport_enable_roce(struct mlx5_core_dev *mdev); 93int mlx5_nic_vport_enable_roce(struct mlx5_core_dev *mdev);
94int mlx5_nic_vport_disable_roce(struct mlx5_core_dev *mdev); 94int mlx5_nic_vport_disable_roce(struct mlx5_core_dev *mdev);
95int mlx5_core_query_vport_counter(struct mlx5_core_dev *dev, u8 other_vport,
96 u8 port_num, void *out, size_t out_sz);
95 97
96#endif /* __MLX5_VPORT_H__ */ 98#endif /* __MLX5_VPORT_H__ */