if (hpteflags & (_PAGE_GUARDED|_PAGE_NO_CACHE)) lhpte.dw1.flags.flags &= ~_PAGE_COHERENT;
if (rflags & (_PAGE_GUARDED|_PAGE_NO_CACHE)) hpte_r &= ~_PAGE_COHERENT;
long pSeries_lpar_hpte_insert(unsigned long hpte_group,			      unsigned long va, unsigned long prpn,			      int secondary, unsigned long hpteflags,			      int bolted, int large){	unsigned long arpn = physRpn_to_absRpn(prpn);	unsigned long lpar_rc;	unsigned long flags;	unsigned long slot;	HPTE lhpte;	unsigned long dummy0, dummy1;	/* Fill in the local HPTE with absolute rpn, avpn and flags */	lhpte.dw1.dword1      = 0;	lhpte.dw1.dw1.rpn     = arpn;	lhpte.dw1.flags.flags = hpteflags;	lhpte.dw0.dword0      = 0;	lhpte.dw0.dw0.avpn    = va >> 23;	lhpte.dw0.dw0.h       = secondary;	lhpte.dw0.dw0.bolted  = bolted;	lhpte.dw0.dw0.v       = 1;	if (large) {		lhpte.dw0.dw0.l = 1;		lhpte.dw0.dw0.avpn &= ~0x1UL;	}	/* Now fill in the actual HPTE */	/* Set CEC cookie to 0         */	/* Zero page = 0               */	/* I-cache Invalidate = 0      */	/* I-cache synchronize = 0     */	/* Exact = 0                   */	flags = 0;	/* XXX why is this here? - Anton */	if (hpteflags & (_PAGE_GUARDED|_PAGE_NO_CACHE))		lhpte.dw1.flags.flags &= ~_PAGE_COHERENT;	lpar_rc = plpar_hcall(H_ENTER, flags, hpte_group, lhpte.dw0.dword0,			      lhpte.dw1.dword1, &slot, &dummy0, &dummy1);	if (unlikely(lpar_rc == H_PTEG_Full))		return -1;	/*	 * Since we try and ioremap PHBs we don't own, the pte insert	 * will fail. However we must catch the failure in hash_page	 * or we will loop forever, so return -2 in this case.	 */	if (unlikely(lpar_rc != H_Success))		return -2;	/* Because of iSeries, we have to pass down the secondary	 * bucket bit here as well	 */	return (slot & 7) | (secondary << 3);}