write_c0_entryhi(UNIQUE_ENTRYHI(idx)); 
void local_flush_tlb_range(struct vm_area_struct *vma, unsigned long start,	unsigned long end){	struct mm_struct *mm = vma->vm_mm;	unsigned long flags;	int cpu;	local_irq_save(flags);	cpu = smp_processor_id();	if (cpu_context(cpu, mm) != 0) {		int size;		size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT;		size = (size + 1) >> 1;		if (size <= (current_cpu_data.tlbsize/2)) {			int oldpid = read_c0_entryhi() & ASID_MASK;			int newpid = cpu_asid(cpu, mm);			start &= (PAGE_MASK << 1);			end += ((PAGE_SIZE << 1) - 1);			end &= (PAGE_MASK << 1);			while (start < end) {				int idx;				write_c0_entryhi(start | newpid);				start += (PAGE_SIZE << 1);				tlb_probe();				idx = read_c0_index();				write_c0_entrylo0(0);				write_c0_entrylo1(0);				write_c0_entryhi(UNIQUE_ENTRYHI(idx));				if (idx < 0)					continue;				tlb_write_indexed();			}			write_c0_entryhi(oldpid);		} else {			drop_mmu_context(mm, cpu);		}	}	local_irq_restore(flags);}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/172546bf601356f94f8018af7908a9b7c1c4915c/tlb-sb1.c/buggy/arch/mips/mm/tlb-sb1.c