Skip to content

Commit 0a9d74d

Browse files
committed
Merge branch 'mlx5-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mellanox/linux into HEAD
Merge shared code that's necessary for mlx5 vdpa bits to build. The branch itself includes a small number of patches and is also independently merged by a couple of other trees. That shouldn't cause any conflicts by itself. Saeed Mahameed <[email protected]> says: --- mlx5-next is a very small branch based on a very early rc that includes mlx5 shared stuff between rdma and net-next, and now virtio as well. --- Signed-off-by: Michael S. Tsirkin <[email protected]>
2 parents 4c05433 + 042dd05 commit 0a9d74d

File tree

18 files changed

+228
-77
lines changed

18 files changed

+228
-77
lines changed

drivers/net/ethernet/mellanox/mlx5/core/alloc.c

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -299,11 +299,18 @@ void mlx5_fill_page_array(struct mlx5_frag_buf *buf, __be64 *pas)
299299
}
300300
EXPORT_SYMBOL_GPL(mlx5_fill_page_array);
301301

302-
void mlx5_fill_page_frag_array(struct mlx5_frag_buf *buf, __be64 *pas)
302+
void mlx5_fill_page_frag_array_perm(struct mlx5_frag_buf *buf, __be64 *pas, u8 perm)
303303
{
304304
int i;
305305

306+
WARN_ON(perm & 0xfc);
306307
for (i = 0; i < buf->npages; i++)
307-
pas[i] = cpu_to_be64(buf->frags[i].map);
308+
pas[i] = cpu_to_be64(buf->frags[i].map | perm);
309+
}
310+
EXPORT_SYMBOL_GPL(mlx5_fill_page_frag_array_perm);
311+
312+
void mlx5_fill_page_frag_array(struct mlx5_frag_buf *buf, __be64 *pas)
313+
{
314+
mlx5_fill_page_frag_array_perm(buf, pas, 0);
308315
}
309316
EXPORT_SYMBOL_GPL(mlx5_fill_page_frag_array);

drivers/net/ethernet/mellanox/mlx5/core/diag/rsc_dump.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ static const char *const mlx5_rsc_sgmt_name[] = {
2323
MLX5_SGMT_STR_ASSING(SX_SLICE_ALL),
2424
MLX5_SGMT_STR_ASSING(RDB),
2525
MLX5_SGMT_STR_ASSING(RX_SLICE_ALL),
26+
MLX5_SGMT_STR_ASSING(PRM_QUERY_QP),
27+
MLX5_SGMT_STR_ASSING(PRM_QUERY_CQ),
28+
MLX5_SGMT_STR_ASSING(PRM_QUERY_MKEY),
2629
};
2730

