spin_unlock(&src_mm->page_table_lock); 
static int copy_pte_range(struct mm_struct *dst_mm, struct mm_struct *src_mm,		pmd_t *dst_pmd, pmd_t *src_pmd, struct vm_area_struct *vma,		unsigned long addr, unsigned long end){	pte_t *src_pte, *dst_pte;	int progress = 0;	int rss[2];again:	rss[1] = rss[0] = 0;	dst_pte = pte_alloc_map(dst_mm, dst_pmd, addr);	if (!dst_pte)		return -ENOMEM;	src_pte = pte_offset_map_nested(src_pmd, addr);	spin_lock(&src_mm->page_table_lock);	do {		/*		 * We are holding two locks at this point - either of them		 * could generate latencies in another task on another CPU.		 */		if (progress >= 32) {			progress = 0;			if (need_resched() ||			    need_lockbreak(&src_mm->page_table_lock) ||			    need_lockbreak(&dst_mm->page_table_lock))				break;		}		if (pte_none(*src_pte)) {			progress++;			continue;		}		copy_one_pte(dst_mm, src_mm, dst_pte, src_pte, vma, addr, rss);		progress += 8;	} while (dst_pte++, src_pte++, addr += PAGE_SIZE, addr != end);	spin_unlock(&src_mm->page_table_lock);	pte_unmap_nested(src_pte - 1);	pte_unmap(dst_pte - 1);	add_mm_rss(dst_mm, rss[0], rss[1]);	cond_resched_lock(&dst_mm->page_table_lock);	if (addr != end)		goto again;	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/c74df32c724a1652ad8399b4891bb02c9d43743a/memory.c/buggy/mm/memory.c