Commit 93983863 authored by Yishai Hadas's avatar Yishai Hadas Committed by Leon Romanovsky
Browse files

net/mlx5: Query ADV_VIRTUALIZATION capabilities



Query ADV_VIRTUALIZATION capabilities which provide information for
advanced virtualization related features.

Current capabilities refer to the page tracker object which is used for
tracking the pages that are dirtied by the device.

Signed-off-by: default avatarYishai Hadas <yishaih@nvidia.com>
Link: https://lore.kernel.org/r/20220905105852.26398-3-yishaih@nvidia.com


Signed-off-by: default avatarLeon Romanovsky <leon@kernel.org>
parent a1be74c5
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -273,6 +273,12 @@ int mlx5_query_hca_caps(struct mlx5_core_dev *dev)
			return err;
	}

	if (MLX5_CAP_GEN(dev, adv_virtualization)) {
		err = mlx5_core_get_caps(dev, MLX5_CAP_ADV_VIRTUALIZATION);
		if (err)
			return err;
	}

	return 0;
}

+1 −0
Original line number Diff line number Diff line
@@ -1488,6 +1488,7 @@ static const int types[] = {
	MLX5_CAP_IPSEC,
	MLX5_CAP_PORT_SELECTION,
	MLX5_CAP_DEV_SHAMPO,
	MLX5_CAP_ADV_VIRTUALIZATION,
};

static void mlx5_hca_caps_free(struct mlx5_core_dev *dev)
+9 −0
Original line number Diff line number Diff line
@@ -1200,6 +1200,7 @@ enum mlx5_cap_type {
	MLX5_CAP_DEV_SHAMPO = 0x1d,
	MLX5_CAP_GENERAL_2 = 0x20,
	MLX5_CAP_PORT_SELECTION = 0x25,
	MLX5_CAP_ADV_VIRTUALIZATION = 0x26,
	/* NUM OF CAP Types */
	MLX5_CAP_NUM
};
@@ -1365,6 +1366,14 @@ enum mlx5_qcam_feature_groups {
	MLX5_GET(port_selection_cap, \
		 mdev->caps.hca[MLX5_CAP_PORT_SELECTION]->max, cap)

#define MLX5_CAP_ADV_VIRTUALIZATION(mdev, cap) \
	MLX5_GET(adv_virtualization_cap, \
		 mdev->caps.hca[MLX5_CAP_ADV_VIRTUALIZATION]->cur, cap)

#define MLX5_CAP_ADV_VIRTUALIZATION_MAX(mdev, cap) \
	MLX5_GET(adv_virtualization_cap, \
		 mdev->caps.hca[MLX5_CAP_ADV_VIRTUALIZATION]->max, cap)

#define MLX5_CAP_FLOWTABLE_PORT_SELECTION(mdev, cap) \
	MLX5_CAP_PORT_SELECTION(mdev, flow_table_properties_port_selection.cap)