• Jason Gunthorpe's avatar
    RDMA/core: Make the entire API tree static · 8889f6fa
    Jason Gunthorpe authored
    Compilation of mlx5 driver without CONFIG_INFINIBAND_USER_ACCESS generates
    the following error.
    
    on x86_64:
    
     ld: drivers/infiniband/hw/mlx5/main.o: in function `mlx5_ib_handler_MLX5_IB_METHOD_VAR_OBJ_ALLOC':
     main.c:(.text+0x186d): undefined reference to `ib_uverbs_get_ucontext_file'
     ld: drivers/infiniband/hw/mlx5/main.o:(.rodata+0x2480): undefined reference to `uverbs_idr_class'
     ld: drivers/infiniband/hw/mlx5/main.o:(.rodata+0x24d8): undefined reference to `uverbs_destroy_def_handler'
    
    This is happening because some parts of the UAPI description are not
    static. This is a hold over from earlier code that relied on struct
    pointers to refer to object types, now object types are referenced by
    number. Remove the unused globals and add statics to the remaining UAPI
    description elements.
    
    Remove the redundent #ifdefs around mlx5_ib_*defs and obsolete
    mlx5_ib_get_devx_tree().
    
    The compiler now trims alot more unused code, including the above
    problematic definitions when !CONFIG_INFINIBAND_USER_ACCESS.
    
    Fixes: 7be76bef ("IB/mlx5: Introduce VAR object and its alloc/destroy methods")
    Reported-by: default avatarRandy Dunlap <rdunlap@infradead.org>
    Acked-by: default avatarRandy Dunlap <rdunlap@infradead.org>
    Signed-off-by: default avatarJason Gunthorpe <jgg@mellanox.com>
    8889f6fa
uverbs.h 9.29 KB