• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/arch/sparc/kernel/

Lines Matching refs:addr

45 /* Does addr --> addr+len fall within 4GB of the VA-space hole or
48 static inline int invalid_64bit_range(unsigned long addr, unsigned long len)
58 if (unlikely((addr + len) < addr))
61 if (unlikely((addr >= va_exclude_start && addr < va_exclude_end) ||
62 ((addr + len) >= va_exclude_start &&
63 (addr + len) < va_exclude_end)))
95 static inline unsigned long COLOUR_ALIGN(unsigned long addr,
98 unsigned long base = (addr+SHMLBA-1)&~(SHMLBA-1);
104 static inline unsigned long COLOUR_ALIGN_DOWN(unsigned long addr,
107 unsigned long base = addr & ~(SHMLBA-1);
110 if (base + off <= addr)
115 unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsigned long len, unsigned long pgoff, unsigned long flags)
128 ((addr - (pgoff << PAGE_SHIFT)) & (SHMLBA - 1)))
130 return addr;
142 if (addr) {
144 addr = COLOUR_ALIGN(addr, pgoff);
146 addr = PAGE_ALIGN(addr);
148 vma = find_vma(mm, addr);
149 if (task_size - len >= addr &&
150 (!vma || addr + len <= vma->vm_start))
151 return addr;
155 start_addr = addr = mm->free_area_cache;
157 start_addr = addr = TASK_UNMAPPED_BASE;
165 addr = COLOUR_ALIGN(addr, pgoff);
167 addr = PAGE_ALIGN(addr);
169 for (vma = find_vma(mm, addr); ; vma = vma->vm_next) {
170 /* At this point: (!vma || addr < vma->vm_end). */
171 if (addr < VA_EXCLUDE_START &&
172 (addr + len) >= VA_EXCLUDE_START) {
173 addr = VA_EXCLUDE_END;
176 if (unlikely(task_size < addr)) {
178 start_addr = addr = TASK_UNMAPPED_BASE;
184 if (likely(!vma || addr + len <= vma->vm_start)) {
188 mm->free_area_cache = addr + len;
189 return addr;
191 if (addr + mm->cached_hole_size < vma->vm_start)
192 mm->cached_hole_size = vma->vm_start - addr;
194 addr = vma->vm_end;
196 addr = COLOUR_ALIGN(addr, pgoff);
208 unsigned long addr = addr0;
219 ((addr - (pgoff << PAGE_SHIFT)) & (SHMLBA - 1)))
221 return addr;
232 if (addr) {
234 addr = COLOUR_ALIGN(addr, pgoff);
236 addr = PAGE_ALIGN(addr);
238 vma = find_vma(mm, addr);
239 if (task_size - len >= addr &&
240 (!vma || addr + len <= vma->vm_start))
241 return addr;
251 addr = mm->free_area_cache;
253 unsigned long base = COLOUR_ALIGN_DOWN(addr-len, pgoff);
255 addr = base + len;
259 if (likely(addr > len)) {
260 vma = find_vma(mm, addr-len);
261 if (!vma || addr <= vma->vm_start) {
263 return (mm->free_area_cache = addr-len);
270 addr = mm->mmap_base-len;
272 addr = COLOUR_ALIGN_DOWN(addr, pgoff);
280 vma = find_vma(mm, addr);
281 if (likely(!vma || addr+len <= vma->vm_start)) {
283 return (mm->free_area_cache = addr);
287 if (addr + mm->cached_hole_size < vma->vm_start)
288 mm->cached_hole_size = vma->vm_start - addr;
291 addr = vma->vm_start-len;
293 addr = COLOUR_ALIGN_DOWN(addr, pgoff);
305 addr = arch_get_unmapped_area(filp, addr0, len, pgoff, flags);
312 return addr;
318 unsigned long align_goal, addr = -ENOMEM;
339 addr = get_area(NULL, orig_addr, len + (align_goal - PAGE_SIZE), pgoff, flags);
340 if (!(addr & ~PAGE_MASK)) {
341 addr = (addr + (align_goal - 1UL)) & ~(align_goal - 1UL);
351 } while ((addr & ~PAGE_MASK) && align_goal > PAGE_SIZE);
356 if (addr & ~PAGE_MASK)
357 addr = get_area(NULL, orig_addr, len, pgoff, flags);
359 return addr;
527 int sparc_mmap_check(unsigned long addr, unsigned long len)
533 if (addr > STACK_TOP32 - len)
539 if (invalid_64bit_range(addr, len))
547 SYSCALL_DEFINE6(mmap, unsigned long, addr, unsigned long, len,
557 retval = sys_mmap_pgoff(addr, len, prot, flags, fd, off >> PAGE_SHIFT);
562 SYSCALL_DEFINE2(64_munmap, unsigned long, addr, size_t, len)
566 if (invalid_64bit_range(addr, len))
570 ret = do_munmap(current->mm, addr, len);
575 extern unsigned long do_mremap(unsigned long addr,
579 SYSCALL_DEFINE5(64_mremap, unsigned long, addr, unsigned long, old_len,
589 ret = do_mremap(addr, old_len, new_len, flags, new_addr);