Lines Matching refs:raddr
1206 if (temp->raddr == rmap->raddr) {
1222 * @raddr: rmap address in the shadow gmap
1229 static int gmap_protect_rmap(struct gmap *sg, unsigned long raddr,
1248 rmap->raddr = raddr;
1306 * @raddr: rmap address in the shadow guest address space
1310 static void gmap_unshadow_page(struct gmap *sg, unsigned long raddr)
1315 table = gmap_table_walk(sg, raddr, 0); /* get page table pointer */
1318 gmap_call_notifier(sg, raddr, raddr + _PAGE_SIZE - 1);
1319 ptep_unshadow_pte(sg->mm, raddr, (pte_t *) table);
1325 * @raddr: rmap address in the shadow guest address space
1330 static void __gmap_unshadow_pgt(struct gmap *sg, unsigned long raddr,
1336 for (i = 0; i < _PAGE_ENTRIES; i++, raddr += _PAGE_SIZE)
1343 * @raddr: address in the shadow guest address space
1347 static void gmap_unshadow_pgt(struct gmap *sg, unsigned long raddr)
1354 ste = gmap_table_walk(sg, raddr, 1); /* get segment pointer */
1357 gmap_call_notifier(sg, raddr, raddr + _SEGMENT_SIZE - 1);
1358 sto = __pa(ste - ((raddr & _SEGMENT_INDEX) >> _SEGMENT_SHIFT));
1359 gmap_idte_one(sto | _ASCE_TYPE_SEGMENT, raddr);
1362 __gmap_unshadow_pgt(sg, raddr, __va(pgt));
1372 * @raddr: rmap address in the shadow guest address space
1377 static void __gmap_unshadow_sgt(struct gmap *sg, unsigned long raddr,
1385 for (i = 0; i < _CRST_ENTRIES; i++, raddr += _SEGMENT_SIZE) {
1390 __gmap_unshadow_pgt(sg, raddr, __va(pgt));
1401 * @raddr: rmap address in the shadow guest address space
1405 static void gmap_unshadow_sgt(struct gmap *sg, unsigned long raddr)
1412 r3e = gmap_table_walk(sg, raddr, 2); /* get region-3 pointer */
1415 gmap_call_notifier(sg, raddr, raddr + _REGION3_SIZE - 1);
1416 r3o = (unsigned long) (r3e - ((raddr & _REGION3_INDEX) >> _REGION3_SHIFT));
1417 gmap_idte_one(__pa(r3o) | _ASCE_TYPE_REGION3, raddr);
1420 __gmap_unshadow_sgt(sg, raddr, __va(sgt));
1430 * @raddr: address in the shadow guest address space
1435 static void __gmap_unshadow_r3t(struct gmap *sg, unsigned long raddr,
1443 for (i = 0; i < _CRST_ENTRIES; i++, raddr += _REGION3_SIZE) {
1448 __gmap_unshadow_sgt(sg, raddr, __va(sgt));
1459 * @raddr: rmap address in the shadow guest address space
1463 static void gmap_unshadow_r3t(struct gmap *sg, unsigned long raddr)
1470 r2e = gmap_table_walk(sg, raddr, 3); /* get region-2 pointer */
1473 gmap_call_notifier(sg, raddr, raddr + _REGION2_SIZE - 1);
1474 r2o = (unsigned long) (r2e - ((raddr & _REGION2_INDEX) >> _REGION2_SHIFT));
1475 gmap_idte_one(__pa(r2o) | _ASCE_TYPE_REGION2, raddr);
1478 __gmap_unshadow_r3t(sg, raddr, __va(r3t));
1488 * @raddr: rmap address in the shadow guest address space
1493 static void __gmap_unshadow_r2t(struct gmap *sg, unsigned long raddr,
1501 for (i = 0; i < _CRST_ENTRIES; i++, raddr += _REGION2_SIZE) {
1506 __gmap_unshadow_r3t(sg, raddr, __va(r3t));
1517 * @raddr: rmap address in the shadow guest address space
1521 static void gmap_unshadow_r2t(struct gmap *sg, unsigned long raddr)
1528 r1e = gmap_table_walk(sg, raddr, 4); /* get region-1 pointer */
1531 gmap_call_notifier(sg, raddr, raddr + _REGION1_SIZE - 1);
1532 r1o = (unsigned long) (r1e - ((raddr & _REGION1_INDEX) >> _REGION1_SHIFT));
1533 gmap_idte_one(__pa(r1o) | _ASCE_TYPE_REGION1, raddr);
1536 __gmap_unshadow_r2t(sg, raddr, __va(r2t));
1546 * @raddr: rmap address in the shadow guest address space
1551 static void __gmap_unshadow_r1t(struct gmap *sg, unsigned long raddr,
1561 for (i = 0; i < _CRST_ENTRIES; i++, raddr += _REGION1_SIZE) {
1565 __gmap_unshadow_r2t(sg, raddr, __va(r2t));
1567 gmap_idte_one(asce, raddr);
1767 unsigned long raddr, origin, offset, len;
1811 raddr = (saddr & _REGION1_MASK) | _SHADOW_RMAP_REGION1;
1815 rc = gmap_protect_rmap(sg, raddr, origin + offset, len);
1824 gmap_unshadow_r2t(sg, raddr);
1851 unsigned long raddr, origin, offset, len;
1895 raddr = (saddr & _REGION2_MASK) | _SHADOW_RMAP_REGION2;
1899 rc = gmap_protect_rmap(sg, raddr, origin + offset, len);
1908 gmap_unshadow_r3t(sg, raddr);
1935 unsigned long raddr, origin, offset, len;
1979 raddr = (saddr & _REGION3_MASK) | _SHADOW_RMAP_REGION3;
1983 rc = gmap_protect_rmap(sg, raddr, origin + offset, len);
1992 gmap_unshadow_sgt(sg, raddr);
2059 unsigned long raddr, origin;
2100 raddr = (saddr & _SEGMENT_MASK) | _SHADOW_RMAP_SEGMENT;
2102 rc = gmap_protect_rmap(sg, raddr, origin, PAGE_SIZE);
2111 gmap_unshadow_pgt(sg, raddr);
2152 rmap->raddr = (saddr & PAGE_MASK) | _SHADOW_RMAP_PGTABLE;
2207 unsigned long start, end, bits, raddr;
2231 bits = rmap->raddr & _SHADOW_RMAP_MASK;
2232 raddr = rmap->raddr ^ bits;
2235 gmap_unshadow_r2t(sg, raddr);
2238 gmap_unshadow_r3t(sg, raddr);
2241 gmap_unshadow_sgt(sg, raddr);
2244 gmap_unshadow_pgt(sg, raddr);
2247 gmap_unshadow_page(sg, raddr);