Lines Matching refs:asce
79 gmap->asce = atype | _ASCE_TABLE_LENGTH |
109 gmap_asce = gmap->asce;
121 __tlb_flush_idte(gmap->asce);
260 struct gmap, list)->asce;
555 if ((gmap->asce & _ASCE_TYPE_MASK) >= _ASCE_TYPE_REGION1) {
563 if ((gmap->asce & _ASCE_TYPE_MASK) >= _ASCE_TYPE_REGION2) {
571 if ((gmap->asce & _ASCE_TYPE_MASK) >= _ASCE_TYPE_REGION3) {
791 const int asce_type = gmap->asce & _ASCE_TYPE_MASK;
1265 * @asce: region or segment table *origin* + table-type bits
1270 * The table-type of the @asce identifies the portion of the @vaddr
1273 static inline void gmap_idte_one(unsigned long asce, unsigned long vaddr)
1277 : : "a" (asce), "a" (vaddr) : "cc", "memory");
1527 unsigned long asce, *r2t;
1532 asce = (unsigned long) r1t | _ASCE_TYPE_REGION1;
1539 gmap_idte_one(asce, raddr);
1564 table = (unsigned long *)(sg->asce & _ASCE_ORIGIN);
1565 switch (sg->asce & _ASCE_TYPE_MASK) {
1582 * gmap_find_shadow - find a specific asce in the list of shadow tables
1584 * @asce: ASCE for which the shadow table is created
1587 * Returns the pointer to a gmap if a shadow table with the given asce is
1591 static struct gmap *gmap_find_shadow(struct gmap *parent, unsigned long asce,
1597 if (sg->orig_asce != asce || sg->edat_level != edat_level ||
1612 * @asce: ASCE for which the shadow table is requested
1620 int gmap_shadow_valid(struct gmap *sg, unsigned long asce, int edat_level)
1624 return sg->orig_asce == asce && sg->edat_level == edat_level;
1631 * @asce: ASCE for which the shadow table is created
1634 * The pages of the top level page table referred by the asce parameter
1643 struct gmap *gmap_shadow(struct gmap *parent, unsigned long asce,
1653 sg = gmap_find_shadow(parent, asce, edat_level);
1658 limit = -1UL >> (33 - (((asce & _ASCE_TYPE_MASK) >> 2) * 11));
1659 if (asce & _ASCE_REAL_SPACE)
1666 new->orig_asce = asce;
1671 sg = gmap_find_shadow(parent, asce, edat_level);
1677 if (asce & _ASCE_REAL_SPACE) {
1692 if (asce & _ASCE_REAL_SPACE) {
1701 rc = gmap_protect_range(parent, asce & _ASCE_ORIGIN,
1702 ((asce & _ASCE_TABLE_LENGTH) + 1) * PAGE_SIZE,
2294 __pmdp_idte(gaddr, (pmd_t *)pmdp, IDTE_GUEST_ASCE, gmap->asce,
2376 gmap->asce, IDTE_LOCAL);
2411 gmap->asce, IDTE_GLOBAL);
2754 * the old asce has been removed from the list, and therefore it
2780 unsigned long asce;
2803 asce = (gmap->asce & ~_ASCE_ORIGIN) | __pa(table);
2804 WRITE_ONCE(gmap->asce, asce);
2805 WRITE_ONCE(gmap->mm->context.gmap_asce, asce);