On 2021/1/5 14:56, Leon Romanovsky wrote: > On Tue, Jan 05, 2021 at 09:36:55AM +0800, Weihang Li wrote: >> HIP09 supports UD inline up to size of 1024 Bytes, the caps flag is got >> from firmware and passed back to userspace when creating QP. >> >> Signed-off-by: Weihang Li <liweihang@xxxxxxxxxx> >> --- >> drivers/infiniband/hw/hns/hns_roce_device.h | 1 + >> drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 3 +++ >> drivers/infiniband/hw/hns/hns_roce_hw_v2.h | 1 + >> drivers/infiniband/hw/hns/hns_roce_qp.c | 3 +++ >> include/uapi/rdma/hns-abi.h | 1 + >> 5 files changed, 9 insertions(+) >> >> diff --git a/drivers/infiniband/hw/hns/hns_roce_device.h b/drivers/infiniband/hw/hns/hns_roce_device.h >> index 55d5386..87716da 100644 >> --- a/drivers/infiniband/hw/hns/hns_roce_device.h >> +++ b/drivers/infiniband/hw/hns/hns_roce_device.h >> @@ -214,6 +214,7 @@ enum { >> HNS_ROCE_CAP_FLAG_FRMR = BIT(8), >> HNS_ROCE_CAP_FLAG_QP_FLOW_CTRL = BIT(9), >> HNS_ROCE_CAP_FLAG_ATOMIC = BIT(10), >> + HNS_ROCE_CAP_FLAG_UD_SQ_INL = BIT(13), >> HNS_ROCE_CAP_FLAG_SDI_MODE = BIT(14), >> HNS_ROCE_CAP_FLAG_STASH = BIT(17), >> }; >> diff --git a/drivers/infiniband/hw/hns/hns_roce_hw_v2.c b/drivers/infiniband/hw/hns/hns_roce_hw_v2.c >> index 833e1f2..619e828 100644 >> --- a/drivers/infiniband/hw/hns/hns_roce_hw_v2.c >> +++ b/drivers/infiniband/hw/hns/hns_roce_hw_v2.c >> @@ -1916,6 +1916,8 @@ static void set_default_caps(struct hns_roce_dev *hr_dev) >> caps->gmv_buf_pg_sz = 0; >> caps->gid_table_len[0] = caps->gmv_bt_num * (HNS_HW_PAGE_SIZE / >> caps->gmv_entry_sz); >> + caps->flags |= HNS_ROCE_CAP_FLAG_UD_SQ_INL; >> + caps->max_sq_inline = HNS_ROCE_V2_MAX_SQ_INL_EXT; > > You are doing very similar assignment in the top of set_default_caps(). > 1803 caps->max_sq_inline = HNS_ROCE_V2_MAX_SQ_INLINE; > > IMHO, it will be better to have one assignment instead of overwrite in > the same function. > > Thanks > Thanks for your advice, will avoid overwriting fields in this funtion. Weihang