From de8d9ccfb93cc92002372eac931ac5b8f6faaa7b Mon Sep 17 00:00:00 2001 From: Jeremy Fitzhardinge Date: Sat, 21 Jul 2007 17:11:35 +0200 Subject: [PATCH] --- yaml --- r: 62447 b: refs/heads/master c: 9585116ba09f1d8c52d0a1346e20bb9d443e9c02 h: refs/heads/master i: 62445: d6fa2e291c73b8f6c081a342b5c38b2bff98963f 62443: f5bfc03b989a7df6a1fafcb4ce8335dfd793b6e0 62439: 0dbe4770795fad712801674a06ba6a48660d3a10 62431: 8738b806c0dd1d22c34c128461522ffc67d56add v: v3 --- [refs] | 2 +- trunk/arch/i386/mm/ioremap.c | 2 +- trunk/include/linux/vmalloc.h | 7 +++++++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 1ad149b4dca7..566ec81d77fb 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: a2900975ef3f1df33c83e750cc1e490de3374ca8 +refs/heads/master: 9585116ba09f1d8c52d0a1346e20bb9d443e9c02 diff --git a/trunk/arch/i386/mm/ioremap.c b/trunk/arch/i386/mm/ioremap.c index fff08ae7b5ed..0b278315d737 100644 --- a/trunk/arch/i386/mm/ioremap.c +++ b/trunk/arch/i386/mm/ioremap.c @@ -196,7 +196,7 @@ void iounmap(volatile void __iomem *addr) /* Reset the direct mapping. Can block */ if ((p->flags >> 20) && p->phys_addr < virt_to_phys(high_memory) - 1) { change_page_attr(virt_to_page(__va(p->phys_addr)), - p->size >> PAGE_SHIFT, + get_vm_area_size(p) >> PAGE_SHIFT, PAGE_KERNEL); global_flush_tlb(); } diff --git a/trunk/include/linux/vmalloc.h b/trunk/include/linux/vmalloc.h index c2b10cae5da5..89338b468d0d 100644 --- a/trunk/include/linux/vmalloc.h +++ b/trunk/include/linux/vmalloc.h @@ -58,6 +58,13 @@ void vmalloc_sync_all(void); /* * Lowlevel-APIs (not for driver use!) */ + +static inline size_t get_vm_area_size(const struct vm_struct *area) +{ + /* return actual size without guard page */ + return area->size - PAGE_SIZE; +} + extern struct vm_struct *get_vm_area(unsigned long size, unsigned long flags); extern struct vm_struct *__get_vm_area(unsigned long size, unsigned long flags, unsigned long start, unsigned long end);