aboutsummaryrefslogtreecommitdiffstats
path: root/xenolinux-2.4.26-sparse/mm/vmalloc.c
diff options
context:
space:
mode:
authorkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>2004-04-28 09:35:33 +0000
committerkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>2004-04-28 09:35:33 +0000
commit3b84d97dbdacf463aa95357c85868b06e14caa8d (patch)
tree88ac8b6960e7b1a39adae0210f1db033ad4942a7 /xenolinux-2.4.26-sparse/mm/vmalloc.c
parentf57f5ec70d3e1b9d8047b14e0d5deafc2c549e5c (diff)
downloadxen-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.c9
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);