hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
kernel/arch/s390/mm/pageattr.c
....@@ -7,7 +7,6 @@
77 #include <linux/mm.h>
88 #include <asm/cacheflush.h>
99 #include <asm/facility.h>
10
-#include <asm/pgtable.h>
1110 #include <asm/pgalloc.h>
1211 #include <asm/page.h>
1312 #include <asm/set_memory.h>
....@@ -86,7 +85,7 @@
8685 {
8786 pte_t *ptep, new;
8887
89
- ptep = pte_offset(pmdp, addr);
88
+ ptep = pte_offset_kernel(pmdp, addr);
9089 do {
9190 new = *ptep;
9291 if (pte_none(new))
....@@ -279,7 +278,7 @@
279278 return rc;
280279 }
281280
282
-static DEFINE_MUTEX(cpa_mutex);
281
+DEFINE_MUTEX(cpa_mutex);
283282
284283 static int change_page_attr(unsigned long addr, unsigned long end,
285284 unsigned long flags)
....@@ -338,19 +337,11 @@
338337 {
339338 unsigned long address;
340339 int nr, i, j;
341
- pgd_t *pgd;
342
- p4d_t *p4d;
343
- pud_t *pud;
344
- pmd_t *pmd;
345340 pte_t *pte;
346341
347342 for (i = 0; i < numpages;) {
348343 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);
354345 nr = (unsigned long)pte >> ilog2(sizeof(long));
355346 nr = PTRS_PER_PTE - (nr & (PTRS_PER_PTE - 1));
356347 nr = min(numpages - i, nr);
....@@ -366,21 +357,5 @@
366357 i += nr;
367358 }
368359 }
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 */
385360
386361 #endif /* CONFIG_DEBUG_PAGEALLOC */