Re: [PATCH for-next 5/8] RDMA/hns: Bugfix for calculating qp buffer size

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



在 2019/6/24 19:47, Lijun Ou 写道:
> From: o00290482 <o00290482@xxxxxxxxxx>
Hi, Jason
   May be my local configuration error causing the wroong author.  How should I make changes?

The correct as follows:
From: Lijun Ou <oulijun@xxxxxxxxxx>
> The buffer size of qp which used to allocate qp buffer space for
> storing sqwqe and rqwqe will be the length of buffer space. The
> kernel driver will use the buffer address and the same size to
> get the user memory. The same size named buff_size of qp. According
> the algorithm of calculating, The size of the two is not equal
> when users set the max sge of sq.
>
> Fixes: b28ca7cceff8 ("RDMA/hns: Limit extend sq sge num")
> Signed-off-by: Lijun Ou <oulijun@xxxxxxxxxx>
> ---
>  drivers/infiniband/hw/hns/hns_roce_qp.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/infiniband/hw/hns/hns_roce_qp.c b/drivers/infiniband/hw/hns/hns_roce_qp.c
> index 305be42..d56c03d 100644
> --- a/drivers/infiniband/hw/hns/hns_roce_qp.c
> +++ b/drivers/infiniband/hw/hns/hns_roce_qp.c
> @@ -392,8 +392,8 @@ static int hns_roce_set_user_sq_size(struct hns_roce_dev *hr_dev,
>  					     hr_qp->sq.wqe_shift), PAGE_SIZE);
>  	} else {
>  		page_size = 1 << (hr_dev->caps.mtt_buf_pg_sz + PAGE_SHIFT);
> -		hr_qp->sge.sge_cnt =
> -		       max(page_size / (1 << hr_qp->sge.sge_shift), ex_sge_num);
> +		hr_qp->sge.sge_cnt = ex_sge_num ?
> +		   max(page_size / (1 << hr_qp->sge.sge_shift), ex_sge_num) : 0;
>  		hr_qp->buff_size = HNS_ROCE_ALOGN_UP((hr_qp->rq.wqe_cnt <<
>  					     hr_qp->rq.wqe_shift), page_size) +
>  				   HNS_ROCE_ALOGN_UP((hr_qp->sge.sge_cnt <<






[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux