patches for DPDK stable branches
 help / color / mirror / Atom feed
From: Kevin Traynor <ktraynor@redhat.com>
To: Manish Chopra <manishc@marvell.com>
Cc: Shahed Shaikh <shshaikh@marvell.com>,
	Rasesh Mody <rmody@marvell.com>, dpdk stable <stable@dpdk.org>
Subject: [dpdk-stable] patch 'net/qede: fix VF reload' has been queued to LTS release 18.11.7
Date: Thu, 27 Feb 2020 17:37:54 +0000
Message-ID: <20200227173807.28004-3-ktraynor@redhat.com> (raw)
In-Reply-To: <20200227173807.28004-1-ktraynor@redhat.com>

Hi,

FYI, your patch has been queued to LTS release 18.11.7

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 03/02/20. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/a90d891383446684f50f68eb7f47fb7a6a31e14f

Thanks.

Kevin.

---
From a90d891383446684f50f68eb7f47fb7a6a31e14f Mon Sep 17 00:00:00 2001
From: Manish Chopra <manishc@marvell.com>
Date: Thu, 6 Feb 2020 12:01:45 -0800
Subject: [PATCH] net/qede: fix VF reload

[ upstream commit f44ca48c81e823edda67189220a4bf7659cc22c1 ]

On ungraceful termination of DPDK application, PMD VF driver
fails to re-load due to PF seeing the VF in unexpected state
during VF acquisition handshake.

This patch fixes it by allowing VF to request the PF for soft
FLR during the load in such cases so that it can get cleanly
re-loaded.

Fixes: 2ea6f76aff40 ("qede: add core driver")

Signed-off-by: Manish Chopra <manishc@marvell.com>
Signed-off-by: Shahed Shaikh <shshaikh@marvell.com>
Signed-off-by: Rasesh Mody <rmody@marvell.com>
Acked-by: Rasesh Mody <rmody@marvell.com>
---
 drivers/net/qede/base/ecore_dev.c     |  2 +-
 drivers/net/qede/base/ecore_dev_api.h |  3 ++
 drivers/net/qede/base/ecore_iov_api.h |  1 +
 drivers/net/qede/base/ecore_sriov.c   | 33 ++++++++++++++++
 drivers/net/qede/base/ecore_vf.c      | 55 +++++++++++++++++++++++++--
 drivers/net/qede/base/ecore_vf.h      | 11 +++++-
 drivers/net/qede/base/ecore_vf_api.h  |  3 ++
 drivers/net/qede/base/ecore_vfpf_if.h | 41 ++++++++++++++++++++
 drivers/net/qede/base/mcp_public.h    |  2 +
 drivers/net/qede/qede_main.c          |  4 ++
 10 files changed, 149 insertions(+), 6 deletions(-)

