patches for DPDK stable branches
 help / color / mirror / Atom feed
From: Yuanhan Liu <yliu@fridaylinux.org>
To: Ferruh Yigit <ferruh.yigit@intel.com>
Cc: Shreyansh Jain <shreyansh.jain@nxp.com>, dpdk stable <stable@dpdk.org>
Subject: [dpdk-stable] patch 'bus/dpaa: fix build when assert enabled' has been queued to LTS release 17.11.1
Date: Wed, 24 Jan 2018 23:31:12 +0800	[thread overview]
Message-ID: <1516808026-25523-4-git-send-email-yliu@fridaylinux.org> (raw)
In-Reply-To: <1516808026-25523-1-git-send-email-yliu@fridaylinux.org>

Hi,

FYI, your patch has been queued to LTS release 17.11.1

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

Thanks.

	--yliu

---
>From b1d6ccffd526db6983f1069d24bdadf73d353c75 Mon Sep 17 00:00:00 2001
From: Ferruh Yigit <ferruh.yigit@intel.com>
Date: Fri, 22 Dec 2017 02:13:16 +0000
Subject: [PATCH] bus/dpaa: fix build when assert enabled

[ upstream commit 996672d3514a3d2bd9ca8648c526e874f6b69232 ]

Enabling CONFIG_RTE_ENABLE_ASSERT cause build error because some fields
protected by RTE_LIBRTE_DPAA_HWDEBUG macro accessed within DPAA_ASSERT.

All DPAA_ASSERT macro usage causing the build error wrapped with
RTE_LIBRTE_DPAA_HWDEBUG macro.

Fixes: f38f61e982f8 ("bus/dpaa: add BMAN hardware interfaces")
Fixes: c47ff048b99a ("bus/dpaa: add QMAN driver core routines")

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Shreyansh Jain <shreyansh.jain@nxp.com>
---
 drivers/bus/dpaa/base/qbman/bman.h | 32 ++++++++++++++++---
 drivers/bus/dpaa/base/qbman/qman.c |  5 +++
 drivers/bus/dpaa/base/qbman/qman.h | 64 ++++++++++++++++++++++++++++++++++++--
 3 files changed, 94 insertions(+), 7 deletions(-)

diff --git a/drivers/bus/dpaa/base/qbman/bman.h b/drivers/bus/dpaa/base/qbman/bman.h
index 4b088da..ef0a896 100644
--- a/drivers/bus/dpaa/base/qbman/bman.h
+++ b/drivers/bus/dpaa/base/qbman/bman.h
@@ -228,7 +228,9 @@ static inline void bm_rcr_finish(struct bm_portal *portal)
 	u8 pi = bm_in(RCR_PI_CINH) & (BM_RCR_SIZE - 1);
 	u8 ci = bm_in(RCR_CI_CINH) & (BM_RCR_SIZE - 1);
 
+#ifdef RTE_LIBRTE_DPAA_HWDEBUG
 	DPAA_ASSERT(!rcr->busy);
+#endif
 	if (pi != RCR_PTR2IDX(rcr->cursor))
 		pr_crit("losing uncommitted RCR entries\n");
 	if (ci != rcr->ci)
