[ofa-general] ib_umem_get lock_limiting...

Arthur Jones arthur.jones at qlogic.com
Thu Aug 16 12:40:31 PDT 2007


hi all, in ib_umem_get() in drivers/infiniband/core/umem.c in the kernel.org
driver at around line 115, we:

        locked     = npages + current->mm->locked_vm;
        lock_limit = current->signal->rlim[RLIMIT_MEMLOCK].rlim_cur >> PAGE_SHIFT;

        if ((locked > lock_limit) && !capable(CAP_IPC_LOCK)) {
                ret = -ENOMEM;
                goto out;
        }


the calculation looks ok, but it looks to me like
the && should be an || in the test, esp since earlier
in the routine, we do an:

        if (!can_do_mlock())
                return ERR_PTR(-EPERM);

so, maybe the !capable(CAP_IPC_LOCK) should not be
there at all?

arthur




More information about the general mailing list