mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 18:51:56 -04:00
qed*: Utilize FW 8.33.11.0
This FW contains several fixes and features RDMA Features - SRQ support - XRC support - Memory window support - RDMA low latency queue support - RDMA bonding support RDMA bug fixes - RDMA remote invalidate during retransmit fix - iWARP MPA connect interop issue with RTR fix - iWARP Legacy DPM support - Fix MPA reject flow - iWARP error handling - RQ WQE validation checks MISC - Fix some HSI types endianity - New Restriction: vlan insertion in core_tx_bd_data can't be set for LB packets ETH - HW QoS offload support - Fix vlan, dcb and sriov flow of VF sending a packet with inband VLAN tag instead of default VLAN - Allow GRE version 1 offloads in RX flow - Allow VXLAN steering iSCSI / FcoE - Fix bd availability checking flow - Support 256th sge proerly in iscsi/fcoe retransmit - Performance improvement - Fix handle iSCSI command arrival with AHS and with immediate - Fix ipv6 traffic class configuration DEBUG - Update debug utilities Signed-off-by: Michal Kalderon <[email protected]> Signed-off-by: Tomer Tayar <[email protected]> Signed-off-by: Manish Rangankar <[email protected]> Signed-off-by: Ariel Elior <[email protected]> Acked-by: Jason Gunthorpe <[email protected]> Signed-off-by: David S. Miller <[email protected]>
This commit is contained in:
parent
18dcbe12fe
commit
50bc60cb15
14 changed files with 1310 additions and 1147 deletions
|
|
@ -45,7 +45,7 @@ struct rdma_cqe_responder {
|
|||
__le32 imm_data_or_inv_r_Key;
|
||||
__le32 length;
|
||||
__le32 imm_data_hi;
|
||||
__le16 rq_cons;
|
||||
__le16 rq_cons_or_srq_id;
|
||||
u8 flags;
|
||||
#define RDMA_CQE_RESPONDER_TOGGLE_BIT_MASK 0x1
|
||||
#define RDMA_CQE_RESPONDER_TOGGLE_BIT_SHIFT 0
|
||||
|
|
@ -115,6 +115,7 @@ enum rdma_cqe_requester_status_enum {
|
|||
RDMA_CQE_REQ_STS_RNR_NAK_RETRY_CNT_ERR,
|
||||
RDMA_CQE_REQ_STS_TRANSPORT_RETRY_CNT_ERR,
|
||||
RDMA_CQE_REQ_STS_WORK_REQUEST_FLUSHED_ERR,
|
||||
RDMA_CQE_REQ_STS_XRC_VOILATION_ERR,
|
||||
MAX_RDMA_CQE_REQUESTER_STATUS_ENUM
|
||||
};
|
||||
|
||||
|
|
@ -136,6 +137,7 @@ enum rdma_cqe_type {
|
|||
RDMA_CQE_TYPE_REQUESTER,
|
||||
RDMA_CQE_TYPE_RESPONDER_RQ,
|
||||
RDMA_CQE_TYPE_RESPONDER_SRQ,
|
||||
RDMA_CQE_TYPE_RESPONDER_XRC_SRQ,
|
||||
RDMA_CQE_TYPE_INVALID,
|
||||
MAX_RDMA_CQE_TYPE
|
||||
};
|
||||
|
|
|
|||
|
|
@ -3695,7 +3695,7 @@ static int process_resp_flush(struct qedr_qp *qp, struct qedr_cq *cq,
|
|||
static void try_consume_resp_cqe(struct qedr_cq *cq, struct qedr_qp *qp,
|
||||
struct rdma_cqe_responder *resp, int *update)
|
||||
{
|
||||
if (le16_to_cpu(resp->rq_cons) == qp->rq.wqe_cons) {
|
||||
if (le16_to_cpu(resp->rq_cons_or_srq_id) == qp->rq.wqe_cons) {
|
||||
consume_cqe(cq);
|
||||
*update |= 1;
|
||||
}
|
||||
|
|
@ -3710,7 +3710,7 @@ static int qedr_poll_cq_resp(struct qedr_dev *dev, struct qedr_qp *qp,
|
|||
|
||||
if (resp->status == RDMA_CQE_RESP_STS_WORK_REQUEST_FLUSHED_ERR) {
|
||||
cnt = process_resp_flush(qp, cq, num_entries, wc,
|
||||
resp->rq_cons);
|
||||
resp->rq_cons_or_srq_id);
|
||||
try_consume_resp_cqe(cq, qp, resp, update);
|
||||
} else {
|
||||
cnt = process_resp_one(dev, qp, cq, wc, resp);
|
||||
|
|
|
|||
Loading…
Reference in a new issue