2831
struct mlx5_rsc_dump {
@@ -130,11 +133,13 @@ struct mlx5_rsc_dump_cmd *mlx5_rsc_dump_cmd_create(struct mlx5_core_dev *dev,
130133
cmd->mem_size = key->size;
131134
return cmd;
132135
}
136+
EXPORT_SYMBOL(mlx5_rsc_dump_cmd_create);
133137

134138
void mlx5_rsc_dump_cmd_destroy(struct mlx5_rsc_dump_cmd *cmd)
135139
{
136140
kfree(cmd);
137141
}
142+
EXPORT_SYMBOL(mlx5_rsc_dump_cmd_destroy);
138143

139144
int mlx5_rsc_dump_next(struct mlx5_core_dev *dev, struct mlx5_rsc_dump_cmd *cmd,
140145
struct page *page, int *size)
@@ -155,6 +160,7 @@ int mlx5_rsc_dump_next(struct mlx5_core_dev *dev, struct mlx5_rsc_dump_cmd *cmd,
155160

156161
return more_dump;
157162
}
163+
EXPORT_SYMBOL(mlx5_rsc_dump_next);
158164

159165
#define MLX5_RSC_DUMP_MENU_SEGMENT 0xffff
160166
static int mlx5_rsc_dump_menu(struct mlx5_core_dev *dev)

drivers/net/ethernet/mellanox/mlx5/core/diag/rsc_dump.h

Lines changed: 1 addition & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -4,41 +4,10 @@
44
#ifndef __MLX5_RSC_DUMP_H
55
#define __MLX5_RSC_DUMP_H
66

7+
#include <linux/mlx5/rsc_dump.h>
78
#include <linux/mlx5/driver.h>
89
#include "mlx5_core.h"
910

10-
enum mlx5_sgmt_type {
11-
MLX5_SGMT_TYPE_HW_CQPC,
12-
MLX5_SGMT_TYPE_HW_SQPC,
13-
MLX5_SGMT_TYPE_HW_RQPC,
14-
MLX5_SGMT_TYPE_FULL_SRQC,
15-
MLX5_SGMT_TYPE_FULL_CQC,
16-
MLX5_SGMT_TYPE_FULL_EQC,
17-
MLX5_SGMT_TYPE_FULL_QPC,
18-
MLX5_SGMT_TYPE_SND_BUFF,
19-
MLX5_SGMT_TYPE_RCV_BUFF,
20-
MLX5_SGMT_TYPE_SRQ_BUFF,
21-
MLX5_SGMT_TYPE_CQ_BUFF,
22-
MLX5_SGMT_TYPE_EQ_BUFF,
23-
MLX5_SGMT_TYPE_SX_SLICE,
24-
MLX5_SGMT_TYPE_SX_SLICE_ALL,
25-
MLX5_SGMT_TYPE_RDB,
26-
MLX5_SGMT_TYPE_RX_SLICE_ALL,
27-
MLX5_SGMT_TYPE_MENU,
28-
MLX5_SGMT_TYPE_TERMINATE,
29-
30-
MLX5_SGMT_TYPE_NUM, /* Keep last */
31-
};
32-
33-
struct mlx5_rsc_key {
34-
enum mlx5_sgmt_type rsc;
35-
int index1;
36-
int index2;
37-
int num_of_obj1;
38-
int num_of_obj2;
39-
int size;
40-
};
41-
4211
#define MLX5_RSC_DUMP_ALL 0xFFFF
4312
struct mlx5_rsc_dump_cmd;
4413
struct mlx5_rsc_dump;

drivers/net/ethernet/mellanox/mlx5/core/en/txrx.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ mlx5e_notify_hw(struct mlx5_wq_cyc *wq, u16 pc, void __iomem *uar_map,
182182

183183
static inline bool mlx5e_transport_inline_tx_wqe(struct mlx5_wqe_ctrl_seg *cseg)
184184
{
185-
return cseg && !!cseg->tisn;
185+
return cseg && !!cseg->tis_tir_num;
186186
}
187187

188188
static inline u8

drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
#define MLX5E_KTLS_PROGRESS_WQE_SZ \
2121
(offsetof(struct mlx5e_tx_wqe, tls_progress_params_ctx) + \
22-
MLX5_ST_SZ_BYTES(tls_progress_params))
22+
sizeof(struct mlx5_wqe_tls_progress_params_seg))
2323
#define MLX5E_KTLS_PROGRESS_WQEBBS \
2424
(DIV_ROUND_UP(MLX5E_KTLS_PROGRESS_WQE_SZ, MLX5_SEND_WQE_BB))
2525

drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ build_static_params(struct mlx5e_umr_wqe *wqe, u16 pc, u32 sqn,
6464
cseg->qpn_ds = cpu_to_be32((sqn << MLX5_WQE_CTRL_QPN_SHIFT) |
6565
STATIC_PARAMS_DS_CNT);
6666
cseg->fm_ce_se = fence ? MLX5_FENCE_MODE_INITIATOR_SMALL : 0;
67-
cseg->tisn = cpu_to_be32(priv_tx->tisn << 8);
67+
cseg->tis_tir_num = cpu_to_be32(priv_tx->tisn << 8);
6868

6969
ucseg->flags = MLX5_UMR_INLINE;
7070
ucseg->bsf_octowords = cpu_to_be16(MLX5_ST_SZ_BYTES(tls_static_params) / 16);
@@ -75,10 +75,14 @@ build_static_params(struct mlx5e_umr_wqe *wqe, u16 pc, u32 sqn,
7575
static void
7676
fill_progress_params_ctx(void *ctx, struct mlx5e_ktls_offload_context_tx *priv_tx)
7777
{
78-
MLX5_SET(tls_progress_params, ctx, tisn, priv_tx->tisn);
79-
MLX5_SET(tls_progress_params, ctx, record_tracker_state,
78+
struct mlx5_wqe_tls_progress_params_seg *params;
79+
80+
params = ctx;
81+
82+
params->tis_tir_num = cpu_to_be32(priv_tx->tisn);
83+
MLX5_SET(tls_progress_params, params->ctx, record_tracker_state,
8084
MLX5E_TLS_PROGRESS_PARAMS_RECORD_TRACKER_STATE_START);
81-
MLX5_SET(tls_progress_params, ctx, auth_state,
85+
MLX5_SET(tls_progress_params, params->ctx, auth_state,
8286
MLX5E_TLS_PROGRESS_PARAMS_AUTH_STATE_NO_OFFLOAD);
8387
}
8488

@@ -284,7 +288,7 @@ tx_post_resync_dump(struct mlx5e_txqsq *sq, skb_frag_t *frag, u32 tisn, bool fir
284288

285289
cseg->opmod_idx_opcode = cpu_to_be32((sq->pc << 8) | MLX5_OPCODE_DUMP);
286290
cseg->qpn_ds = cpu_to_be32((sq->sqn << 8) | ds_cnt);
287-
cseg->tisn = cpu_to_be32(tisn << 8);
291+
cseg->tis_tir_num = cpu_to_be32(tisn << 8);
288292
cseg->fm_ce_se = first ? MLX5_FENCE_MODE_INITIATOR_SMALL : 0;
289293

290294
fsz = skb_frag_size(frag);

drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls_rxtx.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -305,7 +305,7 @@ bool mlx5e_tls_handle_tx_skb(struct net_device *netdev, struct mlx5e_txqsq *sq,
305305
void mlx5e_tls_handle_tx_wqe(struct mlx5e_txqsq *sq, struct mlx5_wqe_ctrl_seg *cseg,
306306
struct mlx5e_accel_tx_tls_state *state)
307307
{
308-
cseg->tisn = cpu_to_be32(state->tls_tisn << 8);
308+
cseg->tis_tir_num = cpu_to_be32(state->tls_tisn << 8);
309309
}
310310

311311
static int tls_update_resync_sn(struct net_device *netdev,

drivers/net/ethernet/mellanox/mlx5/core/eswitch.h

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -44,16 +44,6 @@
4444
#include "lib/mpfs.h"
4545
#include "en/tc_ct.h"
4646

47-
#define FDB_TC_MAX_CHAIN 3
48-
#define FDB_FT_CHAIN (FDB_TC_MAX_CHAIN + 1)
49-
#define FDB_TC_SLOW_PATH_CHAIN (FDB_FT_CHAIN + 1)
50-
51-
/* The index of the last real chain (FT) + 1 as chain zero is valid as well */
52-
#define FDB_NUM_CHAINS (FDB_FT_CHAIN + 1)
53-
54-
#define FDB_TC_MAX_PRIO 16
55-
#define FDB_TC_LEVELS_PER_PRIO 2
56-
5747
#ifdef CONFIG_MLX5_ESWITCH
5848

5949
#define ESW_OFFLOADS_DEFAULT_NUM_GROUPS 15

drivers/net/ethernet/mellanox/mlx5/core/fs_core.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@
4141
#include "diag/fs_tracepoint.h"
4242
#include "accel/ipsec.h"
4343
#include "fpga/ipsec.h"
44-
#include "eswitch.h"
4544

4645
#define INIT_TREE_NODE_ARRAY_SIZE(...) (sizeof((struct init_tree_node[]){__VA_ARGS__}) /\
4746
sizeof(struct init_tree_node))
@@ -1581,6 +1580,7 @@ static struct mlx5_flow_handle *add_rule_fg(struct mlx5_flow_group *fg,
15811580
static bool counter_is_valid(u32 action)
15821581
{
15831582
return (action & (MLX5_FLOW_CONTEXT_ACTION_DROP |
1583+
MLX5_FLOW_CONTEXT_ACTION_ALLOW |
15841584
MLX5_FLOW_CONTEXT_ACTION_FWD_DEST));
15851585
}
15861586

drivers/net/ethernet/mellanox/mlx5/core/fs_core.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,16 @@
3939
#include <linux/llist.h>
4040
#include <steering/fs_dr.h>
4141

42+
#define FDB_TC_MAX_CHAIN 3
43+
#define FDB_FT_CHAIN (FDB_TC_MAX_CHAIN + 1)
44+
#define FDB_TC_SLOW_PATH_CHAIN (FDB_FT_CHAIN + 1)
45+
46+
/* The index of the last real chain (FT) + 1 as chain zero is valid as well */
47+
#define FDB_NUM_CHAINS (FDB_FT_CHAIN + 1)
48+
49+
#define FDB_TC_MAX_PRIO 16
50+
#define FDB_TC_LEVELS_PER_PRIO 2
51+
4252
struct mlx5_modify_hdr {
4353
enum mlx5_flow_namespace_type ns_type;
4454
union {

0 commit comments

Comments
 (0)