]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/ieee1394/dma.c
regression: disable timer peek-ahead for 2.6.28
[linux-2.6-omap-h63xx.git] / drivers / ieee1394 / dma.c
index ec024b5d5e5e2afaa49c1a7da31a36785f16d52c..1aba8c13fe8fb87b8c04337df31ed28bb6d1afc3 100644 (file)
@@ -231,28 +231,20 @@ void dma_region_sync_for_device(struct dma_region *dma, unsigned long offset,
 
 #ifdef CONFIG_MMU
 
-/* fault() handler for mmap access */
-
 static int dma_region_pagefault(struct vm_area_struct *vma,
-                                       struct vm_fault *vmf)
+                               struct vm_fault *vmf)
 {
-       unsigned long kernel_virt_addr;
-
        struct dma_region *dma = (struct dma_region *)vma->vm_private_data;
 
        if (!dma->kvirt)
-               goto error;
+               return VM_FAULT_SIGBUS;
 
        if (vmf->pgoff >= dma->n_pages)
-               goto error;
+               return VM_FAULT_SIGBUS;
 
-       kernel_virt_addr = (unsigned long)dma->kvirt + (vmf->pgoff << PAGE_SHIFT);
-       vmf->page = vmalloc_to_page((void *)kernel_virt_addr);
+       vmf->page = vmalloc_to_page(dma->kvirt + (vmf->pgoff << PAGE_SHIFT));
        get_page(vmf->page);
        return 0;
-
-      error:
-       return VM_FAULT_SIGBUS;
 }
 
 static struct vm_operations_struct dma_region_vm_ops = {
@@ -282,7 +274,7 @@ int dma_region_mmap(struct dma_region *dma, struct file *file,
        vma->vm_ops = &dma_region_vm_ops;
        vma->vm_private_data = dma;
        vma->vm_file = file;
-       vma->vm_flags |= VM_RESERVED;
+       vma->vm_flags |= VM_RESERVED | VM_ALWAYSDUMP;
 
        return 0;
 }