|
@@ -537,8 +537,10 @@ static int handle_hca_cap(struct mlx5_core_dev *dev)
|
|
|
/* disable cmdif checksum */
|
|
|
MLX5_SET(cmd_hca_cap, set_hca_cap, cmdif_checksum, 0);
|
|
|
|
|
|
- /* If the HCA supports 4K UARs use it */
|
|
|
- if (MLX5_CAP_GEN_MAX(dev, uar_4k))
|
|
|
+ /* Enable 4K UAR only when HCA supports it and page size is bigger
|
|
|
+ * than 4K.
|
|
|
+ */
|
|
|
+ if (MLX5_CAP_GEN_MAX(dev, uar_4k) && PAGE_SIZE > 4096)
|
|
|
MLX5_SET(cmd_hca_cap, set_hca_cap, uar_4k, 1);
|
|
|
|
|
|
MLX5_SET(cmd_hca_cap, set_hca_cap, log_uar_page_sz, PAGE_SHIFT - 12);
|