<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Hi Shai,</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Thanks for the backporting, patch queued to 23.11.1 staging branch.</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div id="appendonsend"></div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> shaibran@amazon.com <shaibran@amazon.com><br>
<b>Sent:</b> Monday, April 8, 2024 8:15 PM<br>
<b>To:</b> ferruh.yigit@amd.com <ferruh.yigit@amd.com>; bluca@debian.org <bluca@debian.org>; christian.ehrhardt@canonical.com <christian.ehrhardt@canonical.com>; Xueming Li <xuemingl@nvidia.com>; ktraynor@redhat.com <ktraynor@redhat.com><br>
<b>Cc:</b> stable@dpdk.org <stable@dpdk.org>; dev@dpdk.org <dev@dpdk.org>; Shai Brandes <shaibran@amazon.com><br>
<b>Subject:</b> [PATCH v2 1/1] net/ena/base: fix metrics excessive memory consumption</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">From: Shai Brandes <shaibran@amazon.com><br>
<br>
[ upstream commit c8a1898f82f8c04cbe1d3e2d0eec0705386c23f7 ]<br>
<br>
The driver accidentally allocates a huge memory<br>
buffer for the customer metrics because it uses<br>
an uninitialized variable for the buffer length.<br>
This can lead to excessive memory footprint for<br>
the driver which can even fail to initialize in<br>
case of insufficient memory.<br>
<br>
Bugzilla ID: 1400<br>
Fixes: f73f53f7dc7a ("net/ena: upgrade HAL")<br>
Cc: stable@dpdk.org<br>
<br>
Signed-off-by: Shai Brandes <shaibran@amazon.com><br>
Reviewed-by: Amit Bernstein <amitbern@amazon.com><br>
---<br>
drivers/net/ena/base/ena_com.c | 8 +++++---<br>
1 file changed, 5 insertions(+), 3 deletions(-)<br>
<br>
diff --git a/drivers/net/ena/base/ena_com.c b/drivers/net/ena/base/ena_com.c<br>
index 6953a1fa33..8ae7dcf48e 100644<br>
--- a/drivers/net/ena/base/ena_com.c<br>
+++ b/drivers/net/ena/base/ena_com.c<br>
@@ -3134,16 +3134,18 @@ int ena_com_allocate_debug_area(struct ena_com_dev *ena_dev,<br>
int ena_com_allocate_customer_metrics_buffer(struct ena_com_dev *ena_dev)<br>
{<br>
struct ena_customer_metrics *customer_metrics = &ena_dev->customer_metrics;<br>
+ customer_metrics->buffer_len = ENA_CUSTOMER_METRICS_BUFFER_SIZE;<br>
+ customer_metrics->buffer_virt_addr = NULL;<br>
<br>
ENA_MEM_ALLOC_COHERENT(ena_dev->dmadev,<br>
customer_metrics->buffer_len,<br>
customer_metrics->buffer_virt_addr,<br>
customer_metrics->buffer_dma_addr,<br>
customer_metrics->buffer_dma_handle);<br>
- if (unlikely(customer_metrics->buffer_virt_addr == NULL))<br>
+ if (unlikely(customer_metrics->buffer_virt_addr == NULL)) {<br>
+ customer_metrics->buffer_len = 0;<br>
return ENA_COM_NO_MEM;<br>
-<br>
- customer_metrics->buffer_len = ENA_CUSTOMER_METRICS_BUFFER_SIZE;<br>
+ }<br>
<br>
return 0;<br>
}<br>
-- <br>
2.17.1<br>
<br>
</div>
</span></font></div>
</body>
</html>