mlx5_eq_create_generic(struct mlx5_core_dev *dev,
                       struct mlx5_eq_param *param)
 {
-       struct mlx5_eq *eq = kvzalloc(sizeof(*eq), GFP_KERNEL);
+       struct mlx5_eq *eq = kvzalloc_node(sizeof(*eq), GFP_KERNEL,
+                                          dev->priv.numa_node);
        int err;
 
        if (!eq)
                return ncomp_eqs;
        INIT_LIST_HEAD(&table->comp_eqs_list);
        nent = comp_eq_depth_devlink_param_get(dev);
+
        for (i = 0; i < ncomp_eqs; i++) {
                struct mlx5_eq_param param = {};
 
-               eq = kzalloc(sizeof(*eq), GFP_KERNEL);
+               eq = kzalloc_node(sizeof(*eq), GFP_KERNEL, dev->priv.numa_node);
                if (!eq) {
                        err = -ENOMEM;
                        goto clean;