#include <linux/cdrom.h>
#include <linux/hdreg.h>
#include <linux/module.h>
+#include <asm/tlbflush.h>
#include <scsi/scsi.h>
#include <scsi/scsi_ioctl.h>
BTDBG("ptep %p -> %012llx\n", ptep, pte_val(*pte));
set_pte(ptep, *pte);
- xen_invlpg(addr);
return 0;
}
BTDBG("ptep %p\n", ptep);
pte_clear(mm, addr, ptep);
- xen_invlpg(addr);
return 0;
}
if (request->handles[i].kernel == INVALID_GRANT_HANDLE) {
kvaddr = request_to_kaddr(request, i);
blktap_umap_uaddr(&init_mm, kvaddr);
+ flush_tlb_kernel_range(kvaddr, kvaddr + PAGE_SIZE);
set_phys_to_machine(__pa(kvaddr) >> PAGE_SHIFT,
INVALID_P2M_ENTRY);
}
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));
+ flush_tlb_kernel_range(kvaddr, kvaddr + PAGE_SIZE);
set_phys_to_machine(__pa(kvaddr) >> PAGE_SHIFT, pte_mfn(pte));
request->handles[seg].kernel = INVALID_GRANT_HANDLE;