[ofa-general] RE: [PATCH] RDMA/nes: Get rid of ring_doorbell parameter of nes_post_cqp_request()
Faisal Latif
flatif at NetEffect.com
Wed Jul 2 15:21:35 PDT 2008
Acked-by: Faisal Latif <flatif at neteffect.com>
Thanks
Faisal
> -----Original Message-----
> From: Roland Dreier [mailto:rdreier at cisco.com]
> Sent: Wednesday, July 02, 2008 4:01 PM
> To: Faisal Latif; Chien Tung; Glenn Streiff
> Cc: general at lists.openfabrics.org
> Subject: [PATCH] RDMA/nes: Get rid of ring_doorbell parameter of
> nes_post_cqp_request()
>
> Every caller of nes_post_cqp_request() passed it
> NES_CQP_REQUEST_RING_DOORBELL,
> so just remove that parameter and always ring the doorbell.
>
> Signed-off-by: Roland Dreier <rolandd at cisco.com>
> ---
> And one more...
>
> drivers/infiniband/hw/nes/nes.c | 2 +-
> drivers/infiniband/hw/nes/nes.h | 5 +----
> drivers/infiniband/hw/nes/nes_hw.c | 6 +++---
> drivers/infiniband/hw/nes/nes_utils.c | 9 ++++-----
> drivers/infiniband/hw/nes/nes_verbs.c | 18 +++++++++---------
> 5 files changed, 18 insertions(+), 22 deletions(-)
>
> diff --git a/drivers/infiniband/hw/nes/nes.c
> b/drivers/infiniband/hw/nes/nes.c
> index a4e9269..d2884e7 100644
> --- a/drivers/infiniband/hw/nes/nes.c
> +++ b/drivers/infiniband/hw/nes/nes.c
> @@ -328,7 +328,7 @@ void nes_rem_ref(struct ib_qp *ibqp)
> set_wqe_32bit_value(cqp_wqe->wqe_words,
NES_CQP_WQE_ID_IDX,
> nesqp->hwqp.qp_id);
> u64temp = (u64)nesqp->nesqp_context_pbase;
> set_wqe_64bit_value(cqp_wqe->wqe_words,
> NES_CQP_QP_WQE_CONTEXT_LOW_IDX, u64temp);
> - nes_post_cqp_request(nesdev, cqp_request,
> NES_CQP_REQUEST_RING_DOORBELL);
> + nes_post_cqp_request(nesdev, cqp_request);
> }
> }
>
> diff --git a/drivers/infiniband/hw/nes/nes.h
> b/drivers/infiniband/hw/nes/nes.h
> index fe88bec..39bd897 100644
> --- a/drivers/infiniband/hw/nes/nes.h
> +++ b/drivers/infiniband/hw/nes/nes.h
> @@ -94,9 +94,6 @@
>
> #define MAX_DPC_ITERATIONS 128
>
> -#define NES_CQP_REQUEST_NO_DOORBELL_RING 0
> -#define NES_CQP_REQUEST_RING_DOORBELL 1
> -
> #define NES_DRV_OPT_ENABLE_MPA_VER_0 0x00000001
> #define NES_DRV_OPT_DISABLE_MPA_CRC 0x00000002
> #define NES_DRV_OPT_DISABLE_FIRST_WRITE 0x00000004
> @@ -542,7 +539,7 @@ void nes_free_cqp_request(struct nes_device
> *nesdev,
> struct nes_cqp_request *cqp_request);
> void nes_put_cqp_request(struct nes_device *nesdev,
> struct nes_cqp_request *cqp_request);
> -void nes_post_cqp_request(struct nes_device *, struct nes_cqp_request
> *, int);
> +void nes_post_cqp_request(struct nes_device *, struct nes_cqp_request
> *);
> int nes_arp_table(struct nes_device *, u32, u8 *, u32);
> void nes_mh_fix(unsigned long);
> void nes_clc(unsigned long);
> diff --git a/drivers/infiniband/hw/nes/nes_hw.c
> b/drivers/infiniband/hw/nes/nes_hw.c
> index 0cea58b..59c2841 100644
> --- a/drivers/infiniband/hw/nes/nes_hw.c
> +++ b/drivers/infiniband/hw/nes/nes_hw.c
> @@ -3145,7 +3145,7 @@ int nes_manage_apbvt(struct nes_vnic *nesvnic,
> u32 accel_local_port,
> nes_debug(NES_DBG_QP, "Waiting for CQP completion for
APBVT.\n");
>
> atomic_set(&cqp_request->refcount, 2);
> - nes_post_cqp_request(nesdev, cqp_request,
> NES_CQP_REQUEST_RING_DOORBELL);
> + nes_post_cqp_request(nesdev, cqp_request);
>
> if (add_port == NES_MANAGE_APBVT_ADD)
> ret = wait_event_timeout(cqp_request->waitq,
(cqp_request-
> >request_done != 0),
> @@ -3215,7 +3215,7 @@ void nes_manage_arp_cache(struct net_device
> *netdev, unsigned char *mac_addr,
> nesdev->cqp.sq_head, nesdev->cqp.sq_tail);
>
> atomic_set(&cqp_request->refcount, 1);
> - nes_post_cqp_request(nesdev, cqp_request,
> NES_CQP_REQUEST_RING_DOORBELL);
> + nes_post_cqp_request(nesdev, cqp_request);
> }
>
>
> @@ -3247,7 +3247,7 @@ void flush_wqes(struct nes_device *nesdev,
struct
> nes_qp *nesqp,
> cpu_to_le32(NES_CQP_FLUSH_WQES | which_wq);
> cqp_wqe->wqe_words[NES_CQP_WQE_ID_IDX] = cpu_to_le32(nesqp-
> >hwqp.qp_id);
>
> - nes_post_cqp_request(nesdev, cqp_request,
> NES_CQP_REQUEST_RING_DOORBELL);
> + nes_post_cqp_request(nesdev, cqp_request);
>
> if (wait_completion) {
> /* Wait for CQP */
> diff --git a/drivers/infiniband/hw/nes/nes_utils.c
> b/drivers/infiniband/hw/nes/nes_utils.c
> index 8f519c8..fb8cbd7 100644
> --- a/drivers/infiniband/hw/nes/nes_utils.c
> +++ b/drivers/infiniband/hw/nes/nes_utils.c
> @@ -596,7 +596,7 @@ void nes_put_cqp_request(struct nes_device
*nesdev,
> * nes_post_cqp_request
> */
> void nes_post_cqp_request(struct nes_device *nesdev,
> - struct nes_cqp_request *cqp_request, int ring_doorbell)
> + struct nes_cqp_request *cqp_request)
> {
> struct nes_hw_cqp_wqe *cqp_wqe;
> unsigned long flags;
> @@ -624,10 +624,9 @@ void nes_post_cqp_request(struct nes_device
> *nesdev,
> nesdev->cqp.sq_head,
nesdev->cqp.sq_tail,
> nesdev->cqp.sq_size,
> cqp_request->waiting,
atomic_read(&cqp_request-
> >refcount));
> barrier();
> - if (ring_doorbell) {
> - /* Ring doorbell (1 WQEs) */
> - nes_write32(nesdev->regs+NES_WQE_ALLOC,
0x01800000 |
> nesdev->cqp.qp_id);
> - }
> +
> + /* Ring doorbell (1 WQEs) */
> + nes_write32(nesdev->regs+NES_WQE_ALLOC, 0x01800000 |
> nesdev->cqp.qp_id);
>
> barrier();
> } else {
> diff --git a/drivers/infiniband/hw/nes/nes_verbs.c
> b/drivers/infiniband/hw/nes/nes_verbs.c
> index 464a98a..e3939d1 100644
> --- a/drivers/infiniband/hw/nes/nes_verbs.c
> +++ b/drivers/infiniband/hw/nes/nes_verbs.c
> @@ -118,7 +118,7 @@ static struct ib_mw *nes_alloc_mw(struct ib_pd
> *ibpd) {
> set_wqe_32bit_value(cqp_wqe->wqe_words,
> NES_CQP_STAG_WQE_STAG_IDX, stag);
>
> atomic_set(&cqp_request->refcount, 2);
> - nes_post_cqp_request(nesdev, cqp_request,
> NES_CQP_REQUEST_RING_DOORBELL);
> + nes_post_cqp_request(nesdev, cqp_request);
>
> /* Wait for CQP */
> ret = wait_event_timeout(cqp_request->waitq, (cqp_request-
> >request_done != 0),
> @@ -175,7 +175,7 @@ static int nes_dealloc_mw(struct ib_mw *ibmw)
> set_wqe_32bit_value(cqp_wqe->wqe_words,
> NES_CQP_STAG_WQE_STAG_IDX, ibmw->rkey);
>
> atomic_set(&cqp_request->refcount, 2);
> - nes_post_cqp_request(nesdev, cqp_request,
> NES_CQP_REQUEST_RING_DOORBELL);
> + nes_post_cqp_request(nesdev, cqp_request);
>
> /* Wait for CQP */
> nes_debug(NES_DBG_MR, "Waiting for deallocate STag 0x%08X to
> complete.\n",
> @@ -477,7 +477,7 @@ static struct ib_fmr *nes_alloc_fmr(struct ib_pd
> *ibpd,
> (nesfmr->nesmr.pbls_used-1) : nesfmr-
> >nesmr.pbls_used);
>
> atomic_set(&cqp_request->refcount, 2);
> - nes_post_cqp_request(nesdev, cqp_request,
> NES_CQP_REQUEST_RING_DOORBELL);
> + nes_post_cqp_request(nesdev, cqp_request);
>
> /* Wait for CQP */
> ret = wait_event_timeout(cqp_request->waitq, (cqp_request-
> >request_done != 0),
> @@ -1417,7 +1417,7 @@ static struct ib_qp *nes_create_qp(struct ib_pd
> *ibpd,
> set_wqe_64bit_value(cqp_wqe->wqe_words,
> NES_CQP_QP_WQE_CONTEXT_LOW_IDX, u64temp);
>
> atomic_set(&cqp_request->refcount, 2);
> - nes_post_cqp_request(nesdev, cqp_request,
> NES_CQP_REQUEST_RING_DOORBELL);
> + nes_post_cqp_request(nesdev, cqp_request);
>
> /* Wait for CQP */
> nes_debug(NES_DBG_QP, "Waiting for create iWARP
QP%u
> to complete.\n",
> @@ -1744,7 +1744,7 @@ static struct ib_cq *nes_create_cq(struct
> ib_device *ibdev, int entries,
> cpu_to_le32(((u32)((u64temp) >> 33)) &
0x7FFFFFFF);
>
> atomic_set(&cqp_request->refcount, 2);
> - nes_post_cqp_request(nesdev, cqp_request,
> NES_CQP_REQUEST_RING_DOORBELL);
> + nes_post_cqp_request(nesdev, cqp_request);
>
> /* Wait for CQP */
> nes_debug(NES_DBG_CQ, "Waiting for create iWARP CQ%u to
> complete.\n",
> @@ -1841,7 +1841,7 @@ static int nes_destroy_cq(struct ib_cq *ib_cq)
> (nescq->hw_cq.cq_number | ((u32)PCI_FUNC(nesdev->pcidev-
> >devfn) << 16)));
> nes_free_resource(nesadapter, nesadapter->allocated_cqs, nescq-
> >hw_cq.cq_number);
> atomic_set(&cqp_request->refcount, 2);
> - nes_post_cqp_request(nesdev, cqp_request,
> NES_CQP_REQUEST_RING_DOORBELL);
> + nes_post_cqp_request(nesdev, cqp_request);
>
> /* Wait for CQP */
> nes_debug(NES_DBG_CQ, "Waiting for destroy iWARP CQ%u to
> complete.\n",
> @@ -1987,7 +1987,7 @@ static int nes_reg_mr(struct nes_device *nesdev,
> struct nes_pd *nespd,
> barrier();
>
> atomic_set(&cqp_request->refcount, 2);
> - nes_post_cqp_request(nesdev, cqp_request,
> NES_CQP_REQUEST_RING_DOORBELL);
> + nes_post_cqp_request(nesdev, cqp_request);
>
> /* Wait for CQP */
> ret = wait_event_timeout(cqp_request->waitq, (0 != cqp_request-
> >request_done),
> @@ -2638,7 +2638,7 @@ static int nes_dereg_mr(struct ib_mr *ib_mr)
> set_wqe_32bit_value(cqp_wqe->wqe_words,
> NES_CQP_STAG_WQE_STAG_IDX, ib_mr->rkey);
>
> atomic_set(&cqp_request->refcount, 2);
> - nes_post_cqp_request(nesdev, cqp_request,
> NES_CQP_REQUEST_RING_DOORBELL);
> + nes_post_cqp_request(nesdev, cqp_request);
>
> /* Wait for CQP */
> nes_debug(NES_DBG_MR, "Waiting for deallocate STag 0x%08X
> completed\n", ib_mr->rkey);
> @@ -2809,7 +2809,7 @@ int nes_hw_modify_qp(struct nes_device *nesdev,
> struct nes_qp *nesqp,
> set_wqe_64bit_value(cqp_wqe->wqe_words,
> NES_CQP_QP_WQE_CONTEXT_LOW_IDX, (u64)nesqp->nesqp_context_pbase);
>
> atomic_set(&cqp_request->refcount, 2);
> - nes_post_cqp_request(nesdev, cqp_request,
> NES_CQP_REQUEST_RING_DOORBELL);
> + nes_post_cqp_request(nesdev, cqp_request);
>
> /* Wait for CQP */
> if (wait_completion) {
> --
> 1.5.6
More information about the general
mailing list