Lines Matching refs:addr
14 static inline unsigned long sske_frame(unsigned long addr, unsigned char skey)
16 asm volatile(".insn rrf,0xb22b0000,%[skey],%[addr],1,0"
17 : [addr] "+a" (addr) : [skey] "d" (skey));
18 return addr;
56 static void pgt_set(unsigned long *old, unsigned long new, unsigned long addr,
75 crdte(*old, new, table, dtt, addr, S390_lowcore.kernel_asce);
83 static int walk_pte_level(pmd_t *pmdp, unsigned long addr, unsigned long end,
88 ptep = pte_offset_kernel(pmdp, addr);
101 pgt_set((unsigned long *)ptep, pte_val(new), addr, CRDTE_DTT_PAGE);
103 addr += PAGE_SIZE;
105 } while (addr < end);
109 static int split_pmd_page(pmd_t *pmdp, unsigned long addr)
132 pgt_set((unsigned long *)pmdp, pmd_val(new), addr, CRDTE_DTT_SEGMENT);
138 static void modify_pmd_page(pmd_t *pmdp, unsigned long addr,
151 pgt_set((unsigned long *)pmdp, pmd_val(new), addr, CRDTE_DTT_SEGMENT);
154 static int walk_pmd_level(pud_t *pudp, unsigned long addr, unsigned long end,
161 pmdp = pmd_offset(pudp, addr);
165 next = pmd_addr_end(addr, end);
167 if (addr & ~PMD_MASK || addr + PMD_SIZE > next) {
168 rc = split_pmd_page(pmdp, addr);
173 modify_pmd_page(pmdp, addr, flags);
175 rc = walk_pte_level(pmdp, addr, next, flags);
180 addr = next;
182 } while (addr < end);
186 static int split_pud_page(pud_t *pudp, unsigned long addr)
209 pgt_set((unsigned long *)pudp, pud_val(new), addr, CRDTE_DTT_REGION3);
215 static void modify_pud_page(pud_t *pudp, unsigned long addr,
228 pgt_set((unsigned long *)pudp, pud_val(new), addr, CRDTE_DTT_REGION3);
231 static int walk_pud_level(p4d_t *p4d, unsigned long addr, unsigned long end,
238 pudp = pud_offset(p4d, addr);
242 next = pud_addr_end(addr, end);
244 if (addr & ~PUD_MASK || addr + PUD_SIZE > next) {
245 rc = split_pud_page(pudp, addr);
250 modify_pud_page(pudp, addr, flags);
252 rc = walk_pmd_level(pudp, addr, next, flags);
255 addr = next;
257 } while (addr < end && !rc);
261 static int walk_p4d_level(pgd_t *pgd, unsigned long addr, unsigned long end,
268 p4dp = p4d_offset(pgd, addr);
272 next = p4d_addr_end(addr, end);
273 rc = walk_pud_level(p4dp, addr, next, flags);
275 addr = next;
277 } while (addr < end && !rc);
283 static int change_page_attr(unsigned long addr, unsigned long end,
290 if (addr == end)
295 pgdp = pgd_offset_k(addr);
299 next = pgd_addr_end(addr, end);
300 rc = walk_p4d_level(pgdp, addr, next, flags);
304 } while (pgdp++, addr = next, addr < end && !rc);
309 int __set_memory(unsigned long addr, int numpages, unsigned long flags)
315 addr &= PAGE_MASK;
316 return change_page_attr(addr, addr + numpages * PAGE_SIZE, flags);