[v1] common/mlx5/linux: replace malloc and free in glue
Checks
Commit Message
This commit replaces mlx5_malloc and mlx5_free calls with Linux calls
malloc and free in file mlx5_glue.c.
The current mlx5_malloc calls have no flags, alignment or socket
selection, so they are equivalent to calling malloc. Rdma core itself
is using malloc. When using mlx5_malloc the glue library is dependent
on common_mlx5 library which must be compiled first. Not doing so and
in case ibverbs_link=dlopen will result in compilation failure:
mlx5_glue.c: undefined reference to `mlx5_malloc'.
To make all of this simpler and remove the common_mlx5 dependency - this
commit does the alloc/free replacements.
Fixes: 66914d19d135 ("common/mlx5: convert control path memory to
unified malloc")
Cc: stable@dpdk.org
Signed-off-by: Ophir Munk <ophirmu@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
---
drivers/common/mlx5/linux/mlx5_glue.c | 14 ++++++--------
1 file changed, 6 insertions(+), 8 deletions(-)
Comments
Hi,
> -----Original Message-----
> From: Ophir Munk <ophirmu@nvidia.com>
> Sent: Tuesday, October 27, 2020 12:17 PM
> To: dev@dpdk.org; Raslan Darawsheh <rasland@nvidia.com>
> Cc: Ophir Munk <ophirmu@nvidia.com>; Matan Azrad <matan@nvidia.com>;
> Slava Ovsiienko <viacheslavo@nvidia.com>; stable@dpdk.org
> Subject: [PATCH v1] common/mlx5/linux: replace malloc and free in glue
>
> This commit replaces mlx5_malloc and mlx5_free calls with Linux calls
> malloc and free in file mlx5_glue.c.
> The current mlx5_malloc calls have no flags, alignment or socket
> selection, so they are equivalent to calling malloc. Rdma core itself
> is using malloc. When using mlx5_malloc the glue library is dependent
> on common_mlx5 library which must be compiled first. Not doing so and
> in case ibverbs_link=dlopen will result in compilation failure:
> mlx5_glue.c: undefined reference to `mlx5_malloc'.
> To make all of this simpler and remove the common_mlx5 dependency - this
> commit does the alloc/free replacements.
>
> Fixes: 66914d19d135 ("common/mlx5: convert control path memory to
> unified malloc")
> Cc: stable@dpdk.org
>
> Signed-off-by: Ophir Munk <ophirmu@nvidia.com>
> Acked-by: Matan Azrad <matan@nvidia.com>
> ---
> drivers/common/mlx5/linux/mlx5_glue.c | 14 ++++++--------
> 1 file changed, 6 insertions(+), 8 deletions(-)
>
Patch applied to next-net-mlx,
Kindest regards,
Raslan Darawsheh
@@ -8,7 +8,6 @@
#include <stddef.h>
#include <stdint.h>
#include <stdlib.h>
-#include <rte_memory.h>
/*
* Not needed by this file; included to work around the lack of off_t
* definition for mlx5dv.h with unpatched rdma-core versions.
@@ -16,7 +15,6 @@
#include <sys/types.h>
#include "mlx5_glue.h"
-#include "../mlx5_malloc.h"
static int
mlx5_glue_fork_init(void)
@@ -186,7 +184,7 @@ mlx5_glue_destroy_flow_action(void *action)
res = ibv_destroy_flow_action(attr->action);
break;
}
- mlx5_free(action);
+ free(action);
return res;
#endif
#else
@@ -619,7 +617,7 @@ mlx5_glue_dv_create_flow_action_counter(void *counter_obj, uint32_t offset)
struct mlx5dv_flow_action_attr *action;
(void)offset;
- action = mlx5_malloc(0, sizeof(*action), 0, SOCKET_ID_ANY);
+ action = malloc(sizeof(*action));
if (!action)
return NULL;
action->type = MLX5DV_FLOW_ACTION_COUNTERS_DEVX;
@@ -643,7 +641,7 @@ mlx5_glue_dv_create_flow_action_dest_ibv_qp(void *qp)
#else
struct mlx5dv_flow_action_attr *action;
- action = mlx5_malloc(0, sizeof(*action), 0, SOCKET_ID_ANY);
+ action = malloc(sizeof(*action));
if (!action)
return NULL;
action->type = MLX5DV_FLOW_ACTION_DEST_IBV_QP;
@@ -688,7 +686,7 @@ mlx5_glue_dv_create_flow_action_modify_header
(void)domain;
(void)flags;
- action = mlx5_malloc(0, sizeof(*action), 0, SOCKET_ID_ANY);
+ action = malloc(sizeof(*action));
if (!action)
return NULL;
action->type = MLX5DV_FLOW_ACTION_IBV_FLOW_ACTION;
@@ -728,7 +726,7 @@ mlx5_glue_dv_create_flow_action_packet_reformat
(void)flags;
struct mlx5dv_flow_action_attr *action;
- action = mlx5_malloc(0, sizeof(*action), 0, SOCKET_ID_ANY);
+ action = malloc(sizeof(*action));
if (!action)
return NULL;
action->type = MLX5DV_FLOW_ACTION_IBV_FLOW_ACTION;
@@ -758,7 +756,7 @@ mlx5_glue_dv_create_flow_action_tag(uint32_t tag)
#else /* HAVE_MLX5DV_DR */
struct mlx5dv_flow_action_attr *action;
- action = mlx5_malloc(0, sizeof(*action), 0, SOCKET_ID_ANY);
+ action = malloc(sizeof(*action));
if (!action)
return NULL;
action->type = MLX5DV_FLOW_ACTION_TAG;