[dpdk-dev] [PATCH] net/bonding:fix balance-xor link down stack overflow

2021-08-10 Thread jilei
When slave link down, deactivate_slave will internals->active_slaves
and internals->active_slave_count.Active_slave in bond_ethdev_rx_burst
may out of range in internals->active_slaves.It will get bond's port_id
cause stack overflow

Cc: sta...@dpdk.org
Signed-off-by: jilei 
---
 drivers/net/bonding/rte_eth_bond_pmd.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c 
b/drivers/net/bonding/rte_eth_bond_pmd.c
index a6755661c4..46f2c42d60 100644
--- a/drivers/net/bonding/rte_eth_bond_pmd.c
+++ b/drivers/net/bonding/rte_eth_bond_pmd.c
@@ -82,7 +82,7 @@ bond_ethdev_rx_burst(void *queue, struct rte_mbuf **bufs, 
uint16_t nb_pkts)
 bufs + num_rx_total, nb_pkts);
num_rx_total += num_rx_slave;
nb_pkts -= num_rx_slave;
-   if (++active_slave == slave_count)
+   if (++active_slave >= slave_count)
active_slave = 0;
}
 
-- 
2.23.0



[dpdk-dev] [PATCH] Enhance code readability when dma_map in ifc/ifcvp_vdpa

2021-09-26 Thread jilei chen
From: Jilei Chen 

Signed-off-by: Jilei Chen 
---
 drivers/net/ifc/ifcvf_vdpa.c | 10 ++
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ifc/ifcvf_vdpa.c b/drivers/net/ifc/ifcvf_vdpa.c
index da4667ba54..fe7ec87a8a 100644
--- a/drivers/net/ifc/ifcvf_vdpa.c
+++ b/drivers/net/ifc/ifcvf_vdpa.c
@@ -37,6 +37,8 @@
 
 #define IFCVF_VDPA_MODE"vdpa"
 #define IFCVF_SW_FALLBACK_LM   "sw-live-migration"
+#define IFCVF_MAP  1
+#define IFCVF_UNMAP0
 
 static const char * const ifcvf_valid_arguments[] = {
IFCVF_VDPA_MODE,
@@ -535,7 +537,7 @@ update_datapath(struct ifcvf_internal *internal)
if (!rte_atomic32_read(&internal->running) &&
(rte_atomic32_read(&internal->started) &&
 rte_atomic32_read(&internal->dev_attached))) {
-   ret = ifcvf_dma_map(internal, 1);
+   ret = ifcvf_dma_map(internal, IFCVF_MAP);
if (ret)
goto err;
 
@@ -565,7 +567,7 @@ update_datapath(struct ifcvf_internal *internal)
if (ret)
goto err;
 
-   ret = ifcvf_dma_map(internal, 0);
+   ret = ifcvf_dma_map(internal, IFCVF_UNMAP);
if (ret)
goto err;
 
@@ -869,7 +871,7 @@ ifcvf_sw_fallback_switchover(struct ifcvf_internal 
*internal)
 unset_intr:
vdpa_disable_vfio_intr(internal);
 unmap:
-   ifcvf_dma_map(internal, 0);
+   ifcvf_dma_map(internal, IFCVF_UNMAP);
 error:
return -1;
 }
@@ -926,7 +928,7 @@ ifcvf_dev_close(int vid)
vdpa_disable_vfio_intr(internal);
 
/* unset DMA map for guest memory */
-   ifcvf_dma_map(internal, 0);
+   ifcvf_dma_map(internal, IFCVF_UNMAP);
 
internal->sw_fallback_running = false;
} else {
-- 
2.12.2





[dpdk-dev] [PATCH] Enhance code readability when dma_map in ifc/ifcvp_vdpa

2021-09-26 Thread jilei chen
Signed-off-by: jilei chen 
---
 drivers/vdpa/ifc/ifcvf_vdpa.c | 10 ++
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/drivers/vdpa/ifc/ifcvf_vdpa.c b/drivers/vdpa/ifc/ifcvf_vdpa.c
index 1dc813d0a3..c2bf26f2b7 100644
--- a/drivers/vdpa/ifc/ifcvf_vdpa.c
+++ b/drivers/vdpa/ifc/ifcvf_vdpa.c
@@ -36,6 +36,8 @@ RTE_LOG_REGISTER(ifcvf_vdpa_logtype, pmd.vdpa.ifcvf, NOTICE);
 
 #define IFCVF_VDPA_MODE"vdpa"
 #define IFCVF_SW_FALLBACK_LM   "sw-live-migration"
+#define IFCVF_MAP  1
+#define IFCVF_UNMAP0
 
 #define THREAD_NAME_LEN16
 
@@ -538,7 +540,7 @@ update_datapath(struct ifcvf_internal *internal)
if (!rte_atomic32_read(&internal->running) &&
(rte_atomic32_read(&internal->started) &&
 rte_atomic32_read(&internal->dev_attached))) {
-   ret = ifcvf_dma_map(internal, 1);
+   ret = ifcvf_dma_map(internal, IFCVF_MAP);
if (ret)
goto err;
 
@@ -568,7 +570,7 @@ update_datapath(struct ifcvf_internal *internal)
if (ret)
goto err;
 
-   ret = ifcvf_dma_map(internal, 0);
+   ret = ifcvf_dma_map(internal, IFCVF_UNMAP);
if (ret)
goto err;
 
@@ -875,7 +877,7 @@ ifcvf_sw_fallback_switchover(struct ifcvf_internal 
*internal)
 unset_intr:
vdpa_disable_vfio_intr(internal);
 unmap:
-   ifcvf_dma_map(internal, 0);
+   ifcvf_dma_map(internal, IFCVF_UNMAP);
 error:
return -1;
 }
@@ -934,7 +936,7 @@ ifcvf_dev_close(int vid)
vdpa_disable_vfio_intr(internal);
 
/* unset DMA map for guest memory */
-   ifcvf_dma_map(internal, 0);
+   ifcvf_dma_map(internal, IFCVF_UNMAP);
 
internal->sw_fallback_running = false;
} else {
-- 
2.12.2





[dpdk-dev] [PATCH] vdpa/ifc: increase readability in function

2021-09-27 Thread jilei chen
Optimize several parameters form order to better readability

Signed-off-by: jilei chen 
---
 drivers/vdpa/ifc/ifcvf_vdpa.c | 16 
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/drivers/vdpa/ifc/ifcvf_vdpa.c b/drivers/vdpa/ifc/ifcvf_vdpa.c
index 1dc813d0a3..365da2a8b9 100644
--- a/drivers/vdpa/ifc/ifcvf_vdpa.c
+++ b/drivers/vdpa/ifc/ifcvf_vdpa.c
@@ -182,7 +182,7 @@ ifcvf_vfio_setup(struct ifcvf_internal *internal)
 }
 
 static int
