On 2/16/2026 6:37 PM, Bruce Richardson wrote:
On Fri, Feb 13, 2026 at 10:26:38AM +0000, Anatoly Burakov wrote:
Currently, when allocating buffers for pattern match items and flow item
storage, we are using rte_zmalloc followed by immediate rte_free. This is
not needed as these buffers are only used temporarily within the function
scope, so replace it with regular calloc/free.
Signed-off-by: Anatoly Burakov <[email protected]>
---
drivers/net/intel/ice/ice_acl_filter.c | 3 ++-
drivers/net/intel/ice/ice_fdir_filter.c | 5 +++--
drivers/net/intel/ice/ice_generic_flow.c | 15 +++++++--------
drivers/net/intel/ice/ice_hash.c | 3 ++-
drivers/net/intel/ice/ice_switch_filter.c | 5 +++--
5 files changed, 17 insertions(+), 14 deletions(-)
diff --git a/drivers/net/intel/ice/ice_acl_filter.c
b/drivers/net/intel/ice/ice_acl_filter.c
index 38e30a4f62..6754a40044 100644
--- a/drivers/net/intel/ice/ice_acl_filter.c
+++ b/drivers/net/intel/ice/ice_acl_filter.c
@@ -9,6 +9,7 @@
#include <string.h>
#include <unistd.h>
#include <stdarg.h>
+#include <stdlib.h>
#include <rte_debug.h>
#include <rte_ether.h>
#include <ethdev_driver.h>
@@ -1009,7 +1010,7 @@ ice_acl_parse(struct ice_adapter *ad,
*meta = filter;
error:
- rte_free(item);
+ free(item);
return ret;
}
Should this code be reworked so that the error is propagated back to caller
and the item freed there so as allocation and freeing occur together in the
one function - or even in the same file?
It should, and in fact further rework is also about fixing quirks like
these. With this patch though, I tried to minimize the changes and not
touch logic, because untangling these allocations is not trivial.
--
Thanks,
Anatoly