RDMA: Fix building with CONFIG_MMU=n
authorJason Gunthorpe <jgg@mellanox.com>
Fri, 28 Sep 2018 21:20:23 +0000 (15:20 -0600)
committerJason Gunthorpe <jgg@mellanox.com>
Wed, 3 Oct 2018 22:01:03 +0000 (16:01 -0600)
The zap_vma_ptes() is declared but not defined on NOMMU kernels, causing a
link error for the newly added uverbs code:

drivers/infiniband/core/uverbs_main.o: In function `uverbs_user_mmap_disassociate':
uverbs_main.c:(.text+0x114c): undefined reference to `zap_vma_ptes'
drivers/infiniband/core/uverbs_main.o: In function `rdma_umap_open':
uverbs_main.c:(.text+0x53c): undefined reference to `zap_vma_ptes'

Since all user access for all of our drivers depend on remapping pages to
user space disable USER_ACCESS when there is no mmu.

Fixes: 5f9794dc94f5 ("RDMA/ucontext: Add a core API for mmaping driver IO memory")
Reported-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
drivers/infiniband/Kconfig

index abb6660..0a3ec7c 100644 (file)
@@ -26,6 +26,7 @@ config INFINIBAND_USER_MAD
 config INFINIBAND_USER_ACCESS
        tristate "InfiniBand userspace access (verbs and CM)"
        select ANON_INODES
+       depends on MMU
        ---help---
          Userspace InfiniBand access support.  This enables the
          kernel side of userspace verbs and the userspace