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:
@@ -299,11 +299,18 @@ void mlx5_fill_page_array(struct mlx5_frag_buf *buf, __be64 *pas)
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(mlx5_fill_page_array);
|
||||
|
||||
void mlx5_fill_page_frag_array(struct mlx5_frag_buf *buf, __be64 *pas)
|
||||
void mlx5_fill_page_frag_array_perm(struct mlx5_frag_buf *buf, __be64 *pas, u8 perm)
|
||||
{
|
||||
int i;
|
||||
|
||||
WARN_ON(perm & 0xfc);
|
||||
for (i = 0; i < buf->npages; i++)
|
||||
pas[i] = cpu_to_be64(buf->frags[i].map);
|
||||
pas[i] = cpu_to_be64(buf->frags[i].map | perm);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(mlx5_fill_page_frag_array_perm);
|
||||
|
||||
void mlx5_fill_page_frag_array(struct mlx5_frag_buf *buf, __be64 *pas)
|
||||
{
|
||||
mlx5_fill_page_frag_array_perm(buf, pas, 0);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(mlx5_fill_page_frag_array);
|
||||
|
@@ -1577,6 +1577,7 @@ static struct mlx5_flow_handle *add_rule_fg(struct mlx5_flow_group *fg,
|
||||
static bool counter_is_valid(u32 action)
|
||||
{
|
||||
return (action & (MLX5_FLOW_CONTEXT_ACTION_DROP |
|
||||
MLX5_FLOW_CONTEXT_ACTION_ALLOW |
|
||||
MLX5_FLOW_CONTEXT_ACTION_FWD_DEST));
|
||||
}
|
||||
|
||||
|
@@ -226,13 +226,20 @@ void mlx5i_uninit_underlay_qp(struct mlx5e_priv *priv)
|
||||
|
||||
int mlx5i_create_underlay_qp(struct mlx5e_priv *priv)
|
||||
{
|
||||
unsigned char *dev_addr = priv->netdev->dev_addr;
|
||||
u32 out[MLX5_ST_SZ_DW(create_qp_out)] = {};
|
||||
u32 in[MLX5_ST_SZ_DW(create_qp_in)] = {};
|
||||
struct mlx5i_priv *ipriv = priv->ppriv;
|
||||
void *addr_path;
|
||||
int qpn = 0;
|
||||
int ret = 0;
|
||||
void *qpc;
|
||||
|
||||
if (MLX5_CAP_GEN(priv->mdev, mkey_by_name)) {
|
||||
qpn = (dev_addr[1] << 16) + (dev_addr[2] << 8) + dev_addr[3];
|
||||
MLX5_SET(create_qp_in, in, input_qpn, qpn);
|
||||
}
|
||||
|
||||
qpc = MLX5_ADDR_OF(create_qp_in, in, qpc);
|
||||
MLX5_SET(qpc, qpc, st, MLX5_QP_ST_UD);
|
||||
MLX5_SET(qpc, qpc, pm_state, MLX5_QP_PM_MIGRATED);
|
||||
|
@@ -557,6 +557,9 @@ static int handle_hca_cap(struct mlx5_core_dev *dev, void *set_ctx)
|
||||
if (MLX5_CAP_GEN_MAX(dev, release_all_pages))
|
||||
MLX5_SET(cmd_hca_cap, set_hca_cap, release_all_pages, 1);
|
||||
|
||||
if (MLX5_CAP_GEN_MAX(dev, mkey_by_name))
|
||||
MLX5_SET(cmd_hca_cap, set_hca_cap, mkey_by_name, 1);
|
||||
|
||||
return set_caps(dev, set_ctx, MLX5_SET_HCA_CAP_OP_MOD_GENERAL_DEVICE);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user