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

Lines Matching refs:addr

93 static int slice_area_is_free(struct mm_struct *mm, unsigned long addr,
98 if ((mm->task_size - len) < addr)
100 vma = find_vma(mm, addr);
101 return (!vma || (addr + len) <= vma->vm_start);
230 unsigned long start_addr, addr;
236 start_addr = addr = TASK_UNMAPPED_BASE;
239 start_addr = addr = mm->free_area_cache;
241 start_addr = addr = TASK_UNMAPPED_BASE;
245 addr = _ALIGN_UP(addr, 1ul << pshift);
246 if ((TASK_SIZE - len) < addr)
248 vma = find_vma(mm, addr);
249 BUG_ON(vma && (addr >= vma->vm_end));
251 mask = slice_range_to_mask(addr, len);
253 if (addr < SLICE_LOW_TOP)
254 addr = _ALIGN_UP(addr + 1, 1ul << SLICE_LOW_SHIFT);
256 addr = _ALIGN_UP(addr + 1, 1ul << SLICE_HIGH_SHIFT);
259 if (!vma || addr + len <= vma->vm_start) {
264 mm->free_area_cache = addr + len;
265 return addr;
267 if (use_cache && (addr + mm->cached_hole_size) < vma->vm_start)
268 mm->cached_hole_size = vma->vm_start - addr;
269 addr = vma->vm_end;
274 start_addr = addr = TASK_UNMAPPED_BASE;
287 unsigned long addr;
301 addr = mm->free_area_cache;
304 if (addr > len) {
305 addr = _ALIGN_DOWN(addr - len, 1ul << pshift);
306 mask = slice_range_to_mask(addr, len);
308 slice_area_is_free(mm, addr, len))
312 return (mm->free_area_cache = addr);
316 addr = mm->mmap_base;
317 while (addr > len) {
319 addr = _ALIGN_DOWN(addr - len, 1ul << pshift);
322 mask = slice_range_to_mask(addr, len);
324 if (addr < SLICE_LOW_TOP)
325 addr = _ALIGN_DOWN(addr, 1ul << SLICE_LOW_SHIFT);
326 else if (addr < (1ul << SLICE_HIGH_SHIFT))
327 addr = SLICE_LOW_TOP;
329 addr = _ALIGN_DOWN(addr, 1ul << SLICE_HIGH_SHIFT);
338 vma = find_vma(mm, addr);
339 if (!vma || (addr + len) <= vma->vm_start) {
342 mm->free_area_cache = addr;
343 return addr;
347 if (use_cache && (addr + mm->cached_hole_size) < vma->vm_start)
348 mm->cached_hole_size = vma->vm_start - addr;
351 addr = vma->vm_start;
360 addr = slice_find_area_bottomup(mm, len, available, psize, 0);
370 return addr;
400 unsigned long slice_get_unmapped_area(unsigned long addr, unsigned long len,
417 slice_dbg(" addr=%lx, len=%lx, flags=%lx, topdown=%d, use_cache=%d\n",
418 addr, len, flags, topdown, use_cache);
424 if (fixed && (addr & ((1ul << pshift) - 1)))
426 if (fixed && addr > (mm->task_size - len))
430 if (!fixed && addr) {
431 addr = _ALIGN_UP(addr, 1ul << pshift);
432 slice_dbg(" aligned addr=%lx\n", addr);
434 if (addr > mm->task_size - len ||
435 !slice_area_is_free(mm, addr, len))
436 addr = 0;
474 if (addr != 0 || fixed) {
476 mask = slice_range_to_mask(addr, len);
484 return addr;
508 if ((addr != 0 || fixed) && slice_check_fit(mask, potential_mask)) {
522 if (addr) {
523 addr = slice_find_area(mm, len, good_mask, psize, topdown,
525 if (addr != -ENOMEM) {
526 slice_dbg(" found area at 0x%lx\n", addr);
527 return addr;
534 addr = slice_find_area(mm, len, potential_mask, psize, topdown,
538 if (addr == -ENOMEM && psize == MMU_PAGE_64K) {
541 addr = slice_find_area(mm, len, potential_mask, psize,
546 if (addr == -ENOMEM)
549 mask = slice_range_to_mask(addr, len);
550 slice_dbg(" found potential area at 0x%lx\n", addr);
561 return addr;
567 unsigned long addr,
572 return slice_get_unmapped_area(addr, len, flags,
588 unsigned int get_slice_psize(struct mm_struct *mm, unsigned long addr)
593 if (addr < SLICE_LOW_TOP) {
595 index = GET_LOW_SLICE_INDEX(addr);
598 index = GET_HIGH_SLICE_INDEX(addr);
709 int is_hugepage_only_range(struct mm_struct *mm, unsigned long addr,
715 mask = slice_range_to_mask(addr, len);