-ifcvf_dma_map(struct ifcvf_internal *internal, int do_map)
+ifcvf_dma_map(struct ifcvf_internal *internal, bool do_map)
 {
uint32_t i;
int ret;
@@ -538,11 +538,11 @@ update_datapath(struct ifcvf_internal *internal)
if (!rte_atomic32_read(&internal->running) &&
(rte_atomic32_read(&internal->started) &&
 rte_atomic32_read(&internal->dev_attached))) {
-   ret = ifcvf_dma_map(internal, 1);
+   ret = ifcvf_dma_map(internal, true);
if (ret)
goto err;
 
-   ret = vdpa_enable_vfio_intr(internal, 0);
+   ret = vdpa_enable_vfio_intr(internal, false);
if (ret)
goto err;
 
@@ -568,7 +568,7 @@ update_datapath(struct ifcvf_internal *internal)
if (ret)
goto err;
 
-   ret = ifcvf_dma_map(internal, 0);
+   ret = ifcvf_dma_map(internal, false);
if (ret)
goto err;
 
@@ -850,7 +850,7 @@ ifcvf_sw_fallback_switchover(struct ifcvf_internal 
*internal)
goto error;
 
/* set up interrupt for interrupt relay */
-   ret = vdpa_enable_vfio_intr(internal, 1);
+   ret = vdpa_enable_vfio_intr(internal, true);
if (ret)
goto unmap;
 
@@ -875,7 +875,7 @@ ifcvf_sw_fallback_switchover(struct ifcvf_internal 
*internal)
 unset_intr:
vdpa_disable_vfio_intr(internal);
 unmap:
-   ifcvf_dma_map(internal, 0);
+   ifcvf_dma_map(internal, false);
 error:
return -1;
 }
@@ -934,7 +934,7 @@ ifcvf_dev_close(int vid)
vdpa_disable_vfio_intr(internal);
 
/* unset DMA map for guest memory */
-   ifcvf_dma_map(internal, 0);
+   ifcvf_dma_map(internal, false);
 
internal->sw_fallback_running = false;
} else {
@@ -1130,7 +1130,7 @@ ifcvf_set_vring_state(int vid, int vring, int state)
}
 
if (state && !hw->vring[vring].enable) {
-   ret = vdpa_enable_vfio_intr(internal, 0);
+   ret = vdpa_enable_vfio_intr(internal, false);
if (ret)
return ret;
}
-- 
2.12.2





[dpdk-dev] [PATCH] [v2] vdpa/ifc: increase readability in function

2021-09-27 Thread jilei chen
Optimize several parameters form order to better readability

