Lines Matching refs:raddr

1199  * @raddr: rmap address in the shadow gmap
1206 static int gmap_protect_rmap(struct gmap *sg, unsigned long raddr,
1225 rmap->raddr = raddr;
1283 * @raddr: rmap address in the shadow guest address space
1287 static void gmap_unshadow_page(struct gmap *sg, unsigned long raddr)
1292 table = gmap_table_walk(sg, raddr, 0); /* get page table pointer */
1295 gmap_call_notifier(sg, raddr, raddr + _PAGE_SIZE - 1);
1296 ptep_unshadow_pte(sg->mm, raddr, (pte_t *) table);
1302 * @raddr: rmap address in the shadow guest address space
1307 static void __gmap_unshadow_pgt(struct gmap *sg, unsigned long raddr,
1313 for (i = 0; i < _PAGE_ENTRIES; i++, raddr += _PAGE_SIZE)
1320 * @raddr: address in the shadow guest address space
1324 static void gmap_unshadow_pgt(struct gmap *sg, unsigned long raddr)
1330 ste = gmap_table_walk(sg, raddr, 1); /* get segment pointer */
1333 gmap_call_notifier(sg, raddr, raddr + _SEGMENT_SIZE - 1);
1334 sto = (unsigned long) (ste - ((raddr & _SEGMENT_INDEX) >> _SEGMENT_SHIFT));
1335 gmap_idte_one(sto | _ASCE_TYPE_SEGMENT, raddr);
1338 __gmap_unshadow_pgt(sg, raddr, pgt);
1348 * @raddr: rmap address in the shadow guest address space
1353 static void __gmap_unshadow_sgt(struct gmap *sg, unsigned long raddr,
1361 for (i = 0; i < _CRST_ENTRIES; i++, raddr += _SEGMENT_SIZE) {
1366 __gmap_unshadow_pgt(sg, raddr, pgt);
1377 * @raddr: rmap address in the shadow guest address space
1381 static void gmap_unshadow_sgt(struct gmap *sg, unsigned long raddr)
1387 r3e = gmap_table_walk(sg, raddr, 2); /* get region-3 pointer */
1390 gmap_call_notifier(sg, raddr, raddr + _REGION3_SIZE - 1);
1391 r3o = (unsigned long) (r3e - ((raddr & _REGION3_INDEX) >> _REGION3_SHIFT));
1392 gmap_idte_one(r3o | _ASCE_TYPE_REGION3, raddr);
1395 __gmap_unshadow_sgt(sg, raddr, sgt);
1405 * @raddr: address in the shadow guest address space
1410 static void __gmap_unshadow_r3t(struct gmap *sg, unsigned long raddr,
1418 for (i = 0; i < _CRST_ENTRIES; i++, raddr += _REGION3_SIZE) {
1423 __gmap_unshadow_sgt(sg, raddr, sgt);
1434 * @raddr: rmap address in the shadow guest address space
1438 static void gmap_unshadow_r3t(struct gmap *sg, unsigned long raddr)
1444 r2e = gmap_table_walk(sg, raddr, 3); /* get region-2 pointer */
1447 gmap_call_notifier(sg, raddr, raddr + _REGION2_SIZE - 1);
1448 r2o = (unsigned long) (r2e - ((raddr & _REGION2_INDEX) >> _REGION2_SHIFT));
1449 gmap_idte_one(r2o | _ASCE_TYPE_REGION2, raddr);
1452 __gmap_unshadow_r3t(sg, raddr, r3t);
1462 * @raddr: rmap address in the shadow guest address space
1467 static void __gmap_unshadow_r2t(struct gmap *sg, unsigned long raddr,
1475 for (i = 0; i < _CRST_ENTRIES; i++, raddr += _REGION2_SIZE) {
1480 __gmap_unshadow_r3t(sg, raddr, r3t);
1491 * @raddr: rmap address in the shadow guest address space
1495 static void gmap_unshadow_r2t(struct gmap *sg, unsigned long raddr)
1501 r1e = gmap_table_walk(sg, raddr, 4); /* get region-1 pointer */
1504 gmap_call_notifier(sg, raddr, raddr + _REGION1_SIZE - 1);
1505 r1o = (unsigned long) (r1e - ((raddr & _REGION1_INDEX) >> _REGION1_SHIFT));
1506 gmap_idte_one(r1o | _ASCE_TYPE_REGION1, raddr);
1509 __gmap_unshadow_r2t(sg, raddr, r2t);
1519 * @raddr: rmap address in the shadow guest address space
1524 static void __gmap_unshadow_r1t(struct gmap *sg, unsigned long raddr,
1533 for (i = 0; i < _CRST_ENTRIES; i++, raddr += _REGION1_SIZE) {
1537 __gmap_unshadow_r2t(sg, raddr, r2t);
1539 gmap_idte_one(asce, raddr);
1738 unsigned long raddr, origin, offset, len;
1781 raddr = (saddr & _REGION1_MASK) | _SHADOW_RMAP_REGION1;
1785 rc = gmap_protect_rmap(sg, raddr, origin + offset, len);
1795 gmap_unshadow_r2t(sg, raddr);
1822 unsigned long raddr, origin, offset, len;
1865 raddr = (saddr & _REGION2_MASK) | _SHADOW_RMAP_REGION2;
1869 rc = gmap_protect_rmap(sg, raddr, origin + offset, len);
1879 gmap_unshadow_r3t(sg, raddr);
1906 unsigned long raddr, origin, offset, len;
1949 raddr = (saddr & _REGION3_MASK) | _SHADOW_RMAP_REGION3;
1953 rc = gmap_protect_rmap(sg, raddr, origin + offset, len);
1963 gmap_unshadow_sgt(sg, raddr);
2030 unsigned long raddr, origin;
2070 raddr = (saddr & _SEGMENT_MASK) | _SHADOW_RMAP_SEGMENT;
2072 rc = gmap_protect_rmap(sg, raddr, origin, PAGE_SIZE);
2082 gmap_unshadow_pgt(sg, raddr);
2123 rmap->raddr = (saddr & PAGE_MASK) | _SHADOW_RMAP_PGTABLE;
2178 unsigned long start, end, bits, raddr;
2202 bits = rmap->raddr & _SHADOW_RMAP_MASK;
2203 raddr = rmap->raddr ^ bits;
2206 gmap_unshadow_r2t(sg, raddr);
2209 gmap_unshadow_r3t(sg, raddr);
2212 gmap_unshadow_sgt(sg, raddr);
2215 gmap_unshadow_pgt(sg, raddr);
2218 gmap_unshadow_page(sg, raddr);