diff --git a/drivers/net/qede/base/ecore_dev.c b/drivers/net/qede/base/ecore_dev.c
index d7e1d7b32a..1e6e1a1b38 100644
--- a/drivers/net/qede/base/ecore_dev.c
+++ b/drivers/net/qede/base/ecore_dev.c
@@ -5501,5 +5501,5 @@ ecore_hw_prepare_single(struct ecore_hwfn *p_hwfn, void OSAL_IOMEM *p_regview,
 
 	if (IS_VF(p_dev))
-		return ecore_vf_hw_prepare(p_hwfn);
+		return ecore_vf_hw_prepare(p_hwfn, p_params);
 
 	/* Validate that chip access is feasible */
diff --git a/drivers/net/qede/base/ecore_dev_api.h b/drivers/net/qede/base/ecore_dev_api.h
index 7308063218..69db0f910b 100644
--- a/drivers/net/qede/base/ecore_dev_api.h
+++ b/drivers/net/qede/base/ecore_dev_api.h
@@ -278,4 +278,7 @@ struct ecore_hw_prepare_params {
 	/* Indicates whether this PF serves a storage target */
 	bool b_is_target;
+
+	/* retry count for VF acquire on channel timeout */
+	u8 acquire_retry_cnt;
 };
 
diff --git a/drivers/net/qede/base/ecore_iov_api.h b/drivers/net/qede/base/ecore_iov_api.h
index 55de7086da..d65d80a8ef 100644
--- a/drivers/net/qede/base/ecore_iov_api.h
+++ b/drivers/net/qede/base/ecore_iov_api.h
@@ -52,4 +52,5 @@ enum ecore_iov_pf_to_vf_status {
 	PFVF_STATUS_FORCED,
 	PFVF_STATUS_MALICIOUS,
+	PFVF_STATUS_ACQUIRED,
 };
 
diff --git a/drivers/net/qede/base/ecore_sriov.c b/drivers/net/qede/base/ecore_sriov.c
index 7d73ef9fbe..748252a42f 100644
--- a/drivers/net/qede/base/ecore_sriov.c
+++ b/drivers/net/qede/base/ecore_sriov.c
@@ -62,4 +62,37 @@ const char *qede_ecore_channel_tlvs_string[] = {
 	"CHANNEL_TLV_BULLETIN_UPDATE_MAC",
 	"CHANNEL_TLV_UPDATE_MTU",
+	"CHANNEL_TLV_RDMA_ACQUIRE",
+	"CHANNEL_TLV_RDMA_START",
+	"CHANNEL_TLV_RDMA_STOP",
+	"CHANNEL_TLV_RDMA_ADD_USER",
+	"CHANNEL_TLV_RDMA_REMOVE_USER",
+	"CHANNEL_TLV_RDMA_QUERY_COUNTERS",
+	"CHANNEL_TLV_RDMA_ALLOC_TID",
+	"CHANNEL_TLV_RDMA_REGISTER_TID",
+	"CHANNEL_TLV_RDMA_DEREGISTER_TID",
+	"CHANNEL_TLV_RDMA_FREE_TID",
+	"CHANNEL_TLV_RDMA_CREATE_CQ",
+	"CHANNEL_TLV_RDMA_RESIZE_CQ",
+	"CHANNEL_TLV_RDMA_DESTROY_CQ",
+	"CHANNEL_TLV_RDMA_CREATE_QP",
+	"CHANNEL_TLV_RDMA_MODIFY_QP",
+	"CHANNEL_TLV_RDMA_QUERY_QP",
+	"CHANNEL_TLV_RDMA_DESTROY_QP",
+	"CHANNEL_TLV_RDMA_CREATE_SRQ",
+	"CHANNEL_TLV_RDMA_MODIFY_SRQ",
+	"CHANNEL_TLV_RDMA_DESTROY_SRQ",
+	"CHANNEL_TLV_RDMA_QUERY_PORT",
+	"CHANNEL_TLV_RDMA_QUERY_DEVICE",
+	"CHANNEL_TLV_RDMA_IWARP_CONNECT",
+	"CHANNEL_TLV_RDMA_IWARP_ACCEPT",
+	"CHANNEL_TLV_RDMA_IWARP_CREATE_LISTEN",
+	"CHANNEL_TLV_RDMA_IWARP_DESTROY_LISTEN",
+	"CHANNEL_TLV_RDMA_IWARP_PAUSE_LISTEN",
+	"CHANNEL_TLV_RDMA_IWARP_REJECT",
+	"CHANNEL_TLV_RDMA_IWARP_SEND_RTR",
+	"CHANNEL_TLV_ESTABLISH_LL2_CONN",
+	"CHANNEL_TLV_TERMINATE_LL2_CONN",
+	"CHANNEL_TLV_ASYNC_EVENT",
+	"CHANNEL_TLV_SOFT_FLR",
 	"CHANNEL_TLV_MAX"
 };
diff --git a/drivers/net/qede/base/ecore_vf.c b/drivers/net/qede/base/ecore_vf.c
index 3ba6a0cf2e..a18beaa1df 100644
--- a/drivers/net/qede/base/ecore_vf.c
+++ b/drivers/net/qede/base/ecore_vf.c
@@ -227,5 +227,4 @@ enum _ecore_status_t ecore_vf_pf_release(struct ecore_hwfn *p_hwfn)
 }
 
