Commit e04984a3 authored by Tariq Toukan's avatar Tariq Toukan Committed by Saeed Mahameed
Browse files

net/mlx5: Fix query of sd_group field



The sd_group field moved in the HW spec from the MPIR register
to the vport context.
Align the query accordingly.

Fixes: f5e95632 ("net/mlx5: Expose Management PCIe Index Register (MPIR)")
Signed-off-by: default avatarTariq Toukan <tariqt@nvidia.com>
Signed-off-by: default avatarSaeed Mahameed <saeedm@nvidia.com>
parent a7e7b40c
Loading
Loading
Loading
Loading
+21 −0
Original line number Diff line number Diff line
@@ -440,6 +440,27 @@ int mlx5_query_nic_vport_system_image_guid(struct mlx5_core_dev *mdev,
}
EXPORT_SYMBOL_GPL(mlx5_query_nic_vport_system_image_guid);

int mlx5_query_nic_vport_sd_group(struct mlx5_core_dev *mdev, u8 *sd_group)
{
	int outlen = MLX5_ST_SZ_BYTES(query_nic_vport_context_out);
	u32 *out;
	int err;

	out = kvzalloc(outlen, GFP_KERNEL);
	if (!out)
		return -ENOMEM;

	err = mlx5_query_nic_vport_context(mdev, 0, out);
	if (err)
		goto out;

	*sd_group = MLX5_GET(query_nic_vport_context_out, out,
			     nic_vport_context.sd_group);
out:
	kvfree(out);
	return err;
}

int mlx5_query_nic_vport_node_guid(struct mlx5_core_dev *mdev, u64 *node_guid)
{
	u32 *out;
+7 −3
Original line number Diff line number Diff line
@@ -4030,8 +4030,13 @@ struct mlx5_ifc_nic_vport_context_bits {
	u8	   affiliation_criteria[0x4];
	u8	   affiliated_vhca_id[0x10];

	u8	   reserved_at_60[0xd0];
	u8	   reserved_at_60[0xa0];

	u8	   reserved_at_100[0x1];
	u8         sd_group[0x3];
	u8	   reserved_at_104[0x1c];

	u8	   reserved_at_120[0x10];
	u8         mtu[0x10];

	u8         system_image_guid[0x40];
@@ -10116,8 +10121,7 @@ struct mlx5_ifc_mpir_reg_bits {
	u8         reserved_at_20[0x20];

	u8         local_port[0x8];
	u8         reserved_at_28[0x15];
	u8         sd_group[0x3];
	u8         reserved_at_28[0x18];

	u8         reserved_at_60[0x20];
};
+1 −0
Original line number Diff line number Diff line
@@ -72,6 +72,7 @@ int mlx5_query_nic_vport_mtu(struct mlx5_core_dev *mdev, u16 *mtu);
int mlx5_modify_nic_vport_mtu(struct mlx5_core_dev *mdev, u16 mtu);
int mlx5_query_nic_vport_system_image_guid(struct mlx5_core_dev *mdev,
					   u64 *system_image_guid);
int mlx5_query_nic_vport_sd_group(struct mlx5_core_dev *mdev, u8 *sd_group);
int mlx5_query_nic_vport_node_guid(struct mlx5_core_dev *mdev, u64 *node_guid);
int mlx5_modify_nic_vport_node_guid(struct mlx5_core_dev *mdev,
				    u16 vport, u64 node_guid);