Skip to content

Commit

Permalink
net/mlx5_core: Modify arm CQ in preparation for upcoming Ethernet driver
Browse files Browse the repository at this point in the history
Pass consumer index as a parameter to arm CQ

Signed-off-by: Saeed Mahameed <[email protected]>
Signed-off-by: Eli Cohen <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
  • Loading branch information
Saeed Mahameed authored and davem330 committed Apr 2, 2015
1 parent 233d05d commit ce0f750
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 4 deletions.
8 changes: 6 additions & 2 deletions drivers/infiniband/hw/mlx5/cq.c
Original file line number Diff line number Diff line change
Expand Up @@ -572,11 +572,15 @@ int mlx5_ib_poll_cq(struct ib_cq *ibcq, int num_entries, struct ib_wc *wc)

int mlx5_ib_arm_cq(struct ib_cq *ibcq, enum ib_cq_notify_flags flags)
{
struct mlx5_core_dev *mdev = to_mdev(ibcq->device)->mdev;
void __iomem *uar_page = mdev->priv.uuari.uars[0].map;

mlx5_cq_arm(&to_mcq(ibcq)->mcq,
(flags & IB_CQ_SOLICITED_MASK) == IB_CQ_SOLICITED ?
MLX5_CQ_DB_REQ_NOT_SOL : MLX5_CQ_DB_REQ_NOT,
to_mdev(ibcq->device)->mdev->priv.uuari.uars[0].map,
MLX5_GET_DOORBELL_LOCK(&to_mdev(ibcq->device)->mdev->priv.cq_uar_lock));
uar_page,
MLX5_GET_DOORBELL_LOCK(&mdev->priv.cq_uar_lock),
to_mcq(ibcq)->mcq.cons_index);

return 0;
}
Expand Down
5 changes: 3 additions & 2 deletions include/linux/mlx5/cq.h
Original file line number Diff line number Diff line change
Expand Up @@ -137,14 +137,15 @@ enum {

static inline void mlx5_cq_arm(struct mlx5_core_cq *cq, u32 cmd,
void __iomem *uar_page,
spinlock_t *doorbell_lock)
spinlock_t *doorbell_lock,
u32 cons_index)
{
__be32 doorbell[2];
u32 sn;
u32 ci;

sn = cq->arm_sn & 3;
ci = cq->cons_index & 0xffffff;
ci = cons_index & 0xffffff;

*cq->arm_db = cpu_to_be32(sn << 28 | cmd | ci);

Expand Down

0 comments on commit ce0f750

Please sign in to comment.