]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/x86/mm/pageattr-test.c
x86: fix pageattr-selftest
[linux-2.6-omap-h63xx.git] / arch / x86 / mm / pageattr-test.c
index 0dce0e248a42c7b7556b175052b554acc7e12a9b..fe73905d075e1b1746bd308bfbd200f287d1bfa9 100644 (file)
 
 enum {
        NTEST                   = 400,
+       LOWEST_LEVEL            = PG_LEVEL_4K,
 #ifdef CONFIG_X86_64
-       LOWEST_LEVEL            = 4,
        LPS                     = (1 << PMD_SHIFT),
 #elif defined(CONFIG_X86_PAE)
-       LOWEST_LEVEL            = 3,
        LPS                     = (1 << PMD_SHIFT),
 #else
-       LOWEST_LEVEL            = 3, /* lookup_address lies here */
        LPS                     = (1 << 22),
 #endif
        GPS                     = (1<<30)
 };
 
-#ifdef CONFIG_X86_64
-# include <asm/proto.h>
-# define max_mapped            end_pfn_map
-#else
-# define max_mapped            max_low_pfn
-#endif
-
 struct split_state {
        long lpg, gpg, spg, exec;
        long min_exec, max_exec;
@@ -50,7 +41,7 @@ static __init int print_split(struct split_state *s)
        s->lpg = s->gpg = s->spg = s->exec = 0;
        s->min_exec = ~0UL;
        s->max_exec = 0;
-       for (i = 0; i < max_mapped; ) {
+       for (i = 0; i < max_pfn_mapped; ) {
                unsigned long addr = (unsigned long)__va(i << PAGE_SHIFT);
                int level;
                pte_t *pte;
@@ -99,8 +90,8 @@ static __init int print_split(struct split_state *s)
 
        expected = (s->gpg*GPS + s->lpg*LPS)/PAGE_SIZE + s->spg + missed;
        if (expected != i) {
-               printk(KERN_ERR "CPA max_mapped %lu but expected %lu\n",
-                       max_mapped, expected);
+               printk(KERN_ERR "CPA max_pfn_mapped %lu but expected %lu\n",
+                       max_pfn_mapped, expected);
                return 1;
        }
        return err;
@@ -122,22 +113,22 @@ static __init int exercise_pageattr(void)
 
        printk(KERN_INFO "CPA exercising pageattr\n");
 
-       bm = vmalloc((max_mapped + 7) / 8);
+       bm = vmalloc((max_pfn_mapped + 7) / 8);
        if (!bm) {
                printk(KERN_ERR "CPA Cannot vmalloc bitmap\n");
                return -ENOMEM;
        }
-       memset(bm, 0, (max_mapped + 7) / 8);
+       memset(bm, 0, (max_pfn_mapped + 7) / 8);
 
        failed += print_split(&sa);
        srandom32(100);
 
        for (i = 0; i < NTEST; i++) {
-               unsigned long pfn = random32() % max_mapped;
+               unsigned long pfn = random32() % max_pfn_mapped;
 
                addr[i] = (unsigned long)__va(pfn << PAGE_SHIFT);
                len[i] = random32() % 100;
-               len[i] = min_t(unsigned long, len[i], max_mapped - pfn - 1);
+               len[i] = min_t(unsigned long, len[i], max_pfn_mapped - pfn - 1);
 
                if (len[i] == 0)
                        len[i] = 1;
@@ -171,8 +162,8 @@ static __init int exercise_pageattr(void)
                        continue;
                }
 
-               err = change_page_attr_addr(addr[i], len[i],
-                           pte_pgprot(pte_clrhuge(pte_clrglobal(pte0))));
+               err = change_page_attr_clear(addr[i], len[i],
+                                               __pgprot(_PAGE_GLOBAL));
                if (err < 0) {
                        printk(KERN_ERR "CPA %d failed %d\n", i, err);
                        failed++;
@@ -206,8 +197,8 @@ static __init int exercise_pageattr(void)
                        failed++;
                        continue;
                }
-               err = change_page_attr_addr(addr[i], len[i],
-                                         pte_pgprot(pte_mkglobal(*pte)));
+               err = change_page_attr_set(addr[i], len[i],
+                                                       __pgprot(_PAGE_GLOBAL));
                if (err < 0) {
                        printk(KERN_ERR "CPA reverting failed: %d\n", err);
                        failed++;