|
@@ -91,6 +91,13 @@ EXPORT_SYMBOL_GPL(mlx4_uar_free);
|
|
|
|
|
|
int mlx4_init_uar_table(struct mlx4_dev *dev)
|
|
int mlx4_init_uar_table(struct mlx4_dev *dev)
|
|
{
|
|
{
|
|
|
|
+ if (dev->caps.num_uars <= 128) {
|
|
|
|
+ mlx4_err(dev, "Only %d UAR pages (need more than 128)\n",
|
|
|
|
+ dev->caps.num_uars);
|
|
|
|
+ mlx4_err(dev, "Increase firmware log2_uar_bar_megabytes?\n");
|
|
|
|
+ return -ENODEV;
|
|
|
|
+ }
|
|
|
|
+
|
|
return mlx4_bitmap_init(&mlx4_priv(dev)->uar_table.bitmap,
|
|
return mlx4_bitmap_init(&mlx4_priv(dev)->uar_table.bitmap,
|
|
dev->caps.num_uars, dev->caps.num_uars - 1,
|
|
dev->caps.num_uars, dev->caps.num_uars - 1,
|
|
max(128, dev->caps.reserved_uars));
|
|
max(128, dev->caps.reserved_uars));
|