map = NULL; 
vma = NULL; 
static void *m_start(struct seq_file *m, loff_t *pos){	struct task_struct *task = m->private;	unsigned long last_addr = m->version;	struct mm_struct *mm;	struct vm_area_struct *map, *tail_map;	loff_t l = *pos;	/*	 * We remember last_addr rather than next_addr to hit with	 * mmap_cache most of the time. We have zero last_addr at	 * the begining and also after lseek. We will have -1 last_addr	 * after the end of the maps.	 */	if (last_addr == -1UL)		return NULL;	mm = get_task_mm(task);	if (!mm)		return NULL;	tail_map = get_gate_vma(task);	down_read(&mm->mmap_sem);	/* Start with last addr hint */	if (last_addr && (map = find_vma(mm, last_addr))) {		map = map->vm_next;		goto out;	}	/*	 * Check the map index is within the range and do	 * sequential scan until m_index.	 */	map = NULL;	if ((unsigned long)l < mm->map_count) {		map = mm->mmap;		while (l-- && map)			map = map->vm_next;		goto out;	}	if (l != mm->map_count)		tail_map = NULL; /* After gate map */out:	if (map)		return map;	/* End of maps has reached */	m->version = (tail_map != NULL)? 0: -1UL;	up_read(&mm->mmap_sem);	mmput(mm);	return tail_map;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/e070ad49f31155d872d8e96cab2142840993e3c0/task_mmu.c/buggy/fs/proc/task_mmu.c