Skip to content
  • Arnd Bergmann's avatar
    infiniband: add MMU dependency for user_mem · 9cc12ad6
    Arnd Bergmann authored
    The infiniband subsystem causes a link failure when the umem
    driver is built on MMU-less systems:
    
    mm/mmu_notifier.o: In function `do_mmu_notifier_register':
    mmu_notifier.c:(.text+0x32): undefined reference to `mm_take_all_locks'
    drivers/infiniband/core/umem.o: In function `ib_umem_get':
    umem.c:(.text+0x132): undefined reference to `can_do_mlock'
    drivers/infiniband/core/umem_odp.o: In function `ib_umem_odp_map_dma_pages':
    umem_odp.c:(.text+0x766): undefined reference to `get_user_pages_remote'
    
    This bug has existed for a while but only become apparent in ARM
    randconfig builds when the dependency on PCI was lifted, as none
    of the ARM-NOMMU targets support PCI at the moment.
    
    We could probably get the umem driver to build by providing an
    alternative implementation 'can_do_mlock()' that returns false
    on NOMMU-systems, but then we'd still have a problem with the
    mmu-notifiers required by CONFIG_INFINIBAND_ON_DEMAND_PAGING,
    so simply forbidding umem with NOMMU seems like the simplest
    workaround.
    
    Fixes: 931bc0d9
    
     ("IB: Move PCI dependency from root KConfig to HW's KConfigs")
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
    9cc12ad6