# HG changeset patch # User Keir Fraser # Date 1244107954 -3600 # Node ID b2651e8eaa82c3401ccb7e39a879016bf3b42a67 # Parent 05c4915c918213b6f5e144f6631e82f97abc2294 blktap2: allow to build as module ... and also allow to interact with blkback when that's also built as a module. Signed-off-by: Jan Beulich linux-2.6-pvops: * Strip n/a xen_tlb_flush exports * Fix obj macro naming in Makefile * Avoid init_mm, remap kernel ranges using tapdisk's mm instead. * gpl-export zap_page_range Signed-off-by: Daniel Stodden diff -r 05c4915c9182 -r b2651e8eaa82 drivers/xen/blktap/Makefile --- a/drivers/xen/blktap/Makefile Fri May 29 09:16:37 2009 +0100 +++ b/drivers/xen/blktap/Makefile Thu Jun 04 10:32:34 2009 +0100 @@ -1,3 +1,3 @@ -obj-y := blktap.o +obj-$(CONFIG_XEN_BLKDEV_TAP) := blktap.o blktap-objs := control.o ring.o wait_queue.o device.o request.o sysfs.o diff -r 05c4915c9182 -r b2651e8eaa82 drivers/xen/blktap/device.c --- a/drivers/xen/blktap/device.c Fri May 29 09:16:37 2009 +0100 +++ b/drivers/xen/blktap/device.c Thu Jun 04 10:32:34 2009 +0100 @@ -17,7 +17,8 @@ #include "blktap.h" -#ifdef CONFIG_XEN_BLKDEV_BACKEND +#if defined(CONFIG_XEN_BLKDEV_BACKEND) || \ + (defined(CONFIG_XEN_BLKDEV_BACKEND_MODULE) && defined(MODULE)) #include "../blkback/blkback-pagemap.h" #else struct blkback_pagemap { }; @@ -324,7 +325,7 @@ if (request->handles[i].kernel == INVALID_GRANT_HANDLE) { kvaddr = request_to_kaddr(request, i); - blktap_umap_uaddr(&init_mm, kvaddr); + blktap_umap_uaddr(tap->ring.vma->vm_mm, kvaddr); flush_tlb_kernel_range(kvaddr, kvaddr + PAGE_SIZE); set_phys_to_machine(__pa(kvaddr) >> PAGE_SHIFT, INVALID_P2M_ENTRY); @@ -561,7 +562,7 @@ pte = mk_pte(page, ring->vma->vm_page_prot); blktap_map_uaddr(ring->vma->vm_mm, uvaddr, pte_mkwrite(pte)); flush_tlb_mm(ring->vma->vm_mm); - blktap_map_uaddr(&init_mm, kvaddr, mk_pte(page, PAGE_KERNEL)); + blktap_map_uaddr(ring->vma->vm_mm, kvaddr, mk_pte(page, PAGE_KERNEL)); flush_tlb_kernel_range(kvaddr, kvaddr + PAGE_SIZE); set_phys_to_machine(__pa(kvaddr) >> PAGE_SHIFT, pte_mfn(pte)); diff -r 05c4915c9182 -r b2651e8eaa82 mm/memory.c --- a/mm/memory.c Fri May 29 09:16:37 2009 +0100 +++ b/mm/memory.c Thu Jun 04 10:32:34 2009 +0100 @@ -1075,6 +1075,7 @@ tlb_finish_mmu(tlb, address, end); return end; } +EXPORT_SYMBOL_GPL(zap_page_range); /** * zap_vma_ptes - remove ptes mapping the vma