diff options
author | kaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk> | 2004-04-28 09:35:33 +0000 |
---|---|---|
committer | kaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk> | 2004-04-28 09:35:33 +0000 |
commit | 3b84d97dbdacf463aa95357c85868b06e14caa8d (patch) | |
tree | 88ac8b6960e7b1a39adae0210f1db033ad4942a7 /xenolinux-2.4.26-sparse/mm/vmalloc.c | |
parent | f57f5ec70d3e1b9d8047b14e0d5deafc2c549e5c (diff) | |
download | xen-3b84d97dbdacf463aa95357c85868b06e14caa8d.tar.gz xen-3b84d97dbdacf463aa95357c85868b06e14caa8d.tar.bz2 xen-3b84d97dbdacf463aa95357c85868b06e14caa8d.zip |
bitkeeper revision 1.879.1.1 (408f7ae5PHe1i2motf-Iulpr3dEVhQ)
Further modifications towards new block-device drivers for new I/O
model.
Diffstat (limited to 'xenolinux-2.4.26-sparse/mm/vmalloc.c')
-rw-r--r-- | xenolinux-2.4.26-sparse/mm/vmalloc.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/xenolinux-2.4.26-sparse/mm/vmalloc.c b/xenolinux-2.4.26-sparse/mm/vmalloc.c index 4d583b54a7..b030270b42 100644 --- a/xenolinux-2.4.26-sparse/mm/vmalloc.c +++ b/xenolinux-2.4.26-sparse/mm/vmalloc.c @@ -45,6 +45,10 @@ static inline void free_area_pte(pmd_t * pmd, unsigned long address, unsigned lo continue; if (pte_present(page)) { struct page *ptpage = pte_page(page); +#if defined(CONFIG_XEN_PRIVILEGED_GUEST) + if (pte_io(page)) + continue; +#endif if (VALID_PAGE(ptpage) && (!PageReserved(ptpage))) __free_page(ptpage); continue; @@ -250,11 +254,6 @@ void __vfree(void * addr, int free_area_pages) for (p = &vmlist ; (tmp = *p) ; p = &tmp->next) { if (tmp->addr == addr) { *p = tmp->next; -#ifdef CONFIG_XEN_PRIVILEGED_GUEST - if (tmp->flags & VM_IOREMAP) - zap_page_range(&init_mm, VMALLOC_VMADDR(tmp->addr), tmp->size); - else -#endif if (free_area_pages) vmfree_area_pages(VMALLOC_VMADDR(tmp->addr), tmp->size); write_unlock(&vmlist_lock); |