[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