Re: [PATCH] infiniband: mlx5: fix build error when INFINIBAND_USER_ACCESS=m

From: Jason Gunthorpe
Date: Mon Apr 16 2018 - 17:55:44 EST


On Mon, Apr 16, 2018 at 02:21:07PM -0700, Randy Dunlap wrote:
> From: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
>
> Fix build errors when INFINIBAND_USER_ACCESS=m and MLX5_INFINIBAND=y.
> The build error occurs when the mlx5 driver code attempts to use
> USER_ACCESS interfaces, which are built as a loadable module.
>
> Fixes these build errors:
>
> drivers/infiniband/hw/mlx5/main.o: In function `populate_specs_root':
> ../drivers/infiniband/hw/mlx5/main.c:4982: undefined reference to `uverbs_default_get_objects'
> ../drivers/infiniband/hw/mlx5/main.c:4994: undefined reference to `uverbs_alloc_spec_tree'
> drivers/infiniband/hw/mlx5/main.o: In function `depopulate_specs_root':
> ../drivers/infiniband/hw/mlx5/main.c:5001: undefined reference to `uverbs_free_spec_tree'
>
> Reported-by: kbuild test robot <lkp@xxxxxxxxx>
> Signed-off-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
> Cc: Matan Barak <matanb@xxxxxxxxxxxx>
> Cc: Jason Gunthorpe <jgg@xxxxxxxxxxxx>
> Cc: Leon Romanovsky <leonro@xxxxxxxxxxxx>
> Cc: Doug Ledford <dledford@xxxxxxxxxx>
> Cc: linux-rdma@xxxxxxxxxxxxxxx
> Cc: stable@xxxxxxxxxxxxxxx # reported against 4.16
> drivers/infiniband/hw/mlx5/Kconfig | 1 +
> 1 file changed, 1 insertion(+)
>
> +++ lnx-417-rc1/drivers/infiniband/hw/mlx5/Kconfig
> @@ -1,6 +1,7 @@
> config MLX5_INFINIBAND
> tristate "Mellanox Connect-IB HCA support"
> depends on NETDEVICES && ETHERNET && PCI && MLX5_CORE
> + select INFINIBAND_USER_ACCESS

Shouldn't this be done via

depends on m || INFINIBAND_USER_ACCESS != m

?

We can turn off USER_ACCESS and still successfully compile the driver.

Jason