-#define VF_ACQUIRE_THRESH 3
 static void ecore_vf_pf_acquire_reduce_resc(struct ecore_hwfn *p_hwfn,
 					    struct vf_pf_resc_request *p_req,
@@ -252,5 +251,38 @@ static void ecore_vf_pf_acquire_reduce_resc(struct ecore_hwfn *p_hwfn,
 }
 
-static enum _ecore_status_t ecore_vf_pf_acquire(struct ecore_hwfn *p_hwfn)
+static enum _ecore_status_t
+ecore_vf_pf_soft_flr_acquire(struct ecore_hwfn *p_hwfn)
+{
+	struct ecore_vf_iov *p_iov = p_hwfn->vf_iov_info;
+	struct pfvf_def_resp_tlv *resp;
+	struct vfpf_soft_flr_tlv *req;
+	enum _ecore_status_t rc;
+
+	req = ecore_vf_pf_prep(p_hwfn, CHANNEL_TLV_SOFT_FLR, sizeof(*req));
+
+	/* add list termination tlv */
+	ecore_add_tlv(&p_iov->offset,
+		      CHANNEL_TLV_LIST_END,
+		      sizeof(struct channel_list_end_tlv));
+
+	resp = &p_iov->pf2vf_reply->default_resp;
+	rc = ecore_send_msg2pf(p_hwfn, &resp->hdr.status, sizeof(*resp));
+
+	DP_VERBOSE(p_hwfn, ECORE_MSG_IOV, "rc=0x%x\n", rc);
+
+	/* to release the mutex as ecore_vf_pf_acquire() take the mutex */
+	ecore_vf_pf_req_end(p_hwfn, ECORE_AGAIN);
+
+	/* As of today, there is no mechanism in place for VF to know the FLR
+	 * status, so sufficiently (worst case time) wait for FLR to complete,
+	 * as mailbox request to MFW by the PF for initiating VF flr and PF
+	 * processing VF FLR could take time.
+	 */
+	OSAL_MSLEEP(3000);
+
+	return ecore_vf_pf_acquire(p_hwfn);
+}
+
+enum _ecore_status_t ecore_vf_pf_acquire(struct ecore_hwfn *p_hwfn)
 {
 	struct ecore_vf_iov *p_iov = p_hwfn->vf_iov_info;
@@ -258,4 +290,5 @@ static enum _ecore_status_t ecore_vf_pf_acquire(struct ecore_hwfn *p_hwfn)
 	struct pf_vf_pfdev_info *pfdev_info = &resp->pfdev_info;
 	struct ecore_vf_acquire_sw_info vf_sw_info;
+	u8 retry_cnt = p_iov->acquire_retry_cnt;
 	struct vf_pf_resc_request *p_resc;
 	bool resources_acquired = false;
@@ -318,4 +351,12 @@ static enum _ecore_status_t ecore_vf_pf_acquire(struct ecore_hwfn *p_hwfn)
 		rc = ecore_send_msg2pf(p_hwfn,
 				       &resp->hdr.status, sizeof(*resp));
+
+		if (retry_cnt && rc == ECORE_TIMEOUT) {
+			DP_VERBOSE(p_hwfn, ECORE_MSG_IOV,
+				   "VF retrying to acquire due to VPC timeout\n");
+			retry_cnt--;
+			continue;
+		}
+
 		if (rc != ECORE_SUCCESS)
 			goto exit;
@@ -343,5 +384,5 @@ static enum _ecore_status_t ecore_vf_pf_acquire(struct ecore_hwfn *p_hwfn)
 		} /* PF refuses to allocate our resources */
 		else if (resp->hdr.status == PFVF_STATUS_NO_RESOURCE &&
-			 attempts < VF_ACQUIRE_THRESH) {
+			 attempts < ECORE_VF_ACQUIRE_THRESH) {
 			ecore_vf_pf_acquire_reduce_resc(p_hwfn, p_resc,
 							&resp->resc);
@@ -391,4 +432,7 @@ static enum _ecore_status_t ecore_vf_pf_acquire(struct ecore_hwfn *p_hwfn)
 			rc = ECORE_INVAL;
 			goto exit;
+		} else if (resp->hdr.status == PFVF_STATUS_ACQUIRED) {
+			ecore_vf_pf_req_end(p_hwfn, ECORE_AGAIN);
+			return ecore_vf_pf_soft_flr_acquire(p_hwfn);
 		} else {
 			DP_ERR(p_hwfn,
@@ -477,5 +521,7 @@ u32 ecore_vf_hw_bar_size(struct ecore_hwfn *p_hwfn,
 }
 
-enum _ecore_status_t ecore_vf_hw_prepare(struct ecore_hwfn *p_hwfn)
+enum _ecore_status_t
+ecore_vf_hw_prepare(struct ecore_hwfn *p_hwfn,
+		    struct ecore_hw_prepare_params *p_params)
 {
 	struct ecore_hwfn *p_lead = ECORE_LEADING_HWFN(p_hwfn->p_dev);
@@ -583,4 +629,5 @@ enum _ecore_status_t ecore_vf_hw_prepare(struct ecore_hwfn *p_hwfn)
 	OSAL_MUTEX_INIT(&p_iov->mutex);
 
+	p_iov->acquire_retry_cnt = p_params->acquire_retry_cnt;
 	p_hwfn->vf_iov_info = p_iov;
 
diff --git a/drivers/net/qede/base/ecore_vf.h b/drivers/net/qede/base/ecore_vf.h
index a07f82ebd9..f027eba3ea 100644
--- a/drivers/net/qede/base/ecore_vf.h
+++ b/drivers/net/qede/base/ecore_vf.h
@@ -12,4 +12,5 @@
 #include "ecore_l2_api.h"
 #include "ecore_vfpf_if.h"
+#include "ecore_dev_api.h"
 
 /* Default number of CIDs [total of both Rx and Tx] to be requested
@@ -60,4 +61,7 @@ struct ecore_vf_iov {
 	 */
 	bool b_doorbell_bar;
+
+	/* retry count for VF acquire on channel timeout */
+	u8 acquire_retry_cnt;
 };
 
@@ -73,4 +77,6 @@ enum _ecore_status_t ecore_vf_pf_get_coalesce(struct ecore_hwfn *p_hwfn,
 					      u16 *p_coal,
 					      struct ecore_queue_cid *p_cid);
+
+enum _ecore_status_t ecore_vf_pf_acquire(struct ecore_hwfn *p_hwfn);
 /**
  * @brief VF - Set Rx/Tx coalesce per VF's relative queue.
@@ -93,8 +99,11 @@ enum _ecore_status_t ecore_vf_pf_set_coalesce(struct ecore_hwfn *p_hwfn,
  *
  * @param p_hwfn
+ * @param p_params
  *
  * @return enum _ecore_status_t
  */
-enum _ecore_status_t ecore_vf_hw_prepare(struct ecore_hwfn *p_hwfn);
+enum _ecore_status_t
+ecore_vf_hw_prepare(struct ecore_hwfn *p_hwfn,
+		    struct ecore_hw_prepare_params *p_params);
 
 /**
diff --git a/drivers/net/qede/base/ecore_vf_api.h b/drivers/net/qede/base/ecore_vf_api.h
index 1a9fb3b1f2..43951a9a34 100644
--- a/drivers/net/qede/base/ecore_vf_api.h
+++ b/drivers/net/qede/base/ecore_vf_api.h
@@ -12,4 +12,7 @@
 
 #ifdef CONFIG_ECORE_SRIOV
+
+#define ECORE_VF_ACQUIRE_THRESH 3
+
 /**
  * @brief Read the VF bulletin and act on it if needed
diff --git a/drivers/net/qede/base/ecore_vfpf_if.h b/drivers/net/qede/base/ecore_vfpf_if.h
index c7ecb01c28..f92dc428af 100644
--- a/drivers/net/qede/base/ecore_vfpf_if.h
+++ b/drivers/net/qede/base/ecore_vfpf_if.h
@@ -252,4 +252,11 @@ struct vfpf_qid_tlv {
 };
 
+/* Soft FLR req */
+struct vfpf_soft_flr_tlv {
+	struct vfpf_first_tlv first_tlv;
+	u32 reserved1;
+	u32 reserved2;
+};
+
 /* Setup Queue */
 struct vfpf_start_rxq_tlv {
@@ -558,4 +565,5 @@ union vfpf_tlvs {
 	struct vfpf_bulletin_update_mac_tlv	bulletin_update_mac;
 	struct vfpf_update_mtu_tlv		update_mtu;
+	struct vfpf_soft_flr_tlv		soft_flr;
 	struct tlv_buffer_size			tlv_buf_size;
 };
@@ -690,4 +698,37 @@ enum {
 	CHANNEL_TLV_BULLETIN_UPDATE_MAC,
 	CHANNEL_TLV_UPDATE_MTU,
+	CHANNEL_TLV_RDMA_ACQUIRE,
+	CHANNEL_TLV_RDMA_START,
+	CHANNEL_TLV_RDMA_STOP,
+	CHANNEL_TLV_RDMA_ADD_USER,
+	CHANNEL_TLV_RDMA_REMOVE_USER,
+	CHANNEL_TLV_RDMA_QUERY_COUNTERS,
+	CHANNEL_TLV_RDMA_ALLOC_TID,
+	CHANNEL_TLV_RDMA_REGISTER_TID,
+	CHANNEL_TLV_RDMA_DEREGISTER_TID,
+	CHANNEL_TLV_RDMA_FREE_TID,
+	CHANNEL_TLV_RDMA_CREATE_CQ,
+	CHANNEL_TLV_RDMA_RESIZE_CQ,
+	CHANNEL_TLV_RDMA_DESTROY_CQ,
+	CHANNEL_TLV_RDMA_CREATE_QP,
+	CHANNEL_TLV_RDMA_MODIFY_QP,
+	CHANNEL_TLV_RDMA_QUERY_QP,
+	CHANNEL_TLV_RDMA_DESTROY_QP,
+	CHANNEL_TLV_RDMA_QUERY_PORT,
+	CHANNEL_TLV_RDMA_QUERY_DEVICE,
+	CHANNEL_TLV_RDMA_IWARP_CONNECT,
+	CHANNEL_TLV_RDMA_IWARP_ACCEPT,
+	CHANNEL_TLV_RDMA_IWARP_CREATE_LISTEN,
+	CHANNEL_TLV_RDMA_IWARP_DESTROY_LISTEN,
+	CHANNEL_TLV_RDMA_IWARP_PAUSE_LISTEN,
+	CHANNEL_TLV_RDMA_IWARP_REJECT,
+	CHANNEL_TLV_RDMA_IWARP_SEND_RTR,
+	CHANNEL_TLV_ESTABLISH_LL2_CONN,
+	CHANNEL_TLV_TERMINATE_LL2_CONN,
+	CHANNEL_TLV_ASYNC_EVENT,
+	CHANNEL_TLV_RDMA_CREATE_SRQ,
+	CHANNEL_TLV_RDMA_MODIFY_SRQ,
+	CHANNEL_TLV_RDMA_DESTROY_SRQ,
+	CHANNEL_TLV_SOFT_FLR,
 	CHANNEL_TLV_MAX,
 
diff --git a/drivers/net/qede/base/mcp_public.h b/drivers/net/qede/base/mcp_public.h
index 13c2e2d116..2a2494585a 100644
--- a/drivers/net/qede/base/mcp_public.h
+++ b/drivers/net/qede/base/mcp_public.h
@@ -1274,4 +1274,5 @@ struct public_drv_mb {
 #define DRV_MSG_CODE_INITIATE_FLR_DEPRECATED    0x02000000
 #define DRV_MSG_CODE_INITIATE_PF_FLR            0x02010000
+#define DRV_MSG_CODE_INITIATE_VF_FLR		0x02020000
 #define DRV_MSG_CODE_VF_DISABLED_DONE           0xc0000000
 #define DRV_MSG_CODE_CFG_VF_MSIX                0xc0010000
@@ -1705,4 +1706,5 @@ struct public_drv_mb {
 #define FW_MSG_CODE_VF_DISABLED_DONE            0xb0000000
 #define FW_MSG_CODE_DRV_CFG_VF_MSIX_DONE        0xb0010000
+#define FW_MSG_CODE_INITIATE_VF_FLR_OK		0xb0030000
 #define FW_MSG_CODE_FLR_ACK                     0x02000000
 #define FW_MSG_CODE_FLR_NACK                    0x02100000
diff --git a/drivers/net/qede/qede_main.c b/drivers/net/qede/qede_main.c
index ec6190b115..0ac4300465 100644
--- a/drivers/net/qede/qede_main.c
+++ b/drivers/net/qede/qede_main.c
@@ -57,4 +57,8 @@ qed_probe(struct ecore_dev *edev, struct rte_pci_device *pci_dev,
 
 	memset(&hw_prepare_params, 0, sizeof(hw_prepare_params));
+
+	if (is_vf)
+		hw_prepare_params.acquire_retry_cnt = ECORE_VF_ACQUIRE_THRESH;
+
 	hw_prepare_params.personality = ECORE_PCI_ETH;
 	hw_prepare_params.drv_resc_alloc = false;
-- 
2.21.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2020-02-27 17:26:23.837071478 +0000
+++ 0003-net-qede-fix-VF-reload.patch	2020-02-27 17:26:23.611831908 +0000
@@ -1 +1 @@
-From f44ca48c81e823edda67189220a4bf7659cc22c1 Mon Sep 17 00:00:00 2001
+From a90d891383446684f50f68eb7f47fb7a6a31e14f Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit f44ca48c81e823edda67189220a4bf7659cc22c1 ]
+
@@ -15 +16,0 @@
-Cc: stable@dpdk.org
@@ -35 +36 @@
-index f33b9910c0..86ecfb2690 100644
+index d7e1d7b32a..1e6e1a1b38 100644
@@ -38 +39 @@
-@@ -5618,5 +5618,5 @@ ecore_hw_prepare_single(struct ecore_hwfn *p_hwfn, void OSAL_IOMEM *p_regview,
+@@ -5501,5 +5501,5 @@ ecore_hw_prepare_single(struct ecore_hwfn *p_hwfn, void OSAL_IOMEM *p_regview,
@@ -46 +47 @@
-index 4d5cc1a0fa..5ea8427a07 100644
+index 7308063218..69db0f910b 100644
@@ -58 +59 @@
-index c998dbf8d5..5450018121 100644
+index 55de7086da..d65d80a8ef 100644
@@ -68 +69 @@
-index deee04ac4b..e60257e190 100644
+index 7d73ef9fbe..748252a42f 100644
@@ -110 +111 @@
-index c5c0814262..db03bc494f 100644
+index 3ba6a0cf2e..a18beaa1df 100644
@@ -159 +160,2 @@
-@@ -259,4 +291,5 @@ static enum _ecore_status_t ecore_vf_pf_acquire(struct ecore_hwfn *p_hwfn)
+@@ -258,4 +290,5 @@ static enum _ecore_status_t ecore_vf_pf_acquire(struct ecore_hwfn *p_hwfn)
+ 	struct pf_vf_pfdev_info *pfdev_info = &resp->pfdev_info;
@@ -161 +162,0 @@
- 	struct ecore_dev *p_dev = p_hwfn->p_dev;
@@ -165 +166 @@
-@@ -319,4 +352,12 @@ static enum _ecore_status_t ecore_vf_pf_acquire(struct ecore_hwfn *p_hwfn)
+@@ -318,4 +351,12 @@ static enum _ecore_status_t ecore_vf_pf_acquire(struct ecore_hwfn *p_hwfn)
@@ -178 +179 @@
-@@ -344,5 +385,5 @@ static enum _ecore_status_t ecore_vf_pf_acquire(struct ecore_hwfn *p_hwfn)
+@@ -343,5 +384,5 @@ static enum _ecore_status_t ecore_vf_pf_acquire(struct ecore_hwfn *p_hwfn)
@@ -185 +186 @@
-@@ -392,4 +433,7 @@ static enum _ecore_status_t ecore_vf_pf_acquire(struct ecore_hwfn *p_hwfn)
+@@ -391,4 +432,7 @@ static enum _ecore_status_t ecore_vf_pf_acquire(struct ecore_hwfn *p_hwfn)
@@ -193 +194 @@
-@@ -478,5 +522,7 @@ u32 ecore_vf_hw_bar_size(struct ecore_hwfn *p_hwfn,
+@@ -477,5 +521,7 @@ u32 ecore_vf_hw_bar_size(struct ecore_hwfn *p_hwfn,
@@ -202 +203 @@
-@@ -584,4 +630,5 @@ enum _ecore_status_t ecore_vf_hw_prepare(struct ecore_hwfn *p_hwfn)
+@@ -583,4 +629,5 @@ enum _ecore_status_t ecore_vf_hw_prepare(struct ecore_hwfn *p_hwfn)
@@ -319 +320 @@
-index 98b9723dd4..6667c2d7ab 100644
+index 13c2e2d116..2a2494585a 100644
@@ -322 +323 @@
-@@ -1291,4 +1291,5 @@ struct public_drv_mb {
+@@ -1274,4 +1274,5 @@ struct public_drv_mb {
@@ -328 +329 @@
-@@ -1750,4 +1751,5 @@ struct public_drv_mb {
+@@ -1705,4 +1706,5 @@ struct public_drv_mb {
@@ -332,2 +333,2 @@
- #define FW_MSG_CODE_ERR_RESOURCE_TEMPORARY_UNAVAILABLE	0x008b0000
- #define FW_MSG_CODE_ERR_RESOURCE_ALREADY_ALLOCATED	0x008c0000
+ #define FW_MSG_CODE_FLR_ACK                     0x02000000
+ #define FW_MSG_CODE_FLR_NACK                    0x02100000
@@ -335 +336 @@
-index 4eb79d0fbb..8580cbcd7f 100644
+index ec6190b115..0ac4300465 100644


  parent reply	other threads:[~2020-02-27 17:38 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-27 17:37 [dpdk-stable] patch 'examples/fips_validation: fix AES-GCM cipher length parsing' " Kevin Traynor
2020-02-27 17:37 ` [dpdk-stable] patch 'examples/fips_validation: fix string token for CT length' " Kevin Traynor
2020-02-27 17:37 ` Kevin Traynor [this message]
2020-02-27 17:37 ` [dpdk-stable] patch 'net/qede: do not stop vport if not started' " Kevin Traynor
2020-02-27 17:37 ` [dpdk-stable] patch 'net/ixgbe: check for illegal Tx packets' " Kevin Traynor
2020-02-27 17:37 ` [dpdk-stable] patch 'net/mlx5: fix tunnel flow priority' " Kevin Traynor
2020-02-27 17:37 ` [dpdk-stable] patch 'net/ixgbe: fix flow control mode setting' " Kevin Traynor
2020-02-27 17:37 ` [dpdk-stable] patch 'net/vhost: allocate interface name from heap' " Kevin Traynor
2020-02-27 17:38 ` [dpdk-stable] patch 'net/vhost: fix probing in secondary process' " Kevin Traynor
2020-02-27 17:38 ` [dpdk-stable] patch 'net/mlx5: fix L3 VXLAN RSS expansion' " Kevin Traynor
2020-02-27 17:38 ` [dpdk-stable] patch 'net/sfc: fix log format specifiers' " Kevin Traynor
2020-02-27 17:38 ` [dpdk-stable] patch 'net/fm10k: fix non-x86 build' " Kevin Traynor
2020-02-27 17:38 ` [dpdk-stable] patch 'examples/tep_term: remove redundant info get' " Kevin Traynor
2020-02-27 17:38 ` [dpdk-stable] patch 'app/testpmd: fix identifier size for port attach' " Kevin Traynor
2020-02-27 17:38 ` [dpdk-stable] patch 'net/mlx5: fix match on ethertype and CVLAN tag' " Kevin Traynor
2020-02-27 17:38 ` [dpdk-stable] patch 'doc: fix multi-producer enqueue figure in ring guide' " Kevin Traynor

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200227173807.28004-3-ktraynor@redhat.com \
    --to=ktraynor@redhat.com \
    --cc=manishc@marvell.com \
    --cc=rmody@marvell.com \
    --cc=shshaikh@marvell.com \
    --cc=stable@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

patches for DPDK stable branches

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://inbox.dpdk.org/stable/0 stable/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 stable stable/ https://inbox.dpdk.org/stable \
		stable@dpdk.org
	public-inbox-index stable

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://inbox.dpdk.org/inbox.dpdk.stable


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git