net/mlx5: Report EQE data upon CQ completion
Report EQE data upon CQ completion to let upper layers use this data. Signed-off-by: Yishai Hadas <yishaih@mellanox.com> Acked-by: Saeed Mahameed <saeedm@mellanox.com> Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
This commit is contained in:

gecommit door
Leon Romanovsky

bovenliggende
70a43d3fd4
commit
4e0e2ea188
@@ -58,7 +58,7 @@ void mlx5_cq_tasklet_cb(unsigned long data)
|
||||
list_for_each_entry_safe(mcq, temp, &ctx->process_list,
|
||||
tasklet_ctx.list) {
|
||||
list_del_init(&mcq->tasklet_ctx.list);
|
||||
mcq->tasklet_ctx.comp(mcq);
|
||||
mcq->tasklet_ctx.comp(mcq, NULL);
|
||||
mlx5_cq_put(mcq);
|
||||
if (time_after(jiffies, end))
|
||||
break;
|
||||
@@ -68,7 +68,8 @@ void mlx5_cq_tasklet_cb(unsigned long data)
|
||||
tasklet_schedule(&ctx->task);
|
||||
}
|
||||
|
||||
static void mlx5_add_cq_to_tasklet(struct mlx5_core_cq *cq)
|
||||
static void mlx5_add_cq_to_tasklet(struct mlx5_core_cq *cq,
|
||||
struct mlx5_eqe *eqe)
|
||||
{
|
||||
unsigned long flags;
|
||||
struct mlx5_eq_tasklet *tasklet_ctx = cq->tasklet_ctx.priv;
|
||||
|
@@ -780,7 +780,7 @@ netdev_tx_t mlx5e_sq_xmit(struct mlx5e_txqsq *sq, struct sk_buff *skb,
|
||||
struct mlx5e_tx_wqe *wqe, u16 pi, bool xmit_more);
|
||||
|
||||
void mlx5e_trigger_irq(struct mlx5e_icosq *sq);
|
||||
void mlx5e_completion_event(struct mlx5_core_cq *mcq);
|
||||
void mlx5e_completion_event(struct mlx5_core_cq *mcq, struct mlx5_eqe *eqe);
|
||||
void mlx5e_cq_error_event(struct mlx5_core_cq *mcq, enum mlx5_event event);
|
||||
int mlx5e_napi_poll(struct napi_struct *napi, int budget);
|
||||
bool mlx5e_poll_tx_cq(struct mlx5e_cq *cq, int napi_budget);
|
||||
|
@@ -136,7 +136,7 @@ int mlx5e_napi_poll(struct napi_struct *napi, int budget)
|
||||
return work_done;
|
||||
}
|
||||
|
||||
void mlx5e_completion_event(struct mlx5_core_cq *mcq)
|
||||
void mlx5e_completion_event(struct mlx5_core_cq *mcq, struct mlx5_eqe *eqe)
|
||||
{
|
||||
struct mlx5e_cq *cq = container_of(mcq, struct mlx5e_cq, mcq);
|
||||
|
||||
|
@@ -153,7 +153,7 @@ static int mlx5_eq_comp_int(struct notifier_block *nb,
|
||||
cq = mlx5_eq_cq_get(eq, cqn);
|
||||
if (likely(cq)) {
|
||||
++cq->arm_sn;
|
||||
cq->comp(cq);
|
||||
cq->comp(cq, eqe);
|
||||
mlx5_cq_put(cq);
|
||||
} else {
|
||||
mlx5_core_warn(eq->dev, "Completion event for bogus CQ 0x%x\n", cqn);
|
||||
|
@@ -414,7 +414,8 @@ static void mlx5_fpga_conn_cq_tasklet(unsigned long data)
|
||||
mlx5_fpga_conn_cqes(conn, MLX5_FPGA_CQ_BUDGET);
|
||||
}
|
||||
|
||||
static void mlx5_fpga_conn_cq_complete(struct mlx5_core_cq *mcq)
|
||||
static void mlx5_fpga_conn_cq_complete(struct mlx5_core_cq *mcq,
|
||||
struct mlx5_eqe *eqe)
|
||||
{
|
||||
struct mlx5_fpga_conn *conn;
|
||||
|
||||
|
Verwijs in nieuw issue
Block a user