mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-10 12:57:06 +09:00
qed: Read queue state before releasing buffer
[ Upstream commit c5212b943d ]
Currently the state is read only after the buffers are relesed.
Signed-off-by: Ram Amrani <Ram.Amrani@cavium.com>
Signed-off-by: Yuval Mintz <Yuval.Mintz@cavium.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
7f8ea2674b
commit
1226f69933
@@ -1766,13 +1766,13 @@ static int qed_roce_query_qp(struct qed_hwfn *p_hwfn,
|
||||
if (rc)
|
||||
goto err_resp;
|
||||
|
||||
dma_free_coherent(&p_hwfn->cdev->pdev->dev, sizeof(*p_resp_ramrod_res),
|
||||
p_resp_ramrod_res, resp_ramrod_res_phys);
|
||||
|
||||
out_params->rq_psn = le32_to_cpu(p_resp_ramrod_res->psn);
|
||||
rq_err_state = GET_FIELD(le32_to_cpu(p_resp_ramrod_res->err_flag),
|
||||
ROCE_QUERY_QP_RESP_OUTPUT_PARAMS_ERROR_FLG);
|
||||
|
||||
dma_free_coherent(&p_hwfn->cdev->pdev->dev, sizeof(*p_resp_ramrod_res),
|
||||
p_resp_ramrod_res, resp_ramrod_res_phys);
|
||||
|
||||
if (!(qp->req_offloaded)) {
|
||||
/* Don't send query qp for the requester */
|
||||
out_params->sq_psn = qp->sq_psn;
|
||||
@@ -1813,9 +1813,6 @@ static int qed_roce_query_qp(struct qed_hwfn *p_hwfn,
|
||||
if (rc)
|
||||
goto err_req;
|
||||
|
||||
dma_free_coherent(&p_hwfn->cdev->pdev->dev, sizeof(*p_req_ramrod_res),
|
||||
p_req_ramrod_res, req_ramrod_res_phys);
|
||||
|
||||
out_params->sq_psn = le32_to_cpu(p_req_ramrod_res->psn);
|
||||
sq_err_state = GET_FIELD(le32_to_cpu(p_req_ramrod_res->flags),
|
||||
ROCE_QUERY_QP_REQ_OUTPUT_PARAMS_ERR_FLG);
|
||||
@@ -1823,6 +1820,9 @@ static int qed_roce_query_qp(struct qed_hwfn *p_hwfn,
|
||||
GET_FIELD(le32_to_cpu(p_req_ramrod_res->flags),
|
||||
ROCE_QUERY_QP_REQ_OUTPUT_PARAMS_SQ_DRAINING_FLG);
|
||||
|
||||
dma_free_coherent(&p_hwfn->cdev->pdev->dev, sizeof(*p_req_ramrod_res),
|
||||
p_req_ramrod_res, req_ramrod_res_phys);
|
||||
|
||||
out_params->draining = false;
|
||||
|
||||
if (rq_err_state)
|
||||
|
||||
Reference in New Issue
Block a user