Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
int e = 0;
#ifndef __sun__
void *laddr = (void *)((unsigned long)addr & PAGE_MASK);
- size_t llen = (len + PAGE_SIZE - 1) & PAGE_MASK;
+ size_t llen = (len + ((unsigned long)addr - (unsigned long)laddr) +
+ PAGE_SIZE - 1) & PAGE_MASK;
e = mlock(laddr, llen);
#endif
return e;
{
#ifndef __sun__
void *laddr = (void *)((unsigned long)addr & PAGE_MASK);
- size_t llen = (len + PAGE_SIZE - 1) & PAGE_MASK;
+ size_t llen = (len + ((unsigned long)addr - (unsigned long)laddr) +
+ PAGE_SIZE - 1) & PAGE_MASK;
safe_munlock(laddr, llen);
#endif
}