mirror of https://gitee.com/openkylin/linux.git
IB/hns: add self loopback for CM
This patch mainly adds self loopback support for CM. Signed-off-by: Lijun Ou <oulijun@huawei.com> Signed-off-by: Peter Chen <luck.chen@huawei.com> Reviewed-by: Wei Hu (Xavier) <xavier.huwei@huawei.com> Signed-off-by: Salil Mehta <salil.mehta@huawei.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
This commit is contained in:
parent
8d497eb0f3
commit
543bfe6c3c
|
@ -32,6 +32,7 @@
|
|||
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/acpi.h>
|
||||
#include <linux/etherdevice.h>
|
||||
#include <rdma/ib_umem.h>
|
||||
#include "hns_roce_common.h"
|
||||
#include "hns_roce_device.h"
|
||||
|
@ -72,6 +73,8 @@ int hns_roce_v1_post_send(struct ib_qp *ibqp, struct ib_send_wr *wr,
|
|||
int nreq = 0;
|
||||
u32 ind = 0;
|
||||
int ret = 0;
|
||||
u8 *smac;
|
||||
int loopback;
|
||||
|
||||
if (unlikely(ibqp->qp_type != IB_QPT_GSI &&
|
||||
ibqp->qp_type != IB_QPT_RC)) {
|
||||
|
@ -129,6 +132,14 @@ int hns_roce_v1_post_send(struct ib_qp *ibqp, struct ib_send_wr *wr,
|
|||
UD_SEND_WQE_U32_8_DMAC_5_M,
|
||||
UD_SEND_WQE_U32_8_DMAC_5_S,
|
||||
ah->av.mac[5]);
|
||||
|
||||
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->u32_8,
|
||||
UD_SEND_WQE_U32_8_LOOPBACK_INDICATOR_S,
|
||||
loopback);
|
||||
|
||||
roce_set_field(ud_sq_wqe->u32_8,
|
||||
UD_SEND_WQE_U32_8_OPERATION_TYPE_M,
|
||||
UD_SEND_WQE_U32_8_OPERATION_TYPE_S,
|
||||
|
|
|
@ -440,6 +440,8 @@ struct hns_roce_ud_send_wqe {
|
|||
#define UD_SEND_WQE_U32_8_DMAC_5_M \
|
||||
(((1UL << 8) - 1) << UD_SEND_WQE_U32_8_DMAC_5_S)
|
||||
|
||||
#define UD_SEND_WQE_U32_8_LOOPBACK_INDICATOR_S 22
|
||||
|
||||
#define UD_SEND_WQE_U32_8_OPERATION_TYPE_S 16
|
||||
#define UD_SEND_WQE_U32_8_OPERATION_TYPE_M \
|
||||
(((1UL << 4) - 1) << UD_SEND_WQE_U32_8_OPERATION_TYPE_S)
|
||||
|
|
Loading…
Reference in New Issue