int mlx5_fs_core_alloc(struct mlx5_core_dev *dev)
 {
        struct mlx5_flow_steering *steering;
+       char name[80];
        int err = 0;
 
        err = mlx5_init_fc_stats(dev);
        else
                steering->mode = MLX5_FLOW_STEERING_MODE_DMFS;
 
-       steering->fgs_cache = kmem_cache_create("mlx5_fs_fgs",
+       snprintf(name, sizeof(name), "%s-mlx5_fs_fgs", dev_name(dev->device));
+       steering->fgs_cache = kmem_cache_create(name,
                                                sizeof(struct mlx5_flow_group), 0,
                                                0, NULL);
-       steering->ftes_cache = kmem_cache_create("mlx5_fs_ftes", sizeof(struct fs_fte), 0,
+       snprintf(name, sizeof(name), "%s-mlx5_fs_ftes", dev_name(dev->device));
+       steering->ftes_cache = kmem_cache_create(name, sizeof(struct fs_fte), 0,
                                                 0, NULL);
        if (!steering->ftes_cache || !steering->fgs_cache) {
                err = -ENOMEM;