diff options
author | Saeed Mahameed <saeedm@mellanox.com> | 2015-04-02 10:07:33 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-04-02 16:33:43 -0400 |
commit | ce0f75093282c5dca1e79ae3e3e893deaea86166 (patch) | |
tree | 4b910c8e93fe66186b58579c9cd5dfcff6da7fad | |
parent | 233d05d28ad942929b6b4fbc48aa8dd083c16484 (diff) |
net/mlx5_core: Modify arm CQ in preparation for upcoming Ethernet driver
Pass consumer index as a parameter to arm CQ
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
Signed-off-by: Eli Cohen <eli@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/infiniband/hw/mlx5/cq.c | 8 | ||||
-rw-r--r-- | include/linux/mlx5/cq.h | 5 |
2 files changed, 9 insertions, 4 deletions
diff --git a/drivers/infiniband/hw/mlx5/cq.c b/drivers/infiniband/hw/mlx5/cq.c index c94e2651820d..2ee6b1051975 100644 --- a/drivers/infiniband/hw/mlx5/cq.c +++ b/drivers/infiniband/hw/mlx5/cq.c | |||
@@ -572,11 +572,15 @@ int mlx5_ib_poll_cq(struct ib_cq *ibcq, int num_entries, struct ib_wc *wc) | |||
572 | 572 | ||
573 | int mlx5_ib_arm_cq(struct ib_cq *ibcq, enum ib_cq_notify_flags flags) | 573 | int mlx5_ib_arm_cq(struct ib_cq *ibcq, enum ib_cq_notify_flags flags) |
574 | { | 574 | { |
575 | struct mlx5_core_dev *mdev = to_mdev(ibcq->device)->mdev; | ||
576 | void __iomem *uar_page = mdev->priv.uuari.uars[0].map; | ||
577 | |||
575 | mlx5_cq_arm(&to_mcq(ibcq)->mcq, | 578 | mlx5_cq_arm(&to_mcq(ibcq)->mcq, |
576 | (flags & IB_CQ_SOLICITED_MASK) == IB_CQ_SOLICITED ? | 579 | (flags & IB_CQ_SOLICITED_MASK) == IB_CQ_SOLICITED ? |
577 | MLX5_CQ_DB_REQ_NOT_SOL : MLX5_CQ_DB_REQ_NOT, | 580 | MLX5_CQ_DB_REQ_NOT_SOL : MLX5_CQ_DB_REQ_NOT, |
578 | to_mdev(ibcq->device)->mdev->priv.uuari.uars[0].map, | 581 | uar_page, |
579 | MLX5_GET_DOORBELL_LOCK(&to_mdev(ibcq->device)->mdev->priv.cq_uar_lock)); | 582 | MLX5_GET_DOORBELL_LOCK(&mdev->priv.cq_uar_lock), |
583 | to_mcq(ibcq)->mcq.cons_index); | ||
580 | 584 | ||
581 | return 0; | 585 | return 0; |
582 | } | 586 | } |
diff --git a/include/linux/mlx5/cq.h b/include/linux/mlx5/cq.h index 72ee0d732a26..2695ced222df 100644 --- a/include/linux/mlx5/cq.h +++ b/include/linux/mlx5/cq.h | |||
@@ -137,14 +137,15 @@ enum { | |||
137 | 137 | ||
138 | static inline void mlx5_cq_arm(struct mlx5_core_cq *cq, u32 cmd, | 138 | static inline void mlx5_cq_arm(struct mlx5_core_cq *cq, u32 cmd, |
139 | void __iomem *uar_page, | 139 | void __iomem *uar_page, |
140 | spinlock_t *doorbell_lock) | 140 | spinlock_t *doorbell_lock, |
141 | u32 cons_index) | ||
141 | { | 142 | { |
142 | __be32 doorbell[2]; | 143 | __be32 doorbell[2]; |
143 | u32 sn; | 144 | u32 sn; |
144 | u32 ci; | 145 | u32 ci; |
145 | 146 | ||
146 | sn = cq->arm_sn & 3; | 147 | sn = cq->arm_sn & 3; |
147 | ci = cq->cons_index & 0xffffff; | 148 | ci = cons_index & 0xffffff; |
148 | 149 | ||
149 | *cq->arm_db = cpu_to_be32(sn << 28 | cmd | ci); | 150 | *cq->arm_db = cpu_to_be32(sn << 28 | cmd | ci); |
150 | 151 | ||