spin_lock(&init_mm.page_table_lock); 
int map_vm_area(struct vm_struct *area, pgprot_t prot, struct page ***pages){	pgd_t *pgd;	unsigned long next;	unsigned long addr = (unsigned long) area->addr;	unsigned long end = addr + area->size - PAGE_SIZE;	int err;	BUG_ON(addr >= end);	pgd = pgd_offset_k(addr);	spin_lock(&init_mm.page_table_lock);	do {		next = pgd_addr_end(addr, end);		err = vmap_pud_range(pgd, addr, next, prot, pages);		if (err)			break;	} while (pgd++, addr = next, addr != end);	spin_unlock(&init_mm.page_table_lock);	flush_cache_vmap((unsigned long) area->addr, end);	return err;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/872fec16d9a0ed3b75b8893aa217e49cca575ee5/vmalloc.c/buggy/mm/vmalloc.c