* [dpdk-stable] [17.11 0/3] Fixes backported to 17.11
@ 2018-07-27 10:39 Rafal Kozik
2018-07-27 10:39 ` [dpdk-stable] [17.11 1/3] net/ena: set link speed as none Rafal Kozik
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Rafal Kozik @ 2018-07-27 10:39 UTC (permalink / raw)
To: stable; +Cc: mw, mk, gtzalik, evgenys, matua, igorch, yskoh, Rafal Kozik
Provide fixes backported to dpdk_stable branch 17.11.
Rafal Kozik (3):
net/ena: set link speed as none
net/ena: check pointer before memset
net/ena: change memory type
drivers/net/ena/base/ena_plat_dpdk.h | 30 +++++++++++++++++-------------
drivers/net/ena/ena_ethdev.c | 2 +-
2 files changed, 18 insertions(+), 14 deletions(-)
--
2.7.4
^ permalink raw reply [flat|nested] 5+ messages in thread
* [dpdk-stable] [17.11 1/3] net/ena: set link speed as none
2018-07-27 10:39 [dpdk-stable] [17.11 0/3] Fixes backported to 17.11 Rafal Kozik
@ 2018-07-27 10:39 ` Rafal Kozik
2018-07-27 10:39 ` [dpdk-stable] [17.11 2/3] net/ena: check pointer before memset Rafal Kozik
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Rafal Kozik @ 2018-07-27 10:39 UTC (permalink / raw)
To: stable; +Cc: mw, mk, gtzalik, evgenys, matua, igorch, yskoh, Rafal Kozik
[ backported from upstream commit 41e59028dd8ab2038a7655c6fc3098222661aa53 ]
Link speed should is not limited to 10Gb/s and it shouldn't be hardcoded.
They link speed is set to none instead and the applications shouldn't
rely on this value when using ENA PMD.
Fixes: 1173fca25af9 ("ena: add polling-mode driver")
Signed-off-by: Rafal Kozik <rk@semihalf.com>
Acked-by: Michal Krawczyk <mk@semihalf.com>
---
drivers/net/ena/ena_ethdev.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ena/ena_ethdev.c b/drivers/net/ena/ena_ethdev.c
index aa24ef3..32fcc0d 100644
--- a/drivers/net/ena/ena_ethdev.c
+++ b/drivers/net/ena/ena_ethdev.c
@@ -709,7 +709,7 @@ static int ena_link_update(struct rte_eth_dev *dev,
struct rte_eth_link *link = &dev->data->dev_link;
link->link_status = 1;
- link->link_speed = ETH_SPEED_NUM_10G;
+ link->link_speed = ETH_SPEED_NUM_NONE;
link->link_duplex = ETH_LINK_FULL_DUPLEX;
return 0;
--
2.7.4
^ permalink raw reply [flat|nested] 5+ messages in thread
* [dpdk-stable] [17.11 2/3] net/ena: check pointer before memset
2018-07-27 10:39 [dpdk-stable] [17.11 0/3] Fixes backported to 17.11 Rafal Kozik
2018-07-27 10:39 ` [dpdk-stable] [17.11 1/3] net/ena: set link speed as none Rafal Kozik
@ 2018-07-27 10:39 ` Rafal Kozik
2018-07-27 10:39 ` [dpdk-stable] [17.11 3/3] net/ena: change memory type Rafal Kozik
2018-07-27 17:15 ` [dpdk-stable] [17.11 0/3] Fixes backported to 17.11 Yongseok Koh
3 siblings, 0 replies; 5+ messages in thread
From: Rafal Kozik @ 2018-07-27 10:39 UTC (permalink / raw)
To: stable; +Cc: mw, mk, gtzalik, evgenys, matua, igorch, yskoh, Rafal Kozik
[ backported from upstream commit 46916aa17d4b2007df8c0454f99ba0ca8b8cb93b ]
Need to check if memory allocation succeed before using it.
Using memset on NULL pointer cause segfault.
Fixes: 9ba7981ec992 ("ena: add communication layer for DPDK")
Signed-off-by: Rafal Kozik <rk@semihalf.com>
Acked-by: Michal Krawczyk <mk@semihalf.com>
---
drivers/net/ena/base/ena_plat_dpdk.h | 22 ++++++++++++++++------
1 file changed, 16 insertions(+), 6 deletions(-)
diff --git a/drivers/net/ena/base/ena_plat_dpdk.h b/drivers/net/ena/base/ena_plat_dpdk.h
index accecf5..362741a 100644
--- a/drivers/net/ena/base/ena_plat_dpdk.h
+++ b/drivers/net/ena/base/ena_plat_dpdk.h
@@ -189,10 +189,15 @@ typedef uint64_t dma_addr_t;
snprintf(z_name, sizeof(z_name), \
"ena_alloc_%d", ena_alloc_cnt++); \
mz = rte_memzone_reserve(z_name, size, SOCKET_ID_ANY, 0); \
- memset(mz->addr, 0, size); \
- virt = mz->addr; \
- phys = mz->iova; \
handle = mz; \
+ if (mz == NULL) { \
+ virt = NULL; \
+ phys = 0; \
+ } else { \
+ memset(mz->addr, 0, size); \
+ virt = mz->addr; \
+ phys = mz->iova; \
+ } \
} while (0)
#define ENA_MEM_FREE_COHERENT(dmadev, size, virt, phys, handle) \
({ ENA_TOUCH(size); ENA_TOUCH(phys); \
@@ -207,9 +212,14 @@ typedef uint64_t dma_addr_t;
snprintf(z_name, sizeof(z_name), \
"ena_alloc_%d", ena_alloc_cnt++); \
mz = rte_memzone_reserve(z_name, size, node, 0); \
- memset(mz->addr, 0, size); \
- virt = mz->addr; \
- phys = mz->iova; \
+ if (mz == NULL) { \
+ virt = NULL; \
+ phys = 0; \
+ } else { \
+ memset(mz->addr, 0, size); \
+ virt = mz->addr; \
+ phys = mz->iova; \
+ } \
} while (0)
#define ENA_MEM_ALLOC_NODE(dmadev, size, virt, node, dev_node) \
--
2.7.4
^ permalink raw reply [flat|nested] 5+ messages in thread
* [dpdk-stable] [17.11 3/3] net/ena: change memory type
2018-07-27 10:39 [dpdk-stable] [17.11 0/3] Fixes backported to 17.11 Rafal Kozik
2018-07-27 10:39 ` [dpdk-stable] [17.11 1/3] net/ena: set link speed as none Rafal Kozik
2018-07-27 10:39 ` [dpdk-stable] [17.11 2/3] net/ena: check pointer before memset Rafal Kozik
@ 2018-07-27 10:39 ` Rafal Kozik
2018-07-27 17:15 ` [dpdk-stable] [17.11 0/3] Fixes backported to 17.11 Yongseok Koh
3 siblings, 0 replies; 5+ messages in thread
From: Rafal Kozik @ 2018-07-27 10:39 UTC (permalink / raw)
To: stable; +Cc: mw, mk, gtzalik, evgenys, matua, igorch, yskoh, Rafal Kozik
[ backported from upstream commit 9f32c7e7e6ce58ab772913f54f8328c1c0186a17 ]
ENA_MEM_ALLOC_NODE not need to use contiguous physical memory.
Also using memset without checking if allocation succeed can cause
segmentation fault.
To avoid both issue use rte_zmalloc_socket.
Fixes: 3d3edc265fc8 ("net/ena: make coherent memory allocation NUMA-aware")
Signed-off-by: Rafal Kozik <rk@semihalf.com>
Acked-by: Michal Krawczyk <mk@semihalf.com>
---
drivers/net/ena/base/ena_plat_dpdk.h | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)
diff --git a/drivers/net/ena/base/ena_plat_dpdk.h b/drivers/net/ena/base/ena_plat_dpdk.h
index 362741a..8363fb4 100644
--- a/drivers/net/ena/base/ena_plat_dpdk.h
+++ b/drivers/net/ena/base/ena_plat_dpdk.h
@@ -224,14 +224,8 @@ typedef uint64_t dma_addr_t;
#define ENA_MEM_ALLOC_NODE(dmadev, size, virt, node, dev_node) \
do { \
- const struct rte_memzone *mz; \
- char z_name[RTE_MEMZONE_NAMESIZE]; \
ENA_TOUCH(dmadev); ENA_TOUCH(dev_node); \
- snprintf(z_name, sizeof(z_name), \
- "ena_alloc_%d", ena_alloc_cnt++); \
- mz = rte_memzone_reserve(z_name, size, node, 0); \
- memset(mz->addr, 0, size); \
- virt = mz->addr; \
+ virt = rte_zmalloc_socket(NULL, size, 0, node); \
} while (0)
#define ENA_MEM_ALLOC(dmadev, size) rte_zmalloc(NULL, size, 1)
--
2.7.4
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [dpdk-stable] [17.11 0/3] Fixes backported to 17.11
2018-07-27 10:39 [dpdk-stable] [17.11 0/3] Fixes backported to 17.11 Rafal Kozik
` (2 preceding siblings ...)
2018-07-27 10:39 ` [dpdk-stable] [17.11 3/3] net/ena: change memory type Rafal Kozik
@ 2018-07-27 17:15 ` Yongseok Koh
3 siblings, 0 replies; 5+ messages in thread
From: Yongseok Koh @ 2018-07-27 17:15 UTC (permalink / raw)
To: Rafal Kozik; +Cc: dpdk stable, mw, mk, gtzalik, evgenys, matua, igorch
> On Jul 27, 2018, at 3:39 AM, Rafal Kozik <rk@semihalf.com> wrote:
>
> Provide fixes backported to dpdk_stable branch 17.11.
>
> Rafal Kozik (3):
> net/ena: set link speed as none
> net/ena: check pointer before memset
> net/ena: change memory type
>
> drivers/net/ena/base/ena_plat_dpdk.h | 30 +++++++++++++++++-------------
> drivers/net/ena/ena_ethdev.c | 2 +-
> 2 files changed, 18 insertions(+), 14 deletions(-)
>
> --
Thank you!
All the three patches have been queued for 17.11.4 successfully.
Yongseok
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2018-07-27 17:15 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-07-27 10:39 [dpdk-stable] [17.11 0/3] Fixes backported to 17.11 Rafal Kozik
2018-07-27 10:39 ` [dpdk-stable] [17.11 1/3] net/ena: set link speed as none Rafal Kozik
2018-07-27 10:39 ` [dpdk-stable] [17.11 2/3] net/ena: check pointer before memset Rafal Kozik
2018-07-27 10:39 ` [dpdk-stable] [17.11 3/3] net/ena: change memory type Rafal Kozik
2018-07-27 17:15 ` [dpdk-stable] [17.11 0/3] Fixes backported to 17.11 Yongseok Koh
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).