aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sound/oss/dmabuf.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sound/oss/dmabuf.c b/sound/oss/dmabuf.c
index bcc3e8e07122..a59c88818f48 100644
--- a/sound/oss/dmabuf.c
+++ b/sound/oss/dmabuf.c
@@ -114,7 +114,7 @@ static int sound_alloc_dmap(struct dma_buffparms *dmap)
114 } 114 }
115 } 115 }
116 dmap->raw_buf = start_addr; 116 dmap->raw_buf = start_addr;
117 dmap->raw_buf_phys = virt_to_bus(start_addr); 117 dmap->raw_buf_phys = dma_map_single(NULL, start_addr, dmap->buffsize, DMA_BIDIRECTIONAL);
118 118
119 for (page = virt_to_page(start_addr); page <= virt_to_page(end_addr); page++) 119 for (page = virt_to_page(start_addr); page <= virt_to_page(end_addr); page++)
120 SetPageReserved(page); 120 SetPageReserved(page);
@@ -139,6 +139,7 @@ static void sound_free_dmap(struct dma_buffparms *dmap)
139 for (page = virt_to_page(start_addr); page <= virt_to_page(end_addr); page++) 139 for (page = virt_to_page(start_addr); page <= virt_to_page(end_addr); page++)
140 ClearPageReserved(page); 140 ClearPageReserved(page);
141 141
142 dma_unmap_single(NULL, dmap->raw_buf_phys, dmap->buffsize, DMA_BIDIRECTIONAL);
142 free_pages((unsigned long) dmap->raw_buf, sz); 143 free_pages((unsigned long) dmap->raw_buf, sz);
143 dmap->raw_buf = NULL; 144 dmap->raw_buf = NULL;
144} 145}