Lines Matching refs:asce

90 	gmap->asce = atype | _ASCE_TABLE_LENGTH |
120 gmap_asce = gmap->asce;
132 __tlb_flush_idte(gmap->asce);
273 struct gmap, list)->asce;
567 if ((gmap->asce & _ASCE_TYPE_MASK) >= _ASCE_TYPE_REGION1) {
575 if ((gmap->asce & _ASCE_TYPE_MASK) >= _ASCE_TYPE_REGION2) {
583 if ((gmap->asce & _ASCE_TYPE_MASK) >= _ASCE_TYPE_REGION3) {
809 const int asce_type = gmap->asce & _ASCE_TYPE_MASK;
1290 * @asce: region or segment table *origin* + table-type bits
1295 * The table-type of the @asce identifies the portion of the @vaddr
1298 static inline void gmap_idte_one(unsigned long asce, unsigned long vaddr)
1302 : : "a" (asce), "a" (vaddr) : "cc", "memory");
1556 unsigned long asce;
1562 asce = __pa(r1t) | _ASCE_TYPE_REGION1;
1569 gmap_idte_one(asce, raddr);
1594 table = __va(sg->asce & _ASCE_ORIGIN);
1595 switch (sg->asce & _ASCE_TYPE_MASK) {
1612 * gmap_find_shadow - find a specific asce in the list of shadow tables
1614 * @asce: ASCE for which the shadow table is created
1617 * Returns the pointer to a gmap if a shadow table with the given asce is
1621 static struct gmap *gmap_find_shadow(struct gmap *parent, unsigned long asce,
1627 if (sg->orig_asce != asce || sg->edat_level != edat_level ||
1642 * @asce: ASCE for which the shadow table is requested
1650 int gmap_shadow_valid(struct gmap *sg, unsigned long asce, int edat_level)
1654 return sg->orig_asce == asce && sg->edat_level == edat_level;
1661 * @asce: ASCE for which the shadow table is created
1664 * The pages of the top level page table referred by the asce parameter
1673 struct gmap *gmap_shadow(struct gmap *parent, unsigned long asce,
1683 sg = gmap_find_shadow(parent, asce, edat_level);
1688 limit = -1UL >> (33 - (((asce & _ASCE_TYPE_MASK) >> 2) * 11));
1689 if (asce & _ASCE_REAL_SPACE)
1697 new->orig_asce = asce;
1702 sg = gmap_find_shadow(parent, asce, edat_level);
1708 if (asce & _ASCE_REAL_SPACE) {
1723 if (asce & _ASCE_REAL_SPACE) {
1732 rc = gmap_protect_range(parent, asce & _ASCE_ORIGIN,
1733 ((asce & _ASCE_TABLE_LENGTH) + 1) * PAGE_SIZE,
2325 __pmdp_idte(gaddr, (pmd_t *)pmdp, IDTE_GUEST_ASCE, gmap->asce,
2407 gmap->asce, IDTE_LOCAL);
2442 gmap->asce, IDTE_GLOBAL);
2834 * the old asce has been removed from the list, and therefore it
2863 unsigned long asce;
2870 if ((gmap->asce & _ASCE_TYPE_MASK) == _ASCE_TYPE_SEGMENT)
2890 asce = (gmap->asce & ~_ASCE_ORIGIN) | __pa(table);
2891 WRITE_ONCE(gmap->asce, asce);
2892 WRITE_ONCE(gmap->mm->context.gmap_asce, asce);