hpte_r = (arpn << HPTE_R_RPN_SHIFT) | rflags; 
hpte_r = (prpn << HPTE_R_RPN_SHIFT) | rflags; 
long native_hpte_insert(unsigned long hpte_group, unsigned long va,			unsigned long prpn, unsigned long vflags,			unsigned long rflags){	unsigned long arpn = physRpn_to_absRpn(prpn);	hpte_t *hptep = htab_address + hpte_group;	unsigned long hpte_v, hpte_r;	int i;	for (i = 0; i < HPTES_PER_GROUP; i++) {		if (! (hptep->v & HPTE_V_VALID)) {			/* retry with lock held */			native_lock_hpte(hptep);			if (! (hptep->v & HPTE_V_VALID))				break;			native_unlock_hpte(hptep);		}		hptep++;	}	if (i == HPTES_PER_GROUP)		return -1;	hpte_v = (va >> 23) << HPTE_V_AVPN_SHIFT | vflags | HPTE_V_VALID;	if (vflags & HPTE_V_LARGE)		va &= ~(1UL << HPTE_V_AVPN_SHIFT);	hpte_r = (arpn << HPTE_R_RPN_SHIFT) | rflags;	hptep->r = hpte_r;	/* Guarantee the second dword is visible before the valid bit */	__asm__ __volatile__ ("eieio" : : : "memory");	/*	 * Now set the first dword including the valid bit	 * NOTE: this also unlocks the hpte	 */	hptep->v = hpte_v;	__asm__ __volatile__ ("ptesync" : : : "memory");	return i | (!!(vflags & HPTE_V_SECONDARY) << 3);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/aefd16b0c5a594b5feaba23954ad74061f45c8a5/hash_native.c/buggy/arch/ppc64/mm/hash_native.c