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

Reply via email to