x86: 64-bit pageattr.c, prepare for unification
authorIngo Molnar <mingo@elte.hu>
Wed, 30 Jan 2008 12:34:03 +0000 (13:34 +0100)
committerIngo Molnar <mingo@elte.hu>
Wed, 30 Jan 2008 12:34:03 +0000 (13:34 +0100)
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
arch/x86/mm/pageattr_64.c

index 34acbcd..190d4d3 100644 (file)
@@ -123,14 +123,15 @@ int change_page_attr_addr(unsigned long address, int numpages, pgprot_t prot)
 {
        int err = 0, kernel_map = 0, i;
 
+#ifdef CONFIG_X86_64
        if (address >= __START_KERNEL_map &&
                        address < __START_KERNEL_map + KERNEL_TEXT_SIZE) {
 
                address = (unsigned long)__va(__pa(address));
                kernel_map = 1;
        }
+#endif
 
-       down_write(&init_mm.mmap_sem);
        for (i = 0; i < numpages; i++, address += PAGE_SIZE) {
                unsigned long pfn = __pa(address) >> PAGE_SHIFT;
 
@@ -139,8 +140,11 @@ int change_page_attr_addr(unsigned long address, int numpages, pgprot_t prot)
                        if (err)
                                break;
                }
-               /* Handle kernel mapping too which aliases part of the
-                * lowmem */
+#ifdef CONFIG_X86_64
+               /*
+                * Handle kernel mapping too which aliases part of
+                * lowmem:
+                */
                if (__pa(address) < KERNEL_TEXT_SIZE) {
                        unsigned long addr2;
                        pgprot_t prot2;
@@ -150,8 +154,8 @@ int change_page_attr_addr(unsigned long address, int numpages, pgprot_t prot)
                        prot2 = pte_pgprot(pte_mkexec(pfn_pte(0, prot)));
                        err = __change_page_attr(addr2, pfn_to_page(pfn), prot2);
                }
+#endif
        }
-       up_write(&init_mm.mmap_sem);
 
        return err;
 }