Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma
Pull rdma updates from Jason Gunthorpe:
"A quiet cycle after the larger 5.8 effort. Substantially cleanup and
driver work with a few smaller features this time.
- Driver updates for hfi1, rxe, mlx5, hns, qedr, usnic, bnxt_re
- Removal of dead or redundant code across the drivers
- RAW resource tracker dumps to include a device specific data blob
for device objects to aide device debugging
- Further advance the IOCTL interface, remove the ability to turn it
off. Add QUERY_CONTEXT, QUERY_MR, and QUERY_PD commands
- Remove stubs related to devices with no pkey table
- A shared CQ scheme to allow multiple ULPs to share the CQ rings of
a device to give higher performance
- Several more static checker, syzkaller and rare crashers fixed"
* tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma: (121 commits)
RDMA/mlx5: Fix flow destination setting for RDMA TX flow table
RDMA/rxe: Remove pkey table
RDMA/umem: Add a schedule point in ib_umem_get()
RDMA/hns: Fix the unneeded process when getting a general type of CQE error
RDMA/hns: Fix error during modify qp RTS2RTS
RDMA/hns: Delete unnecessary memset when allocating VF resource
RDMA/hns: Remove redundant parameters in set_rc_wqe()
RDMA/hns: Remove support for HIP08_A
RDMA/hns: Refactor hns_roce_v2_set_hem()
RDMA/hns: Remove redundant hardware opcode definitions
RDMA/netlink: Remove CAP_NET_RAW check when dump a raw QP
RDMA/include: Replace license text with SPDX tags
RDMA/rtrs: remove WQ_MEM_RECLAIM for rtrs_wq
RDMA/rtrs-clt: add an additional random 8 seconds before reconnecting
RDMA/cma: Execute rdma_cm destruction from a handler properly
RDMA/cma: Remove unneeded locking for req paths
RDMA/cma: Using the standard locking pattern when delivering the removal event
RDMA/cma: Simplify DEVICE_REMOVAL for internal_id
RDMA/efa: Add EFA 0xefa1 PCI ID
RDMA/efa: User/kernel compatibility handshake mechanism
...
This commit is contained in:
@@ -276,7 +276,9 @@ enum {
|
||||
MLX5_MKEY_MASK_RW = 1ull << 20,
|
||||
MLX5_MKEY_MASK_A = 1ull << 21,
|
||||
MLX5_MKEY_MASK_SMALL_FENCE = 1ull << 23,
|
||||
MLX5_MKEY_MASK_FREE = 1ull << 29,
|
||||
MLX5_MKEY_MASK_RELAXED_ORDERING_WRITE = 1ull << 25,
|
||||
MLX5_MKEY_MASK_FREE = 1ull << 29,
|
||||
MLX5_MKEY_MASK_RELAXED_ORDERING_READ = 1ull << 47,
|
||||
};
|
||||
|
||||
enum {
|
||||
@@ -1007,7 +1009,6 @@ enum {
|
||||
MLX5_MKEY_REMOTE_INVAL = 1 << 24,
|
||||
MLX5_MKEY_FLAG_SYNC_UMR = 1 << 29,
|
||||
MLX5_MKEY_BSF_EN = 1 << 30,
|
||||
MLX5_MKEY_LEN64 = 1 << 31,
|
||||
};
|
||||
|
||||
struct mlx5_mkey_seg {
|
||||
@@ -1361,11 +1362,11 @@ enum mlx5_qcam_feature_groups {
|
||||
MLX5_ADDR_OF(device_event_cap, (mdev)->caps.hca_cur[MLX5_CAP_DEV_EVENT], cap)
|
||||
|
||||
#define MLX5_CAP_DEV_VDPA_EMULATION(mdev, cap)\
|
||||
MLX5_GET(device_virtio_emulation_cap, \
|
||||
MLX5_GET(virtio_emulation_cap, \
|
||||
(mdev)->caps.hca_cur[MLX5_CAP_VDPA_EMULATION], cap)
|
||||
|
||||
#define MLX5_CAP64_DEV_VDPA_EMULATION(mdev, cap)\
|
||||
MLX5_GET64(device_virtio_emulation_cap, \
|
||||
MLX5_GET64(virtio_emulation_cap, \
|
||||
(mdev)->caps.hca_cur[MLX5_CAP_VDPA_EMULATION], cap)
|
||||
|
||||
#define MLX5_CAP_IPSEC(mdev, cap)\
|
||||
|
||||
@@ -975,6 +975,7 @@ void mlx5_register_debugfs(void);
|
||||
void mlx5_unregister_debugfs(void);
|
||||
|
||||
void mlx5_fill_page_array(struct mlx5_frag_buf *buf, __be64 *pas);
|
||||
void mlx5_fill_page_frag_array_perm(struct mlx5_frag_buf *buf, __be64 *pas, u8 perm);
|
||||
void mlx5_fill_page_frag_array(struct mlx5_frag_buf *frag_buf, __be64 *pas);
|
||||
int mlx5_vector2eqn(struct mlx5_core_dev *dev, int vector, int *eqn,
|
||||
unsigned int *irqn);
|
||||
@@ -1057,6 +1058,7 @@ enum {
|
||||
enum {
|
||||
MLX5_INTERFACE_PROTOCOL_IB = 0,
|
||||
MLX5_INTERFACE_PROTOCOL_ETH = 1,
|
||||
MLX5_INTERFACE_PROTOCOL_VDPA = 2,
|
||||
};
|
||||
|
||||
struct mlx5_interface {
|
||||
|
||||
@@ -93,6 +93,7 @@ enum {
|
||||
|
||||
enum {
|
||||
MLX5_OBJ_TYPE_GENEVE_TLV_OPT = 0x000b,
|
||||
MLX5_OBJ_TYPE_VIRTIO_NET_Q = 0x000d,
|
||||
MLX5_OBJ_TYPE_MKEY = 0xff01,
|
||||
MLX5_OBJ_TYPE_QP = 0xff02,
|
||||
MLX5_OBJ_TYPE_PSV = 0xff03,
|
||||
@@ -985,17 +986,40 @@ struct mlx5_ifc_device_event_cap_bits {
|
||||
u8 user_unaffiliated_events[4][0x40];
|
||||
};
|
||||
|
||||
struct mlx5_ifc_device_virtio_emulation_cap_bits {
|
||||
u8 reserved_at_0[0x20];
|
||||
struct mlx5_ifc_virtio_emulation_cap_bits {
|
||||
u8 desc_tunnel_offload_type[0x1];
|
||||
u8 eth_frame_offload_type[0x1];
|
||||
u8 virtio_version_1_0[0x1];
|
||||
u8 device_features_bits_mask[0xd];
|
||||
u8 event_mode[0x8];
|
||||
u8 virtio_queue_type[0x8];
|
||||
|
||||
u8 reserved_at_20[0x13];
|
||||
u8 max_tunnel_desc[0x10];
|
||||
u8 reserved_at_30[0x3];
|
||||
u8 log_doorbell_stride[0x5];
|
||||
u8 reserved_at_38[0x3];
|
||||
u8 log_doorbell_bar_size[0x5];
|
||||
|
||||
u8 doorbell_bar_offset[0x40];
|
||||
|
||||
u8 reserved_at_80[0x780];
|
||||
u8 max_emulated_devices[0x8];
|
||||
u8 max_num_virtio_queues[0x18];
|
||||
|
||||
u8 reserved_at_a0[0x60];
|
||||
|
||||
u8 umem_1_buffer_param_a[0x20];
|
||||
|
||||
u8 umem_1_buffer_param_b[0x20];
|
||||
|
||||
u8 umem_2_buffer_param_a[0x20];
|
||||
|
||||
u8 umem_2_buffer_param_b[0x20];
|
||||
|
||||
u8 umem_3_buffer_param_a[0x20];
|
||||
|
||||
u8 umem_3_buffer_param_b[0x20];
|
||||
|
||||
u8 reserved_at_1c0[0x640];
|
||||
};
|
||||
|
||||
enum {
|
||||
@@ -1220,7 +1244,11 @@ struct mlx5_ifc_cmd_hca_cap_bits {
|
||||
|
||||
u8 max_sgl_for_optimized_performance[0x8];
|
||||
u8 log_max_cq_sz[0x8];
|
||||
u8 reserved_at_d0[0xb];
|
||||
u8 relaxed_ordering_write_umr[0x1];
|
||||
u8 relaxed_ordering_read_umr[0x1];
|
||||
u8 reserved_at_d2[0x7];
|
||||
u8 virtio_net_device_emualtion_manager[0x1];
|
||||
u8 virtio_blk_device_emualtion_manager[0x1];
|
||||
u8 log_max_cq[0x5];
|
||||
|
||||
u8 log_max_eq_sz[0x8];
|
||||
@@ -1396,7 +1424,10 @@ struct mlx5_ifc_cmd_hca_cap_bits {
|
||||
u8 bf[0x1];
|
||||
u8 driver_version[0x1];
|
||||
u8 pad_tx_eth_packet[0x1];
|
||||
u8 reserved_at_263[0x8];
|
||||
u8 reserved_at_263[0x3];
|
||||
u8 mkey_by_name[0x1];
|
||||
u8 reserved_at_267[0x4];
|
||||
|
||||
u8 log_bf_reg_size[0x5];
|
||||
|
||||
u8 reserved_at_270[0x8];
|
||||
@@ -2953,7 +2984,7 @@ union mlx5_ifc_hca_cap_union_bits {
|
||||
struct mlx5_ifc_fpga_cap_bits fpga_cap;
|
||||
struct mlx5_ifc_tls_cap_bits tls_cap;
|
||||
struct mlx5_ifc_device_mem_cap_bits device_mem_cap;
|
||||
struct mlx5_ifc_device_virtio_emulation_cap_bits virtio_emulation_cap;
|
||||
struct mlx5_ifc_virtio_emulation_cap_bits virtio_emulation_cap;
|
||||
u8 reserved_at_0[0x8000];
|
||||
};
|
||||
|
||||
@@ -3302,15 +3333,18 @@ struct mlx5_ifc_scheduling_context_bits {
|
||||
};
|
||||
|
||||
struct mlx5_ifc_rqtc_bits {
|
||||
u8 reserved_at_0[0xa0];
|
||||
u8 reserved_at_0[0xa0];
|
||||
|
||||
u8 reserved_at_a0[0x10];
|
||||
u8 rqt_max_size[0x10];
|
||||
u8 reserved_at_a0[0x5];
|
||||
u8 list_q_type[0x3];
|
||||
u8 reserved_at_a8[0x8];
|
||||
u8 rqt_max_size[0x10];
|
||||
|
||||
u8 reserved_at_c0[0x10];
|
||||
u8 rqt_actual_size[0x10];
|
||||
u8 rq_vhca_id_format[0x1];
|
||||
u8 reserved_at_c1[0xf];
|
||||
u8 rqt_actual_size[0x10];
|
||||
|
||||
u8 reserved_at_e0[0x6a0];
|
||||
u8 reserved_at_e0[0x6a0];
|
||||
|
||||
struct mlx5_ifc_rq_num_bits rq_num[];
|
||||
};
|
||||
@@ -7092,7 +7126,7 @@ struct mlx5_ifc_destroy_mkey_out_bits {
|
||||
|
||||
struct mlx5_ifc_destroy_mkey_in_bits {
|
||||
u8 opcode[0x10];
|
||||
u8 reserved_at_10[0x10];
|
||||
u8 uid[0x10];
|
||||
|
||||
u8 reserved_at_20[0x10];
|
||||
u8 op_mod[0x10];
|
||||
@@ -7723,8 +7757,10 @@ struct mlx5_ifc_create_qp_in_bits {
|
||||
u8 reserved_at_20[0x10];
|
||||
u8 op_mod[0x10];
|
||||
|
||||
u8 reserved_at_40[0x40];
|
||||
u8 reserved_at_40[0x8];
|
||||
u8 input_qpn[0x18];
|
||||
|
||||
u8 reserved_at_60[0x20];
|
||||
u8 opt_param_mask[0x20];
|
||||
|
||||
u8 ece[0x20];
|
||||
@@ -7788,7 +7824,7 @@ struct mlx5_ifc_create_mkey_out_bits {
|
||||
|
||||
struct mlx5_ifc_create_mkey_in_bits {
|
||||
u8 opcode[0x10];
|
||||
u8 reserved_at_10[0x10];
|
||||
u8 uid[0x10];
|
||||
|
||||
u8 reserved_at_20[0x10];
|
||||
u8 op_mod[0x10];
|
||||
@@ -10346,6 +10382,40 @@ struct mlx5_ifc_create_umem_in_bits {
|
||||
struct mlx5_ifc_umem_bits umem;
|
||||
};
|
||||
|
||||
struct mlx5_ifc_create_umem_out_bits {
|
||||
u8 status[0x8];
|
||||
u8 reserved_at_8[0x18];
|
||||
|
||||
u8 syndrome[0x20];
|
||||
|
||||
u8 reserved_at_40[0x8];
|
||||
u8 umem_id[0x18];
|
||||
|
||||
u8 reserved_at_60[0x20];
|
||||
};
|
||||
|
||||
struct mlx5_ifc_destroy_umem_in_bits {
|
||||
u8 opcode[0x10];
|
||||
u8 uid[0x10];
|
||||
|
||||
u8 reserved_at_20[0x10];
|
||||
u8 op_mod[0x10];
|
||||
|
||||
u8 reserved_at_40[0x8];
|
||||
u8 umem_id[0x18];
|
||||
|
||||
u8 reserved_at_60[0x20];
|
||||
};
|
||||
|
||||
struct mlx5_ifc_destroy_umem_out_bits {
|
||||
u8 status[0x8];
|
||||
u8 reserved_at_8[0x18];
|
||||
|
||||
u8 syndrome[0x20];
|
||||
|
||||
u8 reserved_at_40[0x40];
|
||||
};
|
||||
|
||||
struct mlx5_ifc_create_uctx_in_bits {
|
||||
u8 opcode[0x10];
|
||||
u8 reserved_at_10[0x10];
|
||||
@@ -10358,6 +10428,18 @@ struct mlx5_ifc_create_uctx_in_bits {
|
||||
struct mlx5_ifc_uctx_bits uctx;
|
||||
};
|
||||
|
||||
struct mlx5_ifc_create_uctx_out_bits {
|
||||
u8 status[0x8];
|
||||
u8 reserved_at_8[0x18];
|
||||
|
||||
u8 syndrome[0x20];
|
||||
|
||||
u8 reserved_at_40[0x10];
|
||||
u8 uid[0x10];
|
||||
|
||||
u8 reserved_at_60[0x20];
|
||||
};
|
||||
|
||||
struct mlx5_ifc_destroy_uctx_in_bits {
|
||||
u8 opcode[0x10];
|
||||
u8 reserved_at_10[0x10];
|
||||
@@ -10371,6 +10453,15 @@ struct mlx5_ifc_destroy_uctx_in_bits {
|
||||
u8 reserved_at_60[0x20];
|
||||
};
|
||||
|
||||
struct mlx5_ifc_destroy_uctx_out_bits {
|
||||
u8 status[0x8];
|
||||
u8 reserved_at_8[0x18];
|
||||
|
||||
u8 syndrome[0x20];
|
||||
|
||||
u8 reserved_at_40[0x40];
|
||||
};
|
||||
|
||||
struct mlx5_ifc_create_sw_icm_in_bits {
|
||||
struct mlx5_ifc_general_obj_in_cmd_hdr_bits hdr;
|
||||
struct mlx5_ifc_sw_icm_bits sw_icm;
|
||||
@@ -10687,4 +10778,10 @@ struct mlx5_ifc_tls_progress_params_bits {
|
||||
u8 hw_offset_record_number[0x18];
|
||||
};
|
||||
|
||||
enum {
|
||||
MLX5_MTT_PERM_READ = 1 << 0,
|
||||
MLX5_MTT_PERM_WRITE = 1 << 1,
|
||||
MLX5_MTT_PERM_RW = MLX5_MTT_PERM_READ | MLX5_MTT_PERM_WRITE,
|
||||
};
|
||||
|
||||
#endif /* MLX5_IFC_H */
|
||||
|
||||
Reference in New Issue
Block a user