Commit 3631dadf authored by Weihang Li's avatar Weihang Li Committed by Jason Gunthorpe
Browse files

RDMA/hns: Avoid setting loopback indicator when smac is same as dmac

The loopback flag will be set to 1 by the hardware when the source mac
address is same as the destination mac address. So the driver don't need
to compare them.

Fixes: d6a3627e ("RDMA/hns: Optimize wqe buffer set flow for post send")
Link: https://lore.kernel.org/r/1605526408-6936-4-git-send-email-liweihang@huawei.com


Signed-off-by: default avatarWeihang Li <liweihang@huawei.com>
Signed-off-by: default avatarJason Gunthorpe <jgg@nvidia.com>
parent fba429fc
Loading
Loading
Loading
Loading
+0 −9
Original line number Diff line number Diff line
@@ -433,8 +433,6 @@ static inline int set_ud_wqe(struct hns_roce_qp *qp,
	unsigned int curr_idx = *sge_idx;
	int valid_num_sge;
	u32 msg_len = 0;
	bool loopback;
	u8 *smac;
	int ret;

	valid_num_sge = calc_wr_sge_num(wr, &msg_len);
@@ -457,13 +455,6 @@ static inline int set_ud_wqe(struct hns_roce_qp *qp,
	roce_set_field(ud_sq_wqe->byte_48, V2_UD_SEND_WQE_BYTE_48_DMAC_5_M,
		       V2_UD_SEND_WQE_BYTE_48_DMAC_5_S, ah->av.mac[5]);

	/* MAC loopback */
	smac = (u8 *)hr_dev->dev_addr[qp->port];
	loopback = ether_addr_equal_unaligned(ah->av.mac, smac) ? 1 : 0;

	roce_set_bit(ud_sq_wqe->byte_40,
		     V2_UD_SEND_WQE_BYTE_40_LBI_S, loopback);

	ud_sq_wqe->msg_len = cpu_to_le32(msg_len);

	/* Set sig attr */