X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=arch%2Fi386%2Fmm%2Fpageattr.c;h=a00267a5bd0d7067d7dffb6dc44eb9df1ec0268a;hb=9464c7cf61b9433057924c36e6e02f303a00e768;hp=ad0f86a6af95928072858a77ac050c4ca3c2afba;hpb=3944158a6d33f94668dbd6bdc32ff5c67bb53ec2;p=linux-2.6.git diff --git a/arch/i386/mm/pageattr.c b/arch/i386/mm/pageattr.c index ad0f86a6a..a00267a5b 100644 --- a/arch/i386/mm/pageattr.c +++ b/arch/i386/mm/pageattr.c @@ -3,13 +3,12 @@ * Thanks to Ben LaHaise for precious feedback. */ +#include #include #include #include #include #include -#include -#include #include #include #include @@ -132,12 +131,6 @@ __change_page_attr(struct page *page, pgprot_t prot) BUG_ON(PageHighMem(page)); address = (unsigned long)page_address(page); - if (address >= (unsigned long)__start_rodata && address <= (unsigned long)__end_rodata && - (pgprot_val(prot) & _PAGE_RW)) { - pgprot_val(prot) &= ~(_PAGE_RW); - add_taint(TAINT_MACHINE_CHECK); - } - kpte = lookup_address(address); if (!kpte) return -EINVAL; @@ -216,19 +209,19 @@ int change_page_attr(struct page *page, int numpages, pgprot_t prot) } void global_flush_tlb(void) -{ - struct list_head l; +{ + LIST_HEAD(l); struct page *pg, *next; BUG_ON(irqs_disabled()); spin_lock_irq(&cpa_lock); - list_replace_init(&df_list, &l); + list_splice_init(&df_list, &l); spin_unlock_irq(&cpa_lock); flush_map(); list_for_each_entry_safe(pg, next, &l, lru) __free_page(pg); -} +} #ifdef CONFIG_DEBUG_PAGEALLOC void kernel_map_pages(struct page *page, int numpages, int enable) @@ -236,8 +229,8 @@ void kernel_map_pages(struct page *page, int numpages, int enable) if (PageHighMem(page)) return; if (!enable) - debug_check_no_locks_freed(page_address(page), - numpages * PAGE_SIZE); + mutex_debug_check_no_locks_freed(page_address(page), + numpages * PAGE_SIZE); /* the return value is ignored - the calls cannot fail, * large pages are disabled at boot time.