@@ -241,7 +243,9 @@ static inline struct bm_rcr_entry *bm_rcr_start(struct bm_portal *portal)
 {
 	register struct bm_rcr *rcr = &portal->rcr;
 
+#ifdef RTE_LIBRTE_DPAA_HWDEBUG
 	DPAA_ASSERT(!rcr->busy);
+#endif
 	if (!rcr->available)
 		return NULL;
 #ifdef RTE_LIBRTE_DPAA_HWDEBUG
@@ -255,8 +259,8 @@ static inline void bm_rcr_abort(struct bm_portal *portal)
 {
 	__maybe_unused register struct bm_rcr *rcr = &portal->rcr;
 
-	DPAA_ASSERT(rcr->busy);
 #ifdef RTE_LIBRTE_DPAA_HWDEBUG
+	DPAA_ASSERT(rcr->busy);
 	rcr->busy = 0;
 #endif
 }
@@ -266,8 +270,10 @@ static inline struct bm_rcr_entry *bm_rcr_pend_and_next(
 {
 	register struct bm_rcr *rcr = &portal->rcr;
 
+#ifdef RTE_LIBRTE_DPAA_HWDEBUG
 	DPAA_ASSERT(rcr->busy);
 	DPAA_ASSERT(rcr->pmode != bm_rcr_pvb);
+#endif
 	if (rcr->available == 1)
 		return NULL;
 	rcr->cursor->__dont_write_directly__verb = myverb | rcr->vbit;
@@ -282,8 +288,10 @@ static inline void bm_rcr_pci_commit(struct bm_portal *portal, u8 myverb)
 {
 	register struct bm_rcr *rcr = &portal->rcr;
 
+#ifdef RTE_LIBRTE_DPAA_HWDEBUG
 	DPAA_ASSERT(rcr->busy);
 	DPAA_ASSERT(rcr->pmode == bm_rcr_pci);
+#endif
 	rcr->cursor->__dont_write_directly__verb = myverb | rcr->vbit;
 	RCR_INC(rcr);
 	rcr->available--;
@@ -298,7 +306,9 @@ static inline void bm_rcr_pce_prefetch(struct bm_portal *portal)
 {
 	__maybe_unused register struct bm_rcr *rcr = &portal->rcr;
 
+#ifdef RTE_LIBRTE_DPAA_HWDEBUG
 	DPAA_ASSERT(rcr->pmode == bm_rcr_pce);
+#endif
 	bm_cl_invalidate(RCR_PI);
 	bm_cl_touch_rw(RCR_PI);
 }
@@ -307,8 +317,10 @@ static inline void bm_rcr_pce_commit(struct bm_portal *portal, u8 myverb)
 {
 	register struct bm_rcr *rcr = &portal->rcr;
 
+#ifdef RTE_LIBRTE_DPAA_HWDEBUG
 	DPAA_ASSERT(rcr->busy);
 	DPAA_ASSERT(rcr->pmode == bm_rcr_pce);
+#endif
 	rcr->cursor->__dont_write_directly__verb = myverb | rcr->vbit;
 	RCR_INC(rcr);
 	rcr->available--;
@@ -324,8 +336,10 @@ static inline void bm_rcr_pvb_commit(struct bm_portal *portal, u8 myverb)
 	register struct bm_rcr *rcr = &portal->rcr;
 	struct bm_rcr_entry *rcursor;
 
+#ifdef RTE_LIBRTE_DPAA_HWDEBUG
 	DPAA_ASSERT(rcr->busy);
 	DPAA_ASSERT(rcr->pmode == bm_rcr_pvb);
+#endif
 	lwsync();
 	rcursor = rcr->cursor;
 	rcursor->__dont_write_directly__verb = myverb | rcr->vbit;
@@ -342,7 +356,9 @@ static inline u8 bm_rcr_cci_update(struct bm_portal *portal)
 	register struct bm_rcr *rcr = &portal->rcr;
 	u8 diff, old_ci = rcr->ci;
 
+#ifdef RTE_LIBRTE_DPAA_HWDEBUG
 	DPAA_ASSERT(rcr->cmode == bm_rcr_cci);
+#endif
 	rcr->ci = bm_in(RCR_CI_CINH) & (BM_RCR_SIZE - 1);
 	diff = bm_cyc_diff(BM_RCR_SIZE, old_ci, rcr->ci);
 	rcr->available += diff;
@@ -353,7 +369,9 @@ static inline void bm_rcr_cce_prefetch(struct bm_portal *portal)
 {
 	__maybe_unused register struct bm_rcr *rcr = &portal->rcr;
 
+#ifdef RTE_LIBRTE_DPAA_HWDEBUG
 	DPAA_ASSERT(rcr->cmode == bm_rcr_cce);
+#endif
 	bm_cl_touch_ro(RCR_CI);
 }
 
@@ -362,7 +380,9 @@ static inline u8 bm_rcr_cce_update(struct bm_portal *portal)
 	register struct bm_rcr *rcr = &portal->rcr;
 	u8 diff, old_ci = rcr->ci;
 
+#ifdef RTE_LIBRTE_DPAA_HWDEBUG
 	DPAA_ASSERT(rcr->cmode == bm_rcr_cce);
+#endif
 	rcr->ci = bm_cl_in(RCR_CI) & (BM_RCR_SIZE - 1);
 	bm_cl_invalidate(RCR_CI);
 	diff = bm_cyc_diff(BM_RCR_SIZE, old_ci, rcr->ci);
@@ -420,8 +440,8 @@ static inline void bm_mc_finish(struct bm_portal *portal)
 {
 	__maybe_unused register struct bm_mc *mc = &portal->mc;
 
-	DPAA_ASSERT(mc->state == mc_idle);
 #ifdef RTE_LIBRTE_DPAA_HWDEBUG
+	DPAA_ASSERT(mc->state == mc_idle);
 	if (mc->state != mc_idle)
 		pr_crit("Losing incomplete MC command\n");
 #endif
@@ -431,8 +451,8 @@ static inline struct bm_mc_command *bm_mc_start(struct bm_portal *portal)
 {
 	register struct bm_mc *mc = &portal->mc;
 
-	DPAA_ASSERT(mc->state == mc_idle);
 #ifdef RTE_LIBRTE_DPAA_HWDEBUG
+	DPAA_ASSERT(mc->state == mc_idle);
 	mc->state = mc_user;
 #endif
 	dcbz_64(mc->cr);
@@ -443,8 +463,8 @@ static inline void bm_mc_abort(struct bm_portal *portal)
 {
 	__maybe_unused register struct bm_mc *mc = &portal->mc;
 
-	DPAA_ASSERT(mc->state == mc_user);
 #ifdef RTE_LIBRTE_DPAA_HWDEBUG
+	DPAA_ASSERT(mc->state == mc_user);
 	mc->state = mc_idle;
 #endif
 }
@@ -454,7 +474,9 @@ static inline void bm_mc_commit(struct bm_portal *portal, u8 myverb)
 	register struct bm_mc *mc = &portal->mc;
 	struct bm_mc_result *rr = mc->rr + mc->rridx;
 
+#ifdef RTE_LIBRTE_DPAA_HWDEBUG
 	DPAA_ASSERT(mc->state == mc_user);
+#endif
 	lwsync();
 	mc->cr->__dont_write_directly__verb = myverb | mc->vbit;
 	dcbf(mc->cr);
@@ -469,7 +491,9 @@ static inline struct bm_mc_result *bm_mc_result(struct bm_portal *portal)
 	register struct bm_mc *mc = &portal->mc;
 	struct bm_mc_result *rr = mc->rr + mc->rridx;
 
+#ifdef RTE_LIBRTE_DPAA_HWDEBUG
 	DPAA_ASSERT(mc->state == mc_hw);
+#endif
 	/* The inactive response register's verb byte always returns zero until
 	 * its command is submitted and completed. This includes the valid-bit,
 	 * in case you were wondering.
diff --git a/drivers/bus/dpaa/base/qbman/qman.c b/drivers/bus/dpaa/base/qbman/qman.c
index 87fec60..b851110 100644
--- a/drivers/bus/dpaa/base/qbman/qman.c
+++ b/drivers/bus/dpaa/base/qbman/qman.c
@@ -416,7 +416,9 @@ static inline void qm_eqcr_finish(struct qm_portal *portal)
 	qm_cl_invalidate(EQCR_CI);
 	eqcr->ci = qm_cl_in(EQCR_CI) & (QM_EQCR_SIZE - 1);
 
+#ifdef RTE_LIBRTE_DPAA_HWDEBUG
 	DPAA_ASSERT(!eqcr->busy);
+#endif
 	if (pi != EQCR_PTR2IDX(eqcr->cursor))
 		pr_crit("losing uncommitted EQCR entries\n");
 	if (ci != eqcr->ci)
@@ -505,7 +507,9 @@ static inline void qm_mr_pvb_update(struct qm_portal *portal)
 	register struct qm_mr *mr = &portal->mr;
 	const struct qm_mr_entry *res = qm_cl(mr->ring, mr->pi);
 
+#ifdef RTE_LIBRTE_DPAA_HWDEBUG
 	DPAA_ASSERT(mr->pmode == qm_mr_pvb);
+#endif
 	/* when accessing 'verb', use __raw_readb() to ensure that compiler
 	 * inlining doesn't try to optimise out "excess reads".
 	 */
@@ -1267,6 +1271,7 @@ void qman_destroy_fq(struct qman_fq *fq, u32 flags __maybe_unused)
 	switch (fq->state) {
 	case qman_fq_state_parked:
 		DPAA_ASSERT(flags & QMAN_FQ_DESTROY_PARKED);
+		/* Fallthrough */
 	case qman_fq_state_oos:
 		if (fq_isset(fq, QMAN_FQ_FLAG_DYNAMIC_FQID))
 			qman_release_fqid(fq->fqid);
diff --git a/drivers/bus/dpaa/base/qbman/qman.h b/drivers/bus/dpaa/base/qbman/qman.h
index 2c0f694..283cd31 100644
--- a/drivers/bus/dpaa/base/qbman/qman.h
+++ b/drivers/bus/dpaa/base/qbman/qman.h
@@ -267,7 +267,9 @@ static inline struct qm_eqcr_entry *qm_eqcr_start_no_stash(struct qm_portal
 {
 	register struct qm_eqcr *eqcr = &portal->eqcr;
 
+#ifdef RTE_LIBRTE_DPAA_HWDEBUG
 	DPAA_ASSERT(!eqcr->busy);
+#endif
 	if (!eqcr->available)
 		return NULL;
 
@@ -284,7 +286,9 @@ static inline struct qm_eqcr_entry *qm_eqcr_start_stash(struct qm_portal
 	register struct qm_eqcr *eqcr = &portal->eqcr;
 	u8 diff, old_ci;
 
+#ifdef RTE_LIBRTE_DPAA_HWDEBUG
 	DPAA_ASSERT(!eqcr->busy);
+#endif
 	if (!eqcr->available) {
 		old_ci = eqcr->ci;
 		eqcr->ci = qm_cl_in(EQCR_CI) & (QM_EQCR_SIZE - 1);
@@ -303,8 +307,8 @@ static inline void qm_eqcr_abort(struct qm_portal *portal)
 {
 	__maybe_unused register struct qm_eqcr *eqcr = &portal->eqcr;
 
-	DPAA_ASSERT(eqcr->busy);
 #ifdef RTE_LIBRTE_DPAA_HWDEBUG
+	DPAA_ASSERT(eqcr->busy);
 	eqcr->busy = 0;
 #endif
 }
@@ -314,8 +318,10 @@ static inline struct qm_eqcr_entry *qm_eqcr_pend_and_next(
 {
 	register struct qm_eqcr *eqcr = &portal->eqcr;
 
+#ifdef RTE_LIBRTE_DPAA_HWDEBUG
 	DPAA_ASSERT(eqcr->busy);
 	DPAA_ASSERT(eqcr->pmode != qm_eqcr_pvb);
+#endif
 	if (eqcr->available == 1)
 		return NULL;
 	eqcr->cursor->__dont_write_directly__verb = myverb | eqcr->vbit;
@@ -336,8 +342,10 @@ static inline void qm_eqcr_pci_commit(struct qm_portal *portal, u8 myverb)
 {
 	register struct qm_eqcr *eqcr = &portal->eqcr;
 
+#ifdef RTE_LIBRTE_DPAA_HWDEBUG
 	EQCR_COMMIT_CHECKS(eqcr);
 	DPAA_ASSERT(eqcr->pmode == qm_eqcr_pci);
+#endif
 	eqcr->cursor->__dont_write_directly__verb = myverb | eqcr->vbit;
 	EQCR_INC(eqcr);
 	eqcr->available--;
@@ -353,7 +361,9 @@ static inline void qm_eqcr_pce_prefetch(struct qm_portal *portal)
 {
 	__maybe_unused register struct qm_eqcr *eqcr = &portal->eqcr;
 
+#ifdef RTE_LIBRTE_DPAA_HWDEBUG
 	DPAA_ASSERT(eqcr->pmode == qm_eqcr_pce);
+#endif
 	qm_cl_invalidate(EQCR_PI);
 	qm_cl_touch_rw(EQCR_PI);
 }
@@ -362,8 +372,10 @@ static inline void qm_eqcr_pce_commit(struct qm_portal *portal, u8 myverb)
 {
 	register struct qm_eqcr *eqcr = &portal->eqcr;
 
+#ifdef RTE_LIBRTE_DPAA_HWDEBUG
 	EQCR_COMMIT_CHECKS(eqcr);
 	DPAA_ASSERT(eqcr->pmode == qm_eqcr_pce);
+#endif
 	eqcr->cursor->__dont_write_directly__verb = myverb | eqcr->vbit;
 	EQCR_INC(eqcr);
 	eqcr->available--;
@@ -380,8 +392,10 @@ static inline void qm_eqcr_pvb_commit(struct qm_portal *portal, u8 myverb)
 	register struct qm_eqcr *eqcr = &portal->eqcr;
 	struct qm_eqcr_entry *eqcursor;
 
+#ifdef RTE_LIBRTE_DPAA_HWDEBUG
 	EQCR_COMMIT_CHECKS(eqcr);
 	DPAA_ASSERT(eqcr->pmode == qm_eqcr_pvb);
+#endif
 	lwsync();
 	eqcursor = eqcr->cursor;
 	eqcursor->__dont_write_directly__verb = myverb | eqcr->vbit;
@@ -503,7 +517,9 @@ static inline u8 qm_dqrr_pci_update(struct qm_portal *portal)
 	register struct qm_dqrr *dqrr = &portal->dqrr;
 	u8 diff, old_pi = dqrr->pi;
 
+#ifdef RTE_LIBRTE_DPAA_HWDEBUG
 	DPAA_ASSERT(dqrr->pmode == qm_dqrr_pci);
+#endif
 	dqrr->pi = qm_in(DQRR_PI_CINH) & (QM_DQRR_SIZE - 1);
 	diff = qm_cyc_diff(QM_DQRR_SIZE, old_pi, dqrr->pi);
 	dqrr->fill += diff;
@@ -514,7 +530,9 @@ static inline void qm_dqrr_pce_prefetch(struct qm_portal *portal)
 {
 	__maybe_unused register struct qm_dqrr *dqrr = &portal->dqrr;
 
+#ifdef RTE_LIBRTE_DPAA_HWDEBUG
 	DPAA_ASSERT(dqrr->pmode == qm_dqrr_pce);
+#endif
 	qm_cl_invalidate(DQRR_PI);
 	qm_cl_touch_ro(DQRR_PI);
 }
@@ -524,7 +542,9 @@ static inline u8 qm_dqrr_pce_update(struct qm_portal *portal)
 	register struct qm_dqrr *dqrr = &portal->dqrr;
 	u8 diff, old_pi = dqrr->pi;
 
+#ifdef RTE_LIBRTE_DPAA_HWDEBUG
 	DPAA_ASSERT(dqrr->pmode == qm_dqrr_pce);
+#endif
 	dqrr->pi = qm_cl_in(DQRR_PI) & (QM_DQRR_SIZE - 1);
 	diff = qm_cyc_diff(QM_DQRR_SIZE, old_pi, dqrr->pi);
 	dqrr->fill += diff;
@@ -536,7 +556,9 @@ static inline void qm_dqrr_pvb_update(struct qm_portal *portal)
 	register struct qm_dqrr *dqrr = &portal->dqrr;
 	const struct qm_dqrr_entry *res = qm_cl(dqrr->ring, dqrr->pi);
 
+#ifdef RTE_LIBRTE_DPAA_HWDEBUG
 	DPAA_ASSERT(dqrr->pmode == qm_dqrr_pvb);
+#endif
 	/* when accessing 'verb', use __raw_readb() to ensure that compiler
 	 * inlining doesn't try to optimise out "excess reads".
 	 */
@@ -552,7 +574,9 @@ static inline void qm_dqrr_cci_consume(struct qm_portal *portal, u8 num)
 {
 	register struct qm_dqrr *dqrr = &portal->dqrr;
 
+#ifdef RTE_LIBRTE_DPAA_HWDEBUG
 	DPAA_ASSERT(dqrr->cmode == qm_dqrr_cci);
+#endif
 	dqrr->ci = (dqrr->ci + num) & (QM_DQRR_SIZE - 1);
 	qm_out(DQRR_CI_CINH, dqrr->ci);
 }
@@ -561,7 +585,9 @@ static inline void qm_dqrr_cci_consume_to_current(struct qm_portal *portal)
 {
 	register struct qm_dqrr *dqrr = &portal->dqrr;
 
+#ifdef RTE_LIBRTE_DPAA_HWDEBUG
 	DPAA_ASSERT(dqrr->cmode == qm_dqrr_cci);
+#endif
 	dqrr->ci = DQRR_PTR2IDX(dqrr->cursor);
 	qm_out(DQRR_CI_CINH, dqrr->ci);
 }
@@ -570,7 +596,9 @@ static inline void qm_dqrr_cce_prefetch(struct qm_portal *portal)
 {
 	__maybe_unused register struct qm_dqrr *dqrr = &portal->dqrr;
 
+#ifdef RTE_LIBRTE_DPAA_HWDEBUG
 	DPAA_ASSERT(dqrr->cmode == qm_dqrr_cce);
+#endif
 	qm_cl_invalidate(DQRR_CI);
 	qm_cl_touch_rw(DQRR_CI);
 }
@@ -579,7 +607,9 @@ static inline void qm_dqrr_cce_consume(struct qm_portal *portal, u8 num)
 {
 	register struct qm_dqrr *dqrr = &portal->dqrr;
 
+#ifdef RTE_LIBRTE_DPAA_HWDEBUG
 	DPAA_ASSERT(dqrr->cmode == qm_dqrr_cce);
+#endif
 	dqrr->ci = (dqrr->ci + num) & (QM_DQRR_SIZE - 1);
 	qm_cl_out(DQRR_CI, dqrr->ci);
 }
@@ -588,7 +618,9 @@ static inline void qm_dqrr_cce_consume_to_current(struct qm_portal *portal)
 {
 	register struct qm_dqrr *dqrr = &portal->dqrr;
 
+#ifdef RTE_LIBRTE_DPAA_HWDEBUG
 	DPAA_ASSERT(dqrr->cmode == qm_dqrr_cce);
+#endif
 	dqrr->ci = DQRR_PTR2IDX(dqrr->cursor);
 	qm_cl_out(DQRR_CI, dqrr->ci);
 }
@@ -598,7 +630,9 @@ static inline void qm_dqrr_cdc_consume_1(struct qm_portal *portal, u8 idx,
 {
 	__maybe_unused register struct qm_dqrr *dqrr = &portal->dqrr;
 
+#ifdef RTE_LIBRTE_DPAA_HWDEBUG
 	DPAA_ASSERT(dqrr->cmode == qm_dqrr_cdc);
+#endif
 	DPAA_ASSERT(idx < QM_DQRR_SIZE);
 	qm_out(DQRR_DCAP, (0 << 8) |	/* S */
 		((park ? 1 : 0) << 6) |	/* PK */
@@ -612,7 +646,9 @@ static inline void qm_dqrr_cdc_consume_1ptr(struct qm_portal *portal,
 	__maybe_unused register struct qm_dqrr *dqrr = &portal->dqrr;
 	u8 idx = DQRR_PTR2IDX(dq);
 
+#ifdef RTE_LIBRTE_DPAA_HWDEBUG
 	DPAA_ASSERT(dqrr->cmode == qm_dqrr_cdc);
+#endif
 	DPAA_ASSERT(idx < QM_DQRR_SIZE);
 	qm_out(DQRR_DCAP, (0 << 8) |		/* DQRR_DCAP::S */
 		((park ? 1 : 0) << 6) |		/* DQRR_DCAP::PK */
@@ -623,7 +659,9 @@ static inline void qm_dqrr_cdc_consume_n(struct qm_portal *portal, u16 bitmask)
 {
 	__maybe_unused register struct qm_dqrr *dqrr = &portal->dqrr;
 
+#ifdef RTE_LIBRTE_DPAA_HWDEBUG
 	DPAA_ASSERT(dqrr->cmode == qm_dqrr_cdc);
+#endif
 	qm_out(DQRR_DCAP, (1 << 8) |		/* DQRR_DCAP::S */
 		((u32)bitmask << 16));		/* DQRR_DCAP::DCAP_CI */
 	dqrr->ci = qm_in(DQRR_CI_CINH) & (QM_DQRR_SIZE - 1);
@@ -634,7 +672,9 @@ static inline u8 qm_dqrr_cdc_cci(struct qm_portal *portal)
 {
 	__maybe_unused register struct qm_dqrr *dqrr = &portal->dqrr;
 
+#ifdef RTE_LIBRTE_DPAA_HWDEBUG
 	DPAA_ASSERT(dqrr->cmode == qm_dqrr_cdc);
+#endif
 	return qm_in(DQRR_CI_CINH) & (QM_DQRR_SIZE - 1);
 }
 
@@ -642,7 +682,9 @@ static inline void qm_dqrr_cdc_cce_prefetch(struct qm_portal *portal)
 {
 	__maybe_unused register struct qm_dqrr *dqrr = &portal->dqrr;
 
+#ifdef RTE_LIBRTE_DPAA_HWDEBUG
 	DPAA_ASSERT(dqrr->cmode == qm_dqrr_cdc);
+#endif
 	qm_cl_invalidate(DQRR_CI);
 	qm_cl_touch_ro(DQRR_CI);
 }
@@ -651,7 +693,9 @@ static inline u8 qm_dqrr_cdc_cce(struct qm_portal *portal)
 {
 	__maybe_unused register struct qm_dqrr *dqrr = &portal->dqrr;
 
+#ifdef RTE_LIBRTE_DPAA_HWDEBUG
 	DPAA_ASSERT(dqrr->cmode == qm_dqrr_cdc);
+#endif
 	return qm_cl_in(DQRR_CI) & (QM_DQRR_SIZE - 1);
 }
 
@@ -659,7 +703,9 @@ static inline u8 qm_dqrr_get_ci(struct qm_portal *portal)
 {
 	register struct qm_dqrr *dqrr = &portal->dqrr;
 
+#ifdef RTE_LIBRTE_DPAA_HWDEBUG
 	DPAA_ASSERT(dqrr->cmode != qm_dqrr_cdc);
+#endif
 	return dqrr->ci;
 }
 
@@ -667,7 +713,9 @@ static inline void qm_dqrr_park(struct qm_portal *portal, u8 idx)
 {
 	__maybe_unused register struct qm_dqrr *dqrr = &portal->dqrr;
 
+#ifdef RTE_LIBRTE_DPAA_HWDEBUG
 	DPAA_ASSERT(dqrr->cmode != qm_dqrr_cdc);
+#endif
 	qm_out(DQRR_DCAP, (0 << 8) |		/* S */
 		(1 << 6) |			/* PK */
 		(idx & (QM_DQRR_SIZE - 1)));	/* DCAP_CI */
@@ -677,7 +725,9 @@ static inline void qm_dqrr_park_current(struct qm_portal *portal)
 {
 	register struct qm_dqrr *dqrr = &portal->dqrr;
 
+#ifdef RTE_LIBRTE_DPAA_HWDEBUG
 	DPAA_ASSERT(dqrr->cmode != qm_dqrr_cdc);
+#endif
 	qm_out(DQRR_DCAP, (0 << 8) |		/* S */
 		(1 << 6) |			/* PK */
 		DQRR_PTR2IDX(dqrr->cursor));	/* DCAP_CI */
@@ -766,7 +816,9 @@ static inline void qm_mr_cci_consume(struct qm_portal *portal, u8 num)
 {
 	register struct qm_mr *mr = &portal->mr;
 
+#ifdef RTE_LIBRTE_DPAA_HWDEBUG
 	DPAA_ASSERT(mr->cmode == qm_mr_cci);
+#endif
 	mr->ci = (mr->ci + num) & (QM_MR_SIZE - 1);
 	qm_out(MR_CI_CINH, mr->ci);
 }
@@ -775,7 +827,9 @@ static inline void qm_mr_cci_consume_to_current(struct qm_portal *portal)
 {
 	register struct qm_mr *mr = &portal->mr;
 
+#ifdef RTE_LIBRTE_DPAA_HWDEBUG
 	DPAA_ASSERT(mr->cmode == qm_mr_cci);
+#endif
 	mr->ci = MR_PTR2IDX(mr->cursor);
 	qm_out(MR_CI_CINH, mr->ci);
 }
@@ -806,8 +860,8 @@ static inline void qm_mc_finish(struct qm_portal *portal)
 {
 	__maybe_unused register struct qm_mc *mc = &portal->mc;
 
-	DPAA_ASSERT(mc->state == qman_mc_idle);
 #ifdef RTE_LIBRTE_DPAA_HWDEBUG
+	DPAA_ASSERT(mc->state == qman_mc_idle);
 	if (mc->state != qman_mc_idle)
 		pr_crit("Losing incomplete MC command\n");
 #endif
@@ -817,8 +871,8 @@ static inline struct qm_mc_command *qm_mc_start(struct qm_portal *portal)
 {
 	register struct qm_mc *mc = &portal->mc;
 
-	DPAA_ASSERT(mc->state == qman_mc_idle);
 #ifdef RTE_LIBRTE_DPAA_HWDEBUG
+	DPAA_ASSERT(mc->state == qman_mc_idle);
 	mc->state = qman_mc_user;
 #endif
 	dcbz_64(mc->cr);
@@ -830,7 +884,9 @@ static inline void qm_mc_commit(struct qm_portal *portal, u8 myverb)
 	register struct qm_mc *mc = &portal->mc;
 	struct qm_mc_result *rr = mc->rr + mc->rridx;
 
+#ifdef RTE_LIBRTE_DPAA_HWDEBUG
 	DPAA_ASSERT(mc->state == qman_mc_user);
+#endif
 	lwsync();
 	mc->cr->__dont_write_directly__verb = myverb | mc->vbit;
 	dcbf(mc->cr);
@@ -845,7 +901,9 @@ static inline struct qm_mc_result *qm_mc_result(struct qm_portal *portal)
 	register struct qm_mc *mc = &portal->mc;
 	struct qm_mc_result *rr = mc->rr + mc->rridx;
 
+#ifdef RTE_LIBRTE_DPAA_HWDEBUG
 	DPAA_ASSERT(mc->state == qman_mc_hw);
+#endif
 	/* The inactive response register's verb byte always returns zero until
 	 * its command is submitted and completed. This includes the valid-bit,
 	 * in case you were wondering.
-- 
2.7.4

  parent reply	other threads:[~2018-01-24 15:36 UTC|newest]

Thread overview: 161+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-24 15:31 [dpdk-stable] patch 'kni: fix build with kernel 4.15' " Yuanhan Liu
2018-01-24 15:31 ` [dpdk-stable] patch 'app/testpmd: remove xenvirt again' " Yuanhan Liu
2018-01-24 15:31 ` [dpdk-stable] patch 'mk: remove TILE-Gx machine type' " Yuanhan Liu
2018-01-24 15:31 ` Yuanhan Liu [this message]
2018-01-24 15:31 ` [dpdk-stable] patch 'app/testpmd: fix port id allocation' " Yuanhan Liu
2018-01-24 15:31 ` [dpdk-stable] patch 'app/testpmd: fix crash of txonly with multiple segments' " Yuanhan Liu
2018-01-24 15:31 ` [dpdk-stable] patch 'kni: fix build dependency' " Yuanhan Liu
2018-01-24 15:31 ` [dpdk-stable] patch 'service: fix number mapped cores count' " Yuanhan Liu
2018-01-24 15:31 ` [dpdk-stable] patch 'service: fix lcore role after delete' " Yuanhan Liu
2018-01-24 15:31 ` [dpdk-stable] patch 'service: fix service core launch' " Yuanhan Liu
2018-01-24 15:31 ` [dpdk-stable] patch 'bus/pci: fix interrupt handler type' " Yuanhan Liu
2018-01-24 15:31 ` [dpdk-stable] patch 'memzone: fix leak on allocation error' " Yuanhan Liu
2018-01-24 15:31 ` [dpdk-stable] patch 'malloc: protect stats with lock' " Yuanhan Liu
2018-01-24 15:31 ` [dpdk-stable] patch 'malloc: fix end for bounded elements' " Yuanhan Liu
2018-01-24 15:31 ` [dpdk-stable] patch 'vfio: fix enabled check on error' " Yuanhan Liu
2018-01-24 15:31 ` [dpdk-stable] patch 'pmdinfogen: fix cross compilation for ARM big endian' " Yuanhan Liu
2018-01-24 15:31 ` [dpdk-stable] patch 'lpm: fix ARM big endian build' " Yuanhan Liu
2018-01-24 15:31 ` [dpdk-stable] patch 'bus/dpaa: " Yuanhan Liu
2018-01-24 15:31 ` [dpdk-stable] patch 'net/i40e: " Yuanhan Liu
2018-01-24 15:31 ` [dpdk-stable] patch 'net/ixgbe: " Yuanhan Liu
2018-01-24 15:31 ` [dpdk-stable] patch 'mempool/octeontx: fix improper memory barrier' " Yuanhan Liu
2018-01-24 15:31 ` [dpdk-stable] patch 'mempool: fix first memory area notification' " Yuanhan Liu
2018-01-24 15:31 ` [dpdk-stable] patch 'mempool/octeontx: fix memory area registration' " Yuanhan Liu
2018-01-24 15:31 ` [dpdk-stable] patch 'app/testpmd: fix port configuration print' " Yuanhan Liu
2018-01-24 15:31 ` [dpdk-stable] patch 'app/testpmd: fix flowgen forwarding offload flags' " Yuanhan Liu
2018-01-24 15:31 ` [dpdk-stable] patch 'examples/l3fwd-power: fix Rx without interrupt' " Yuanhan Liu
2018-01-24 15:31 ` [dpdk-stable] patch 'examples/l3fwd-power: fix frequency detection' " Yuanhan Liu
2018-01-24 15:31 ` [dpdk-stable] patch 'timer: fix reset on service cores' " Yuanhan Liu
2018-01-24 15:31 ` [dpdk-stable] patch 'net/mlx5: cleanup allocation of ethtool stats' " Yuanhan Liu
2018-01-24 15:31 ` [dpdk-stable] patch 'net/bonding: fix bonding in 8023ad mode' " Yuanhan Liu
2018-01-24 15:31 ` [dpdk-stable] patch 'net/nfp: fix MTU settings' " Yuanhan Liu
2018-01-24 15:31 ` [dpdk-stable] patch 'net/nfp: fix jumbo " Yuanhan Liu
2018-01-24 15:31 ` [dpdk-stable] patch 'net/nfp: fix CRC strip check behaviour' " Yuanhan Liu
2018-01-24 15:31 ` [dpdk-stable] patch 'net/thunderx: fix multi segment Tx function return' " Yuanhan Liu
2018-01-24 15:31 ` [dpdk-stable] patch 'net/mlx5: fix Tx checksum offloads' " Yuanhan Liu
2018-01-24 15:31 ` [dpdk-stable] patch 'net/mlx4: fix unnecessary include' " Yuanhan Liu
2018-01-24 15:31 ` [dpdk-stable] patch 'net/szedata2: fix check of mmap return value' " Yuanhan Liu
2018-01-24 15:31 ` [dpdk-stable] patch 'bus/fslmc: fix the cplusplus macro closure' " Yuanhan Liu
2018-01-24 15:31 ` [dpdk-stable] patch 'drivers: change the deprecated memseg physaddr to IOVA' " Yuanhan Liu
2018-01-24 15:31 ` [dpdk-stable] patch 'net/mlx4: revert workaround for broken Verbs' " Yuanhan Liu
2018-01-24 15:31 ` [dpdk-stable] patch 'net/mlx5: fix flow type for allmulti rules' " Yuanhan Liu
2018-02-13 11:56   ` Yuanhan Liu
2018-01-24 15:31 ` [dpdk-stable] patch 'net/mlx4: fix Tx packet drop application report' " Yuanhan Liu
2018-01-24 15:31 ` [dpdk-stable] patch 'net/bonding: fix activated slave in 8023ad mode' " Yuanhan Liu
2018-01-24 15:31 ` [dpdk-stable] patch 'net/qede: fix to enable LRO over tunnels' " Yuanhan Liu
2018-01-24 15:31 ` [dpdk-stable] patch 'net/qede: fix to reject config with no Rx queue' " Yuanhan Liu
2018-01-24 15:31 ` [dpdk-stable] patch 'net/sfc: stop periodic DMA if MAC stats upload fails' " Yuanhan Liu
2018-01-24 15:31 ` [dpdk-stable] patch 'net/sfc: fix multicast address list copy memory leak' " Yuanhan Liu
2018-01-24 15:31 ` [dpdk-stable] patch 'net/sfc: fix DMA memory leak after kvarg processing failure' " Yuanhan Liu
2018-01-24 15:31 ` [dpdk-stable] patch 'ethdev: fix missing imissed counter in xstats' " Yuanhan Liu
2018-01-24 15:31 ` [dpdk-stable] patch 'net/sfc: fix main MAC address handling' " Yuanhan Liu
2018-01-24 15:31 ` [dpdk-stable] patch 'net/mlx5: fix VLAN configuration after port stop' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'net/mlx5: fix Memory Region registration' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'net/mlx5: fix overflow of Memory Region cache' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'net/mlx5: fix RSS key configuration' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'net/mlx5: fix HW checksum offload for outer IP' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'net/mlx5: fix un-supported RSS hash fields use' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'net/i40e: fix VLAN offload setting' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'net/fm10k: fix logical port delete' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'net/ixgbe: fix wrong PBA setting' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'net/igb: fix Tx queue number assignment' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'net/i40e: fix VLAN offload setting issue' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'net/i40e: fix FDIR input set conflict' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'net/ixgbe: fix tunnel filter fail problem' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'net/i40e: add FDIR NVGRE parameter check' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'net/i40e: fix setting of MAC address on i40evf' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'vhost: fix crash' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'vhost: fix dequeue zero copy with virtio1' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'net/virtio: fix incorrect cast' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'net/virtio: fix vector Rx flushing' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'net/virtio: fix typo in LRO support' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'examples/vhost: fix sending ARP packet to self' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'event/octeontx: fix Rx adapter port id mapping' " Yuanhan Liu
2018-01-26 16:00   ` Yuanhan Liu
2018-01-29  8:56     ` Pavan Nikhilesh
2018-01-24 15:32 ` [dpdk-stable] patch 'net/sfc: fix label name to be consistent' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'net/sfc: do not hold management event queue lock while MCDI' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'net/sfc: fix incorrect bitwise ORing of L3/L4 packet types' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'net/ixgbe: fix parsing FDIR NVGRE issue' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'net/i40e: fix FDIR rule confiliction " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'net/i40e: exclude LLDP packet count' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'net/ixgbe: fix the failure of number of Tx queue check' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'net/i40e: fix VSI MAC filter on primary address change' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'net/mlx5: fix overwriting bit-fields in SW Rx queue' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'net/dpaa: fix uninitialized and unused variables' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'net/dpaa: fix the mbuf packet type if zero' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'net/dpaa: fix FW version code' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'net/bnxt: fix double increment of idx during Tx ring alloc' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'net/bnxt: parse checksum offload flags' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'net/bnxt: fix group info usage' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'net/bnxt: fix check for ether type' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'net/bnxt: fix duplicate filter pattern creation error' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'net/bnxt: fix duplicate pattern for 5tuple filter' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'net/bnxt: free the aggregation ring' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'net/bonding: fix setting slave MAC addresses' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'ethdev: fix link autonegotiation value' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'net/enic: fix L4 Rx ptype comparison' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'net/pcap: fix the NUMA id display in logs' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'net/failsafe: fix Rx safe check compiler hint' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'net/tap: remove unused kernel version definitions' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'net/mrvl: fix multiple probe' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'net/mrvl: fix HIF objects allocation' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'net/mrvl: fix oversize bpool handling' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'net/mrvl: fix shadow queue tail and size calculations' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'net/mrvl: keep shadow Txqs inside PMD Txq' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'net/ixgbe: fix max queue number for VF' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'net/i40e: fix setting MAC address of " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'net/i40e: fix port segmentation fault when restart' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'net/i40e: fix VF reset stats crash' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'net/mlx5: fix deadlock of link status alarm' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'net/mlx5: fix missing attribute size for drop action' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'net/mlx5: fix calculation of flow ID flag' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'vhost: fix error code check when creating thread' " Yuanhan Liu
2018-01-24 15:32 ` [dpdk-stable] patch 'examples/vhost: fix startup check' " Yuanhan Liu
2018-01-24 15:33 ` [dpdk-stable] patch 'net/i40e: fix ISO C in exported header' " Yuanhan Liu
2018-01-24 15:33 ` [dpdk-stable] patch 'flow_classify: " Yuanhan Liu
2018-01-24 15:33 ` [dpdk-stable] patch 'member: " Yuanhan Liu
2018-01-24 15:33 ` [dpdk-stable] patch 'lib: fix missing includes in exported headers' " Yuanhan Liu
2018-01-24 15:33 ` [dpdk-stable] patch 'igb_uio: allow multi-process access' " Yuanhan Liu
2018-01-24 15:33 ` [dpdk-stable] patch 'pdump: fix error check when creating/canceling thread' " Yuanhan Liu
2018-01-24 15:33 ` [dpdk-stable] patch 'app/testpmd: fix invalid Rx queue number setting' " Yuanhan Liu
2018-01-24 15:33 ` [dpdk-stable] patch 'app/testpmd: fix invalid Tx " Yuanhan Liu
2018-01-24 15:33 ` [dpdk-stable] patch 'app/procinfo: add compilation option in config' " Yuanhan Liu
2018-01-24 15:33 ` [dpdk-stable] patch 'test: register test as failed if setup failed' " Yuanhan Liu
2018-01-24 15:33 ` [dpdk-stable] patch 'test/table: fix uninitialized parameter' " Yuanhan Liu
2018-01-24 15:33 ` [dpdk-stable] patch 'test/memzone: fix wrong test' " Yuanhan Liu
2018-01-24 15:33 ` [dpdk-stable] patch 'test/memzone: fix NULL freeing' " Yuanhan Liu
2018-01-24 15:33 ` [dpdk-stable] patch 'test/memzone: fix freeing test' " Yuanhan Liu
2018-01-24 15:33 ` [dpdk-stable] patch 'mbuf: fix performance of freeing with non atomic refcnt' " Yuanhan Liu
2018-01-24 15:33 ` [dpdk-stable] patch 'mempool/octeontx: fix natural alignment being optimized out' " Yuanhan Liu
2018-01-24 15:33 ` [dpdk-stable] patch 'member: fix memory leak on error' " Yuanhan Liu
2018-01-24 15:33 ` [dpdk-stable] patch 'eventdev: set error code in port link/unlink functions' " Yuanhan Liu
2018-01-24 15:33 ` [dpdk-stable] patch 'test/eventdev: use CPU event type' " Yuanhan Liu
2018-01-24 15:33 ` [dpdk-stable] patch 'event/sw: fix queue memory leak and multi-link bug' " Yuanhan Liu
2018-01-24 15:33 ` [dpdk-stable] patch 'eventdev: fix doxygen comments' " Yuanhan Liu
2018-01-24 15:33 ` [dpdk-stable] patch 'bus/pci: forbid IOVA mode if IOMMU address width too small' " Yuanhan Liu
2018-01-24 15:33 ` [dpdk-stable] patch 'doc: fix lists of supported crypto algorithms' " Yuanhan Liu
2018-01-24 15:33 ` [dpdk-stable] patch 'doc: fix format in OpenSSL installation guide' " Yuanhan Liu
2018-01-24 15:33 ` [dpdk-stable] patch 'test/crypto: fix missing include' " Yuanhan Liu
2018-01-24 15:33 ` [dpdk-stable] patch 'examples/ipsec-secgw: fix usage of incorrect port' " Yuanhan Liu
2018-01-24 15:33 ` [dpdk-stable] patch 'security: fix device operation type' " Yuanhan Liu
2018-01-24 15:33 ` [dpdk-stable] patch 'crypto: fix pedantic compilation' " Yuanhan Liu
2018-01-24 15:33 ` [dpdk-stable] patch 'security: " Yuanhan Liu
2018-01-24 15:33 ` [dpdk-stable] patch 'security: fix enum start value' " Yuanhan Liu
2018-01-24 15:33 ` [dpdk-stable] patch 'cryptodev: add missing CPU flag string' " Yuanhan Liu
2018-01-24 15:33 ` [dpdk-stable] patch 'cryptodev: fix function prototype' " Yuanhan Liu
2018-01-24 15:33 ` [dpdk-stable] patch 'examples/ipsec-secgw: fix corner case for SPI value' " Yuanhan Liu
2018-01-24 15:33 ` [dpdk-stable] patch 'examples/ipsec-secgw: fix missing ingress flow attribute' " Yuanhan Liu
2018-01-24 15:33 ` [dpdk-stable] patch 'net: fix ESP header byte ordering definition' " Yuanhan Liu
2018-01-24 15:33 ` [dpdk-stable] patch 'examples/ipsec-secgw: fix SPI byte order in flow item' " Yuanhan Liu
2018-01-24 15:33 ` [dpdk-stable] patch 'net/qede: replace config option with run-time arg' " Yuanhan Liu
2018-01-24 15:33 ` [dpdk-stable] patch 'net/i40e: fix flag for MAC address write' " Yuanhan Liu
2018-01-24 15:33 ` [dpdk-stable] patch 'net/i40e: fix packet type for X722' " Yuanhan Liu
2018-01-24 15:33 ` [dpdk-stable] patch 'net/mlx5: fix IPv6 header fields' " Yuanhan Liu
2018-01-24 15:33 ` [dpdk-stable] patch 'net/sfc: fix initialization of flow structure' " Yuanhan Liu
2018-01-24 15:33 ` [dpdk-stable] patch 'net/sfc: fix flow RSS check in error handling' " Yuanhan Liu
2018-01-24 15:33 ` [dpdk-stable] patch 'vhost: fix mbuf free' " Yuanhan Liu
2018-01-24 15:33 ` [dpdk-stable] patch 'vhost: protect active rings from async ring changes' " Yuanhan Liu
2018-01-24 15:33 ` [dpdk-stable] patch 'net/failsafe: fix invalid free' " Yuanhan Liu
2018-01-24 15:33 ` [dpdk-stable] patch 'net/i40e: fix flow director Rx resource defect' " Yuanhan Liu
2018-01-24 15:33 ` [dpdk-stable] patch 'net/mlx5: fix memory region lookup' " Yuanhan Liu

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=1516808026-25523-4-git-send-email-yliu@fridaylinux.org \
    --to=yliu@fridaylinux.org \
    --cc=ferruh.yigit@intel.com \
    --cc=shreyansh.jain@nxp.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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).