On Fri, Sep 06, 2019 at 05:10:10PM +0200, Arnd Bergmann wrote: > On kernels without CONFIG_MMU, we get a link error for the siw > driver: > > drivers/infiniband/sw/siw/siw_mem.o: In function `siw_umem_get': > siw_mem.c:(.text+0x4c8): undefined reference to `can_do_mlock' > > I don't know whether this driver is able to work at all without > an MMU, but it's easy to avoid the link problem by adding another > compile-time check. > > Fixes: 2251334dcac9 ("rdma/siw: application buffer management") > Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx> > drivers/infiniband/sw/siw/siw_mem.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/infiniband/sw/siw/siw_mem.c b/drivers/infiniband/sw/siw/siw_mem.c > index e99983f07663..b3b614c07fdb 100644 > +++ b/drivers/infiniband/sw/siw/siw_mem.c > @@ -374,7 +374,7 @@ struct siw_umem *siw_umem_get(u64 start, u64 len, bool writable) > unsigned int foll_flags = FOLL_WRITE; > int num_pages, num_chunks, i, rv = 0; > > - if (!can_do_mlock()) > + if (!IS_ENABLED(CONFIG_MMU) || !can_do_mlock()) > return ERR_PTR(-EPERM); I feel like !CONFIG_MMU should provide a dummy inline stub for can_do_mlock instead? Jason