Lines Matching refs:asce

90 	gmap->asce = atype | _ASCE_TABLE_LENGTH |
120 gmap_asce = gmap->asce;
132 __tlb_flush_idte(gmap->asce);
271 struct gmap, list)->asce;
565 if ((gmap->asce & _ASCE_TYPE_MASK) >= _ASCE_TYPE_REGION1) {
573 if ((gmap->asce & _ASCE_TYPE_MASK) >= _ASCE_TYPE_REGION2) {
581 if ((gmap->asce & _ASCE_TYPE_MASK) >= _ASCE_TYPE_REGION3) {
807 const int asce_type = gmap->asce & _ASCE_TYPE_MASK;
1288 * @asce: region or segment table *origin* + table-type bits
1293 * The table-type of the @asce identifies the portion of the @vaddr
1296 static inline void gmap_idte_one(unsigned long asce, unsigned long vaddr)
1300 : : "a" (asce), "a" (vaddr) : "cc", "memory");
1554 unsigned long asce;
1560 asce = __pa(r1t) | _ASCE_TYPE_REGION1;
1567 gmap_idte_one(asce, raddr);
1592 table = __va(sg->asce & _ASCE_ORIGIN);
1593 switch (sg->asce & _ASCE_TYPE_MASK) {
1610 * gmap_find_shadow - find a specific asce in the list of shadow tables
1612 * @asce: ASCE for which the shadow table is created
1615 * Returns the pointer to a gmap if a shadow table with the given asce is
1619 static struct gmap *gmap_find_shadow(struct gmap *parent, unsigned long asce,
1625 if (sg->orig_asce != asce || sg->edat_level != edat_level ||
1640 * @asce: ASCE for which the shadow table is requested
1648 int gmap_shadow_valid(struct gmap *sg, unsigned long asce, int edat_level)
1652 return sg->orig_asce == asce && sg->edat_level == edat_level;
1659 * @asce: ASCE for which the shadow table is created
1662 * The pages of the top level page table referred by the asce parameter
1671 struct gmap *gmap_shadow(struct gmap *parent, unsigned long asce,
1681 sg = gmap_find_shadow(parent, asce, edat_level);
1686 limit = -1UL >> (33 - (((asce & _ASCE_TYPE_MASK) >> 2) * 11));
1687 if (asce & _ASCE_REAL_SPACE)
1695 new->orig_asce = asce;
1700 sg = gmap_find_shadow(parent, asce, edat_level);
1706 if (asce & _ASCE_REAL_SPACE) {
1721 if (asce & _ASCE_REAL_SPACE) {
1730 rc = gmap_protect_range(parent, asce & _ASCE_ORIGIN,
1731 ((asce & _ASCE_TABLE_LENGTH) + 1) * PAGE_SIZE,
2323 __pmdp_idte(gaddr, (pmd_t *)pmdp, IDTE_GUEST_ASCE, gmap->asce,
2405 gmap->asce, IDTE_LOCAL);
2440 gmap->asce, IDTE_GLOBAL);
2832 * the old asce has been removed from the list, and therefore it
2861 unsigned long asce;
2868 if ((gmap->asce & _ASCE_TYPE_MASK) == _ASCE_TYPE_SEGMENT)
2888 asce = (gmap->asce & ~_ASCE_ORIGIN) | __pa(table);
2889 WRITE_ONCE(gmap->asce, asce);
2890 WRITE_ONCE(gmap->mm->context.gmap_asce, asce);