/* This one is only used for pages with the global bit set so we don't care much about the ASID.  */
void local_flush_tlb_one(unsigned long page)
/* This one is only used for pages with the global bit set so we don't care much about the ASID.  */
void local_flush_tlb_one(unsigned long page)
{
	unsigned long flags;
	int oldpid, idx;
	ENTER_CRITICAL(flags);
	oldpid = read_c0_entryhi();
	page &= (PAGE_MASK << 1);
	write_c0_entryhi(page);
	mtc0_tlbw_hazard();
	tlb_probe();
	tlb_probe_hazard();
	idx = read_c0_index();
	write_c0_entrylo0(0);
	write_c0_entrylo1(0);
	if (idx >= 0) {
		write_c0_entryhi(UNIQUE_ENTRYHI(idx));
		mtc0_tlbw_hazard();
		tlb_write_indexed();
		tlbw_use_hazard();
	}
	write_c0_entryhi(oldpid);
	FLUSH_ITLB;
	EXIT_CRITICAL(flags);
}