hv_vhca 132 drivers/net/ethernet/mellanox/mlx5/core/en/hv_vhca_stats.c agent = mlx5_hv_vhca_agent_create(priv->mdev->hv_vhca, hv_vhca 18 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c struct mlx5_hv_vhca *hv_vhca; hv_vhca 31 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c struct mlx5_hv_vhca *hv_vhca; hv_vhca 43 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c struct mlx5_hv_vhca *hv_vhca = NULL; hv_vhca 45 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c hv_vhca = kzalloc(sizeof(*hv_vhca), GFP_KERNEL); hv_vhca 46 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c if (!hv_vhca) hv_vhca 49 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c hv_vhca->work_queue = create_singlethread_workqueue("mlx5_hv_vhca"); hv_vhca 50 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c if (!hv_vhca->work_queue) { hv_vhca 51 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c kfree(hv_vhca); hv_vhca 55 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c hv_vhca->dev = dev; hv_vhca 56 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c mutex_init(&hv_vhca->agents_lock); hv_vhca 58 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c return hv_vhca; hv_vhca 61 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c void mlx5_hv_vhca_destroy(struct mlx5_hv_vhca *hv_vhca) hv_vhca 63 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c if (IS_ERR_OR_NULL(hv_vhca)) hv_vhca 66 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c destroy_workqueue(hv_vhca->work_queue); hv_vhca 67 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c kfree(hv_vhca); hv_vhca 73 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c struct mlx5_hv_vhca *hv_vhca; hv_vhca 77 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c hv_vhca = hwork->hv_vhca; hv_vhca 79 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c mutex_lock(&hv_vhca->agents_lock); hv_vhca 81 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c struct mlx5_hv_vhca_agent *agent = hv_vhca->agents[i]; hv_vhca 91 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c mutex_unlock(&hv_vhca->agents_lock); hv_vhca 98 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c struct mlx5_hv_vhca *hv_vhca = (struct mlx5_hv_vhca *)context; hv_vhca 106 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c work->hv_vhca = hv_vhca; hv_vhca 109 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c queue_work(hv_vhca->work_queue, &work->invalidate_work); hv_vhca 114 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c static void mlx5_hv_vhca_agents_control(struct mlx5_hv_vhca *hv_vhca, hv_vhca 120 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c struct mlx5_hv_vhca_agent *agent = hv_vhca->agents[i]; hv_vhca 132 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c static void mlx5_hv_vhca_capabilities(struct mlx5_hv_vhca *hv_vhca, hv_vhca 138 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c struct mlx5_hv_vhca_agent *agent = hv_vhca->agents[i]; hv_vhca 149 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c struct mlx5_hv_vhca *hv_vhca = agent->hv_vhca; hv_vhca 150 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c struct mlx5_core_dev *dev = hv_vhca->dev; hv_vhca 163 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c mlx5_hv_vhca_capabilities(hv_vhca, &capabilities); hv_vhca 177 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c mlx5_hv_vhca_agents_control(hv_vhca, block); hv_vhca 188 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c mlx5_hv_vhca_control_agent_create(struct mlx5_hv_vhca *hv_vhca) hv_vhca 190 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c return mlx5_hv_vhca_agent_create(hv_vhca, MLX5_HV_VHCA_AGENT_CONTROL, hv_vhca 201 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c int mlx5_hv_vhca_init(struct mlx5_hv_vhca *hv_vhca) hv_vhca 206 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c if (IS_ERR_OR_NULL(hv_vhca)) hv_vhca 207 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c return IS_ERR_OR_NULL(hv_vhca); hv_vhca 209 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c err = mlx5_hv_register_invalidate(hv_vhca->dev, hv_vhca, hv_vhca 214 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c agent = mlx5_hv_vhca_control_agent_create(hv_vhca); hv_vhca 216 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c mlx5_hv_unregister_invalidate(hv_vhca->dev); hv_vhca 220 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c hv_vhca->agents[MLX5_HV_VHCA_AGENT_CONTROL] = agent; hv_vhca 225 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c void mlx5_hv_vhca_cleanup(struct mlx5_hv_vhca *hv_vhca) hv_vhca 230 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c if (IS_ERR_OR_NULL(hv_vhca)) hv_vhca 233 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c agent = hv_vhca->agents[MLX5_HV_VHCA_AGENT_CONTROL]; hv_vhca 237 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c mutex_lock(&hv_vhca->agents_lock); hv_vhca 239 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c WARN_ON(hv_vhca->agents[i]); hv_vhca 241 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c mutex_unlock(&hv_vhca->agents_lock); hv_vhca 243 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c mlx5_hv_unregister_invalidate(hv_vhca->dev); hv_vhca 246 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c static void mlx5_hv_vhca_agents_update(struct mlx5_hv_vhca *hv_vhca) hv_vhca 248 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c mlx5_hv_vhca_invalidate(hv_vhca, BIT(MLX5_HV_VHCA_AGENT_CONTROL)); hv_vhca 252 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c mlx5_hv_vhca_agent_create(struct mlx5_hv_vhca *hv_vhca, hv_vhca 263 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c if (IS_ERR_OR_NULL(hv_vhca)) hv_vhca 269 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c mutex_lock(&hv_vhca->agents_lock); hv_vhca 270 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c if (hv_vhca->agents[type]) { hv_vhca 271 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c mutex_unlock(&hv_vhca->agents_lock); hv_vhca 274 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c mutex_unlock(&hv_vhca->agents_lock); hv_vhca 281 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c agent->hv_vhca = hv_vhca; hv_vhca 287 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c mutex_lock(&hv_vhca->agents_lock); hv_vhca 288 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c hv_vhca->agents[type] = agent; hv_vhca 289 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c mutex_unlock(&hv_vhca->agents_lock); hv_vhca 291 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c mlx5_hv_vhca_agents_update(hv_vhca); hv_vhca 298 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c struct mlx5_hv_vhca *hv_vhca = agent->hv_vhca; hv_vhca 300 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c mutex_lock(&hv_vhca->agents_lock); hv_vhca 302 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c if (WARN_ON(agent != hv_vhca->agents[agent->type])) { hv_vhca 303 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c mutex_unlock(&hv_vhca->agents_lock); hv_vhca 307 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c hv_vhca->agents[agent->type] = NULL; hv_vhca 308 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c mutex_unlock(&hv_vhca->agents_lock); hv_vhca 315 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c mlx5_hv_vhca_agents_update(hv_vhca); hv_vhca 354 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.c err = mlx5_hv_write_config(agent->hv_vhca->dev, &data_block, hv_vhca 33 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.h void mlx5_hv_vhca_destroy(struct mlx5_hv_vhca *hv_vhca); hv_vhca 34 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.h int mlx5_hv_vhca_init(struct mlx5_hv_vhca *hv_vhca); hv_vhca 35 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.h void mlx5_hv_vhca_cleanup(struct mlx5_hv_vhca *hv_vhca); hv_vhca 39 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.h mlx5_hv_vhca_agent_create(struct mlx5_hv_vhca *hv_vhca, hv_vhca 61 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.h static inline void mlx5_hv_vhca_destroy(struct mlx5_hv_vhca *hv_vhca) hv_vhca 65 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.h static inline int mlx5_hv_vhca_init(struct mlx5_hv_vhca *hv_vhca) hv_vhca 70 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.h static inline void mlx5_hv_vhca_cleanup(struct mlx5_hv_vhca *hv_vhca) hv_vhca 80 drivers/net/ethernet/mellanox/mlx5/core/lib/hv_vhca.h mlx5_hv_vhca_agent_create(struct mlx5_hv_vhca *hv_vhca, hv_vhca 889 drivers/net/ethernet/mellanox/mlx5/core/main.c dev->hv_vhca = mlx5_hv_vhca_create(dev); hv_vhca 920 drivers/net/ethernet/mellanox/mlx5/core/main.c mlx5_hv_vhca_destroy(dev->hv_vhca); hv_vhca 1089 drivers/net/ethernet/mellanox/mlx5/core/main.c mlx5_hv_vhca_init(dev->hv_vhca); hv_vhca 1146 drivers/net/ethernet/mellanox/mlx5/core/main.c mlx5_hv_vhca_cleanup(dev->hv_vhca); hv_vhca 1167 drivers/net/ethernet/mellanox/mlx5/core/main.c mlx5_hv_vhca_cleanup(dev->hv_vhca); hv_vhca 721 include/linux/mlx5/driver.h struct mlx5_hv_vhca *hv_vhca;