.. | .. |
---|
7 | 7 | #include <linux/mm.h> |
---|
8 | 8 | #include <asm/cacheflush.h> |
---|
9 | 9 | #include <asm/facility.h> |
---|
10 | | -#include <asm/pgtable.h> |
---|
11 | 10 | #include <asm/pgalloc.h> |
---|
12 | 11 | #include <asm/page.h> |
---|
13 | 12 | #include <asm/set_memory.h> |
---|
.. | .. |
---|
86 | 85 | { |
---|
87 | 86 | pte_t *ptep, new; |
---|
88 | 87 | |
---|
89 | | - ptep = pte_offset(pmdp, addr); |
---|
| 88 | + ptep = pte_offset_kernel(pmdp, addr); |
---|
90 | 89 | do { |
---|
91 | 90 | new = *ptep; |
---|
92 | 91 | if (pte_none(new)) |
---|
.. | .. |
---|
279 | 278 | return rc; |
---|
280 | 279 | } |
---|
281 | 280 | |
---|
282 | | -static DEFINE_MUTEX(cpa_mutex); |
---|
| 281 | +DEFINE_MUTEX(cpa_mutex); |
---|
283 | 282 | |
---|
284 | 283 | static int change_page_attr(unsigned long addr, unsigned long end, |
---|
285 | 284 | unsigned long flags) |
---|
.. | .. |
---|
338 | 337 | { |
---|
339 | 338 | unsigned long address; |
---|
340 | 339 | int nr, i, j; |
---|
341 | | - pgd_t *pgd; |
---|
342 | | - p4d_t *p4d; |
---|
343 | | - pud_t *pud; |
---|
344 | | - pmd_t *pmd; |
---|
345 | 340 | pte_t *pte; |
---|
346 | 341 | |
---|
347 | 342 | for (i = 0; i < numpages;) { |
---|
348 | 343 | address = page_to_phys(page + i); |
---|
349 | | - pgd = pgd_offset_k(address); |
---|
350 | | - p4d = p4d_offset(pgd, address); |
---|
351 | | - pud = pud_offset(p4d, address); |
---|
352 | | - pmd = pmd_offset(pud, address); |
---|
353 | | - pte = pte_offset_kernel(pmd, address); |
---|
| 344 | + pte = virt_to_kpte(address); |
---|
354 | 345 | nr = (unsigned long)pte >> ilog2(sizeof(long)); |
---|
355 | 346 | nr = PTRS_PER_PTE - (nr & (PTRS_PER_PTE - 1)); |
---|
356 | 347 | nr = min(numpages - i, nr); |
---|
.. | .. |
---|
366 | 357 | i += nr; |
---|
367 | 358 | } |
---|
368 | 359 | } |
---|
369 | | - |
---|
370 | | -#ifdef CONFIG_HIBERNATION |
---|
371 | | -bool kernel_page_present(struct page *page) |
---|
372 | | -{ |
---|
373 | | - unsigned long addr; |
---|
374 | | - int cc; |
---|
375 | | - |
---|
376 | | - addr = page_to_phys(page); |
---|
377 | | - asm volatile( |
---|
378 | | - " lra %1,0(%1)\n" |
---|
379 | | - " ipm %0\n" |
---|
380 | | - " srl %0,28" |
---|
381 | | - : "=d" (cc), "+a" (addr) : : "cc"); |
---|
382 | | - return cc == 0; |
---|
383 | | -} |
---|
384 | | -#endif /* CONFIG_HIBERNATION */ |
---|
385 | 360 | |
---|
386 | 361 | #endif /* CONFIG_DEBUG_PAGEALLOC */ |
---|