From 9895357a71205ea7d92d7608bd5ea40cef38e4c1 Mon Sep 17 00:00:00 2001 From: Sascha Hauer Date: Thu, 21 Jun 2012 10:25:29 +0200 Subject: block: use dma_alloc to allocate buffers Drivers may use dma to transfer blocks, so put them into dma save memory. Signed-off-by: Sascha Hauer --- common/block.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'common/block.c') diff --git a/common/block.c b/common/block.c index 71ecfd5ab7..f3bcdc8181 100644 --- a/common/block.c +++ b/common/block.c @@ -24,6 +24,7 @@ #include #include #include +#include #define BLOCKSIZE(blk) (1 << blk->blockbits) @@ -357,7 +358,7 @@ int blockdevice_register(struct block_device *blk) for (i = 0; i < 8; i++) { struct chunk *chunk = xzalloc(sizeof(*chunk)); - chunk->data = xmalloc(BUFSIZE); + chunk->data = dma_alloc(BUFSIZE); chunk->num = i; list_add_tail(&chunk->list, &blk->idle_blocks); } @@ -376,12 +377,12 @@ int blockdevice_unregister(struct block_device *blk) writebuffer_flush(blk); list_for_each_entry_safe(chunk, tmp, &blk->buffered_blocks, list) { - free(chunk->data); + dma_free(chunk->data); free(chunk); } list_for_each_entry_safe(chunk, tmp, &blk->idle_blocks, list) { - free(chunk->data); + dma_free(chunk->data); free(chunk); } -- cgit v1.2.3