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;