diff options
author | Keith Busch <kbusch@kernel.org> | 2023-01-26 22:51:21 +0100 |
---|---|---|
committer | Andrew Morton <akpm@linux-foundation.org> | 2023-05-06 19:33:37 +0200 |
commit | f0bccea6bc0caa0db9c68d28123f242a6295c5dd (patch) | |
tree | 8e84e865185fb4a6b0a8966a8e08bc4d3f04d042 /mm/dmapool.c | |
parent | dmapool: rearrange page alloc failure handling (diff) | |
download | linux-f0bccea6bc0caa0db9c68d28123f242a6295c5dd.tar.xz linux-f0bccea6bc0caa0db9c68d28123f242a6295c5dd.zip |
dmapool: consolidate page initialization
Various fields of the dma pool are set in different places. Move it all
to one function.
Link: https://lkml.kernel.org/r/20230126215125.4069751-9-kbusch@meta.com
Fixes: 2d55c16c0c54 ("dmapool: create/destroy cleanup")
Signed-off-by: Keith Busch <kbusch@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: Tony Battersby <tonyb@cybernetics.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Diffstat (limited to 'mm/dmapool.c')
-rw-r--r-- | mm/dmapool.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/mm/dmapool.c b/mm/dmapool.c index 900f2afa363a..9e98065a68b1 100644 --- a/mm/dmapool.c +++ b/mm/dmapool.c @@ -274,6 +274,9 @@ static void pool_initialise_page(struct dma_pool *pool, struct dma_page *page) unsigned int offset = 0; unsigned int next_boundary = pool->boundary; + pool_init_page(pool, page); + page->in_use = 0; + page->offset = 0; do { unsigned int next = offset + pool->size; if (unlikely((next + pool->size) >= next_boundary)) { @@ -300,11 +303,7 @@ static struct dma_page *pool_alloc_page(struct dma_pool *pool, gfp_t mem_flags) return NULL; } - pool_init_page(pool, page); pool_initialise_page(pool, page); - page->in_use = 0; - page->offset = 0; - return page; } |