Signed-off-by: jilei chen 
---
v2:
* Concise subject of the patch
* Optimize function parameters
---
 drivers/vdpa/ifc/ifcvf_vdpa.c | 16 
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/drivers/vdpa/ifc/ifcvf_vdpa.c b/drivers/vdpa/ifc/ifcvf_vdpa.c
index 1dc813d0a3..365da2a8b9 100644
--- a/drivers/vdpa/ifc/ifcvf_vdpa.c
+++ b/drivers/vdpa/ifc/ifcvf_vdpa.c
@@ -182,7 +182,7 @@ ifcvf_vfio_setup(struct ifcvf_internal *internal)
 }
 
 static int
-ifcvf_dma_map(struct ifcvf_internal *internal, int do_map)
+ifcvf_dma_map(struct ifcvf_internal *internal, bool do_map)
 {
uint32_t i;
int ret;
@@ -538,11 +538,11 @@ update_datapath(struct ifcvf_internal *internal)
if (!rte_atomic32_read(&internal->running) &&
(rte_atomic32_read(&internal->started) &&
 rte_atomic32_read(&internal->dev_attached))) {
-   ret = ifcvf_dma_map(internal, 1);
+   ret = ifcvf_dma_map(internal, true);
if (ret)
goto err;
 
-   ret = vdpa_enable_vfio_intr(internal, 0);
+   ret = vdpa_enable_vfio_intr(internal, false);
if (ret)
goto err;
 
@@ -568,7 +568,7 @@ update_datapath(struct ifcvf_internal *internal)
if (ret)
goto err;
 
-   ret = ifcvf_dma_map(internal, 0);
+   ret = ifcvf_dma_map(internal, false);
if (ret)
goto err;
 
@@ -850,7 +850,7 @@ ifcvf_sw_fallback_switchover(struct ifcvf_internal 
*internal)
goto error;
 
/* set up interrupt for interrupt relay */
-   ret = vdpa_enable_vfio_intr(internal, 1);
+   ret = vdpa_enable_vfio_intr(internal, true);
if (ret)
goto unmap;
 
@@ -875,7 +875,7 @@ ifcvf_sw_fallback_switchover(struct ifcvf_internal 
*internal)
 unset_intr:
vdpa_disable_vfio_intr(internal);
 unmap:
-   ifcvf_dma_map(internal, 0);
+   ifcvf_dma_map(internal, false);
 error:
return -1;
 }
@@ -934,7 +934,7 @@ ifcvf_dev_close(int vid)
vdpa_disable_vfio_intr(internal);
 
/* unset DMA map for guest memory */
-   ifcvf_dma_map(internal, 0);
+   ifcvf_dma_map(internal, false);
 
internal->sw_fallback_running = false;
} else {
@@ -1130,7 +1130,7 @@ ifcvf_set_vring_state(int vid, int vring, int state)
}
 
if (state && !hw->vring[vring].enable) {
-   ret = vdpa_enable_vfio_intr(internal, 0);
+   ret = vdpa_enable_vfio_intr(internal, false);
if (ret)
return ret;
}
-- 
2.12.2





[dpdk-dev] [PATCH] [v3] vdpa/ifc: increase readability in function

2021-09-27 Thread jilei chen
Use bool type for function's switch parameter,
this could avoid passing "1" or "0" which is not reader friendly.

Signed-off-by: jilei chen 
---
v3:
* Update inappropriate description

v2:
* Concise subject of the patch
* Optimize function parameters
---
 drivers/vdpa/ifc/ifcvf_vdpa.c | 16 
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/drivers/vdpa/ifc/ifcvf_vdpa.c b/drivers/vdpa/ifc/ifcvf_vdpa.c
index 1dc813d0a3..365da2a8b9 100644
--- a/drivers/vdpa/ifc/ifcvf_vdpa.c
+++ b/drivers/vdpa/ifc/ifcvf_vdpa.c
@@ -182,7 +182,7 @@ ifcvf_vfio_setup(struct ifcvf_internal *internal)
 }
 
 static int
