Commit 502e82b9 authored by Aya Levin's avatar Aya Levin Committed by Saeed Mahameed
Browse files

net/mlx5: Fix access to a non-supported register



Validate MRTC register is supported before triggering a delayed work
which accesses it.

Fixes: 5a1023de ("net/mlx5: Add periodic update of host time to firmware")
Signed-off-by: default avatarAya Levin <ayal@nvidia.com>
Reviewed-by: default avatarGal Pressman <gal@nvidia.com>
Reviewed-by: default avatarMoshe Shemesh <moshe@nvidia.com>
Signed-off-by: default avatarSaeed Mahameed <saeedm@nvidia.com>
parent 924cc463
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -836,7 +836,7 @@ void mlx5_start_health_poll(struct mlx5_core_dev *dev)
	health->timer.expires = jiffies + msecs_to_jiffies(poll_interval_ms);
	add_timer(&health->timer);

	if (mlx5_core_is_pf(dev))
	if (mlx5_core_is_pf(dev) && MLX5_CAP_MCAM_REG(dev, mrtc))
		queue_delayed_work(health->wq, &health->update_fw_log_ts_work, 0);
}

+3 −5
Original line number Diff line number Diff line
@@ -1071,18 +1071,16 @@ static int mlx5_function_setup(struct mlx5_core_dev *dev, bool boot)

	mlx5_set_driver_version(dev);

	mlx5_start_health_poll(dev);

	err = mlx5_query_hca_caps(dev);
	if (err) {
		mlx5_core_err(dev, "query hca failed\n");
		goto stop_health;
		goto reclaim_boot_pages;
	}

	mlx5_start_health_poll(dev);

	return 0;

stop_health:
	mlx5_stop_health_poll(dev, boot);
reclaim_boot_pages:
	mlx5_reclaim_startup_pages(dev);
err_disable_hca:
+4 −1
Original line number Diff line number Diff line
@@ -9698,7 +9698,10 @@ struct mlx5_ifc_mcam_access_reg_bits {
	u8         regs_84_to_68[0x11];
	u8         tracer_registers[0x4];

	u8         regs_63_to_32[0x20];
	u8         regs_63_to_46[0x12];
	u8         mrtc[0x1];
	u8         regs_44_to_32[0xd];

	u8         regs_31_to_0[0x20];
};