On 2020/7/27 18:51, Leon Romanovsky wrote: > On Mon, Jul 27, 2020 at 04:10:44PM +0800, Weihang Li wrote: >> The parts about preparing and sending mailbox to hardware is not strongly >> related to other codes in hns_roce_v2_set_hem(), and can be encapsulated >> into a separate function. >> >> Signed-off-by: Weihang Li <liweihang@xxxxxxxxxx> >> --- >> drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 45 +++++++++++++++++------------- >> 1 file changed, 26 insertions(+), 19 deletions(-) >> >> diff --git a/drivers/infiniband/hw/hns/hns_roce_hw_v2.c b/drivers/infiniband/hw/hns/hns_roce_hw_v2.c >> index 35d46b7..0eab92a 100644 >> --- a/drivers/infiniband/hw/hns/hns_roce_hw_v2.c >> +++ b/drivers/infiniband/hw/hns/hns_roce_hw_v2.c >> @@ -3373,11 +3373,33 @@ static int get_op_for_set_hem(struct hns_roce_dev *hr_dev, u32 type, >> return op + step_idx; >> } >> >> +static int set_hem_to_hw(struct hns_roce_dev *hr_dev, int obj, u64 bt_ba, >> + u32 hem_type, int step_idx) >> +{ >> + struct hns_roce_cmd_mailbox *mailbox; >> + int ret; >> + int op; >> + >> + op = get_op_for_set_hem(hr_dev, hem_type, step_idx); >> + if (op == -EINVAL) >> + return 0; > > It is not how we write error checks "if (op < 0) return 0;" > > Thanks > Thanks for your comments, will modify it. Weihang