-ifcvf_dma_map(struct ifcvf_internal *internal, int do_map)
+ifcvf_dma_map(struct ifcvf_internal *internal, bool do_map)
 {
uint32_t i;
int ret;
@@ -538,11 +538,11 @@ update_datapath(struct ifcvf_internal *internal)
if (!rte_atomic32_read(&internal->running) &&
(rte_atomic32_read(&internal->started) &&
 rte_atomic32_read(&internal->dev_attached))) {
-   ret = ifcvf_dma_map(internal, 1);
+   ret = ifcvf_dma_map(internal, true);
if (ret)
goto err;
 
-   ret = vdpa_enable_vfio_intr(internal, 0);
+   ret = vdpa_enable_vfio_intr(internal, false);
if (ret)
goto err;
 
@@ -568,7 +568,7 @@ update_datapath(struct ifcvf_internal *internal)
if (ret)
goto err;
 
-   ret = ifcvf_dma_map(internal, 0);
+   ret = ifcvf_dma_map(internal, false);
if (ret)
goto err;
 
@@ -850,7 +850,7 @@ ifcvf_sw_fallback_switchover(struct ifcvf_internal 
*internal)
goto error;
 
/* set up interrupt for interrupt relay */
-   ret = vdpa_enable_vfio_intr(internal, 1);
+   ret = vdpa_enable_vfio_intr(internal, true);
if (ret)
goto unmap;
 
@@ -875,7 +875,7 @@ ifcvf_sw_fallback_switchover(struct ifcvf_internal 
*internal)
 unset_intr:
vdpa_disable_vfio_intr(internal);
 unmap:
-   ifcvf_dma_map(internal, 0);
+   ifcvf_dma_map(internal, false);
 error:
return -1;
 }
@@ -934,7 +934,7 @@ ifcvf_dev_close(int vid)
vdpa_disable_vfio_intr(internal);
 
/* unset DMA map for guest memory */
-   ifcvf_dma_map(internal, 0);
+   ifcvf_dma_map(internal, false);
 
internal->sw_fallback_running = false;
} else {
@@ -1130,7 +1130,7 @@ ifcvf_set_vring_state(int vid, int vring, int state)
}
 
if (state && !hw->vring[vring].enable) {
-   ret = vdpa_enable_vfio_intr(internal, 0);
+   ret = vdpa_enable_vfio_intr(internal, false);
if (ret)
return ret;
}
-- 
2.12.2





[dpdk-dev] [PATCH] [v3] vdpa/ifc: increase readability in function

2021-09-27 Thread jilei chen
Use bool type for function's switch parameter,
this could avoid passing "1" or "0" which is not reader friendly.

Signed-off-by: jilei chen 
---
v3:
* Update inappropriate description

v2:
* Concise subject of the patch
* Optimize function parameters
---
 drivers/vdpa/ifc/ifcvf_vdpa.c | 16 
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/drivers/vdpa/ifc/ifcvf_vdpa.c b/drivers/vdpa/ifc/ifcvf_vdpa.c
index 1dc813d0a3..365da2a8b9 100644
--- a/drivers/vdpa/ifc/ifcvf_vdpa.c
+++ b/drivers/vdpa/ifc/ifcvf_vdpa.c
@@ -182,7 +182,7 @@ ifcvf_vfio_setup(struct ifcvf_internal *internal)
 }
 
 static int
-ifcvf_dma_map(struct ifcvf_internal *internal, int do_map)
+ifcvf_dma_map(struct ifcvf_internal *internal, bool do_map)
 {
uint32_t i;
int ret;
@@ -538,11 +538,11 @@ update_datapath(struct ifcvf_internal *internal)
if (!rte_atomic32_read(&internal->running) &&
(rte_atomic32_read(&internal->started) &&
 rte_atomic32_read(&internal->dev_attached))) {
-   ret = ifcvf_dma_map(internal, 1);
+   ret = ifcvf_dma_map(internal, true);
if (ret)
goto err;
 
-   ret = vdpa_enable_vfio_intr(internal, 0);
+   ret = vdpa_enable_vfio_intr(internal, false);
if (ret)
goto err;
 
@@ -568,7 +568,7 @@ update_datapath(struct ifcvf_internal *internal)
if (ret)
goto err;
 
-   ret = ifcvf_dma_map(internal, 0);
+   ret = ifcvf_dma_map(internal, false);
if (ret)
goto err;
 
@@ -850,7 +850,7 @@ ifcvf_sw_fallback_switchover(struct ifcvf_internal 
*internal)
goto error;
 
/* set up interrupt for interrupt relay */
-   ret = vdpa_enable_vfio_intr(internal, 1);
+   ret = vdpa_enable_vfio_intr(internal, true);
if (ret)
goto unmap;
 
@@ -875,7 +875,7 @@ ifcvf_sw_fallback_switchover(struct ifcvf_internal 
*internal)
 unset_intr:
vdpa_disable_vfio_intr(internal);
 unmap:
-   ifcvf_dma_map(internal, 0);
+   ifcvf_dma_map(internal, false);
 error:
return -1;
 }
@@ -934,7 +934,7 @@ ifcvf_dev_close(int vid)
vdpa_disable_vfio_intr(internal);
 
/* unset DMA map for guest memory */
-   ifcvf_dma_map(internal, 0);
+   ifcvf_dma_map(internal, false);
 
internal->sw_fallback_running = false;
} else {
@@ -1130,7 +1130,7 @@ ifcvf_set_vring_state(int vid, int vring, int state)
}
 
if (state && !hw->vring[vring].enable) {
-   ret = vdpa_enable_vfio_intr(internal, 0);
+   ret = vdpa_enable_vfio_intr(internal, false);
if (ret)
return ret;
}
-- 
2.12.2