提交 7fac7169 编写于 作者: W Wenpeng Liang 提交者: Jason Gunthorpe

RDMA/hns: Adjust the order in which irq are requested and enabled

It should first alloc workqueue and request irq, and finally enable irq.

Link: https://lore.kernel.org/r/1629985056-57004-6-git-send-email-liangwenpeng@huawei.comSigned-off-by: NWenpeng Liang <liangwenpeng@huawei.com>
Signed-off-by: NJason Gunthorpe <jgg@nvidia.com>
上级 ab5cbb9d
...@@ -6114,35 +6114,32 @@ static int hns_roce_v2_init_eq_table(struct hns_roce_dev *hr_dev) ...@@ -6114,35 +6114,32 @@ static int hns_roce_v2_init_eq_table(struct hns_roce_dev *hr_dev)
ret = hns_roce_v2_create_eq(hr_dev, eq, eq_cmd); ret = hns_roce_v2_create_eq(hr_dev, eq, eq_cmd);
if (ret) { if (ret) {
dev_err(dev, "eq create failed.\n"); dev_err(dev, "failed to create eq.\n");
goto err_create_eq_fail; goto err_create_eq_fail;
} }
} }
/* enable irq */ hr_dev->irq_workq = alloc_ordered_workqueue("hns_roce_irq_workq", 0);
hns_roce_v2_int_mask_enable(hr_dev, eq_num, EQ_ENABLE); if (!hr_dev->irq_workq) {
dev_err(dev, "failed to create irq workqueue.\n");
ret = -ENOMEM;
goto err_create_eq_fail;
}
ret = __hns_roce_request_irq(hr_dev, irq_num, comp_num, ret = __hns_roce_request_irq(hr_dev, irq_num, comp_num, aeq_num,
aeq_num, other_num); other_num);
if (ret) { if (ret) {
dev_err(dev, "Request irq failed.\n"); dev_err(dev, "failed to request irq.\n");
goto err_request_irq_fail; goto err_request_irq_fail;
} }
hr_dev->irq_workq = alloc_ordered_workqueue("hns_roce_irq_workq", 0); /* enable irq */
if (!hr_dev->irq_workq) { hns_roce_v2_int_mask_enable(hr_dev, eq_num, EQ_ENABLE);
dev_err(dev, "Create irq workqueue failed!\n");
ret = -ENOMEM;
goto err_create_wq_fail;
}
return 0; return 0;
err_create_wq_fail:
__hns_roce_free_irq(hr_dev);
err_request_irq_fail: err_request_irq_fail:
hns_roce_v2_int_mask_enable(hr_dev, eq_num, EQ_DISABLE); destroy_workqueue(hr_dev->irq_workq);
err_create_eq_fail: err_create_eq_fail:
for (i -= 1; i >= 0; i--) for (i -= 1; i >= 0; i--)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册