mirror of https://gitee.com/openkylin/linux.git
[PATCH] IB/mthca: fill in opcode field for send completions
Fill in missing fields in send completions. Signed-off-by: Itamar Rabenstein <itamar@mellanox.co.il> Signed-off-by: Michael S. Tsirkin <mst@mellanox.co.il> Signed-off-by: Roland Dreier <roland@topspin.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
44ea66879d
commit
2a4443a699
|
@ -473,7 +473,41 @@ static inline int mthca_poll_one(struct mthca_dev *dev,
|
|||
}
|
||||
|
||||
if (is_send) {
|
||||
entry->opcode = IB_WC_SEND; /* XXX */
|
||||
entry->wc_flags = 0;
|
||||
switch (cqe->opcode) {
|
||||
case MTHCA_OPCODE_RDMA_WRITE:
|
||||
entry->opcode = IB_WC_RDMA_WRITE;
|
||||
break;
|
||||
case MTHCA_OPCODE_RDMA_WRITE_IMM:
|
||||
entry->opcode = IB_WC_RDMA_WRITE;
|
||||
entry->wc_flags |= IB_WC_WITH_IMM;
|
||||
break;
|
||||
case MTHCA_OPCODE_SEND:
|
||||
entry->opcode = IB_WC_SEND;
|
||||
break;
|
||||
case MTHCA_OPCODE_SEND_IMM:
|
||||
entry->opcode = IB_WC_SEND;
|
||||
entry->wc_flags |= IB_WC_WITH_IMM;
|
||||
break;
|
||||
case MTHCA_OPCODE_RDMA_READ:
|
||||
entry->opcode = IB_WC_RDMA_READ;
|
||||
entry->byte_len = be32_to_cpu(cqe->byte_cnt);
|
||||
break;
|
||||
case MTHCA_OPCODE_ATOMIC_CS:
|
||||
entry->opcode = IB_WC_COMP_SWAP;
|
||||
entry->byte_len = be32_to_cpu(cqe->byte_cnt);
|
||||
break;
|
||||
case MTHCA_OPCODE_ATOMIC_FA:
|
||||
entry->opcode = IB_WC_FETCH_ADD;
|
||||
entry->byte_len = be32_to_cpu(cqe->byte_cnt);
|
||||
break;
|
||||
case MTHCA_OPCODE_BIND_MW:
|
||||
entry->opcode = IB_WC_BIND_MW;
|
||||
break;
|
||||
default:
|
||||
entry->opcode = MTHCA_OPCODE_INVALID;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
entry->byte_len = be32_to_cpu(cqe->byte_cnt);
|
||||
switch (cqe->opcode & 0x1f) {
|
||||
|
|
|
@ -88,6 +88,19 @@ enum {
|
|||
MTHCA_NUM_EQ
|
||||
};
|
||||
|
||||
enum {
|
||||
MTHCA_OPCODE_NOP = 0x00,
|
||||
MTHCA_OPCODE_RDMA_WRITE = 0x08,
|
||||
MTHCA_OPCODE_RDMA_WRITE_IMM = 0x09,
|
||||
MTHCA_OPCODE_SEND = 0x0a,
|
||||
MTHCA_OPCODE_SEND_IMM = 0x0b,
|
||||
MTHCA_OPCODE_RDMA_READ = 0x10,
|
||||
MTHCA_OPCODE_ATOMIC_CS = 0x11,
|
||||
MTHCA_OPCODE_ATOMIC_FA = 0x12,
|
||||
MTHCA_OPCODE_BIND_MW = 0x18,
|
||||
MTHCA_OPCODE_INVALID = 0xff
|
||||
};
|
||||
|
||||
struct mthca_cmd {
|
||||
int use_events;
|
||||
struct semaphore hcr_sem;
|
||||
|
|
|
@ -170,19 +170,6 @@ enum {
|
|||
MTHCA_QP_OPTPAR_SCHED_QUEUE = 1 << 16
|
||||
};
|
||||
|
||||
enum {
|
||||
MTHCA_OPCODE_NOP = 0x00,
|
||||
MTHCA_OPCODE_RDMA_WRITE = 0x08,
|
||||
MTHCA_OPCODE_RDMA_WRITE_IMM = 0x09,
|
||||
MTHCA_OPCODE_SEND = 0x0a,
|
||||
MTHCA_OPCODE_SEND_IMM = 0x0b,
|
||||
MTHCA_OPCODE_RDMA_READ = 0x10,
|
||||
MTHCA_OPCODE_ATOMIC_CS = 0x11,
|
||||
MTHCA_OPCODE_ATOMIC_FA = 0x12,
|
||||
MTHCA_OPCODE_BIND_MW = 0x18,
|
||||
MTHCA_OPCODE_INVALID = 0xff
|
||||
};
|
||||
|
||||
enum {
|
||||
MTHCA_NEXT_DBD = 1 << 7,
|
||||
MTHCA_NEXT_FENCE = 1 << 6,
|
||||
|
|
Loading…
Reference in New Issue