Loading drivers/firewire/ohci.c +11 −15 Original line number Diff line number Diff line Loading @@ -674,16 +674,15 @@ static void ar_context_link_page(struct ar_context *ctx, unsigned int index) static void ar_context_release(struct ar_context *ctx) { struct device *dev = ctx->ohci->card.device; unsigned int i; vunmap(ctx->buffer); for (i = 0; i < AR_BUFFERS; i++) if (ctx->pages[i]) { dma_unmap_page(ctx->ohci->card.device, ar_buffer_bus(ctx, i), PAGE_SIZE, DMA_FROM_DEVICE); __free_page(ctx->pages[i]); for (i = 0; i < AR_BUFFERS; i++) { if (ctx->pages[i]) dma_free_pages(dev, PAGE_SIZE, ctx->pages[i], ar_buffer_bus(ctx, i), DMA_FROM_DEVICE); } } Loading Loading @@ -970,6 +969,7 @@ static void ar_context_tasklet(unsigned long data) static int ar_context_init(struct ar_context *ctx, struct fw_ohci *ohci, unsigned int descriptors_offset, u32 regs) { struct device *dev = ohci->card.device; unsigned int i; dma_addr_t dma_addr; struct page *pages[AR_BUFFERS + AR_WRAPAROUND_PAGES]; Loading @@ -980,17 +980,13 @@ static int ar_context_init(struct ar_context *ctx, struct fw_ohci *ohci, tasklet_init(&ctx->tasklet, ar_context_tasklet, (unsigned long)ctx); for (i = 0; i < AR_BUFFERS; i++) { ctx->pages[i] = alloc_page(GFP_KERNEL | GFP_DMA32); ctx->pages[i] = dma_alloc_pages(dev, PAGE_SIZE, &dma_addr, DMA_FROM_DEVICE, GFP_KERNEL); if (!ctx->pages[i]) goto out_of_memory; dma_addr = dma_map_page(ohci->card.device, ctx->pages[i], 0, PAGE_SIZE, DMA_FROM_DEVICE); if (dma_mapping_error(ohci->card.device, dma_addr)) { __free_page(ctx->pages[i]); ctx->pages[i] = NULL; goto out_of_memory; } set_page_private(ctx->pages[i], dma_addr); dma_sync_single_for_device(dev, dma_addr, PAGE_SIZE, DMA_FROM_DEVICE); } for (i = 0; i < AR_BUFFERS; i++) Loading Loading
drivers/firewire/ohci.c +11 −15 Original line number Diff line number Diff line Loading @@ -674,16 +674,15 @@ static void ar_context_link_page(struct ar_context *ctx, unsigned int index) static void ar_context_release(struct ar_context *ctx) { struct device *dev = ctx->ohci->card.device; unsigned int i; vunmap(ctx->buffer); for (i = 0; i < AR_BUFFERS; i++) if (ctx->pages[i]) { dma_unmap_page(ctx->ohci->card.device, ar_buffer_bus(ctx, i), PAGE_SIZE, DMA_FROM_DEVICE); __free_page(ctx->pages[i]); for (i = 0; i < AR_BUFFERS; i++) { if (ctx->pages[i]) dma_free_pages(dev, PAGE_SIZE, ctx->pages[i], ar_buffer_bus(ctx, i), DMA_FROM_DEVICE); } } Loading Loading @@ -970,6 +969,7 @@ static void ar_context_tasklet(unsigned long data) static int ar_context_init(struct ar_context *ctx, struct fw_ohci *ohci, unsigned int descriptors_offset, u32 regs) { struct device *dev = ohci->card.device; unsigned int i; dma_addr_t dma_addr; struct page *pages[AR_BUFFERS + AR_WRAPAROUND_PAGES]; Loading @@ -980,17 +980,13 @@ static int ar_context_init(struct ar_context *ctx, struct fw_ohci *ohci, tasklet_init(&ctx->tasklet, ar_context_tasklet, (unsigned long)ctx); for (i = 0; i < AR_BUFFERS; i++) { ctx->pages[i] = alloc_page(GFP_KERNEL | GFP_DMA32); ctx->pages[i] = dma_alloc_pages(dev, PAGE_SIZE, &dma_addr, DMA_FROM_DEVICE, GFP_KERNEL); if (!ctx->pages[i]) goto out_of_memory; dma_addr = dma_map_page(ohci->card.device, ctx->pages[i], 0, PAGE_SIZE, DMA_FROM_DEVICE); if (dma_mapping_error(ohci->card.device, dma_addr)) { __free_page(ctx->pages[i]); ctx->pages[i] = NULL; goto out_of_memory; } set_page_private(ctx->pages[i], dma_addr); dma_sync_single_for_device(dev, dma_addr, PAGE_SIZE, DMA_FROM_DEVICE); } for (i = 0; i < AR_BUFFERS; i++) Loading