]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - sound/core/pcm_native.c
Merge branch 'slab/next' into slab/for-linus
[karo-tx-linux.git] / sound / core / pcm_native.c
index 09b4286c65f9d7d6e7ab8abed498ad2d7f96e737..eb560fa32321eff55002830cf78f2764d7a09518 100644 (file)
@@ -1586,7 +1586,7 @@ static struct file *snd_pcm_file_fd(int fd, int *fput_needed)
        file = fget_light(fd, fput_needed);
        if (!file)
                return NULL;
-       inode = file->f_path.dentry->d_inode;
+       inode = file_inode(file);
        if (!S_ISCHR(inode->i_mode) ||
            imajor(inode) != snd_major) {
                fput_light(file, *fput_needed);
@@ -3222,18 +3222,10 @@ EXPORT_SYMBOL_GPL(snd_pcm_lib_default_mmap);
 int snd_pcm_lib_mmap_iomem(struct snd_pcm_substream *substream,
                           struct vm_area_struct *area)
 {
-       long size;
-       unsigned long offset;
+       struct snd_pcm_runtime *runtime = substream->runtime;;
 
        area->vm_page_prot = pgprot_noncached(area->vm_page_prot);
-       area->vm_flags |= VM_IO;
-       size = area->vm_end - area->vm_start;
-       offset = area->vm_pgoff << PAGE_SHIFT;
-       if (io_remap_pfn_range(area, area->vm_start,
-                               (substream->runtime->dma_addr + offset) >> PAGE_SHIFT,
-                               size, area->vm_page_prot))
-               return -EAGAIN;
-       return 0;
+       return vm_iomap_memory(area, runtime->dma_addr, runtime->dma_bytes);
 }
 
 EXPORT_SYMBOL(snd_pcm_lib_mmap_iomem);