Merge tag 'dt-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
[linux-2.6-microblaze.git] / arch / s390 / include / asm / page.h
index 479dc76..d98d17a 100644 (file)
@@ -55,13 +55,16 @@ static inline void storage_key_init_range(unsigned long start, unsigned long end
  */
 static inline void copy_page(void *to, void *from)
 {
-       register void *reg2 asm ("2") = to;
-       register unsigned long reg3 asm ("3") = 0x1000;
-       register void *reg4 asm ("4") = from;
-       register unsigned long reg5 asm ("5") = 0xb0001000;
+       union register_pair dst, src;
+
+       dst.even = (unsigned long) to;
+       dst.odd  = 0x1000;
+       src.even = (unsigned long) from;
+       src.odd  = 0xb0001000;
+
        asm volatile(
-               "       mvcl    2,4"
-               : "+d" (reg2), "+d" (reg3), "+d" (reg4), "+d" (reg5)
+               "       mvcl    %[dst],%[src]"
+               : [dst] "+&d" (dst.pair), [src] "+&d" (src.pair)
                : : "memory", "cc");
 }
 
@@ -141,9 +144,6 @@ struct page;
 void arch_free_page(struct page *page, int order);
 void arch_alloc_page(struct page *page, int order);
 void arch_set_page_dat(struct page *page, int order);
-void arch_set_page_nodat(struct page *page, int order);
-int arch_test_page_nodat(struct page *page);
-void arch_set_page_states(int make_stable);
 
 static inline int devmem_is_allowed(unsigned long pfn)
 {