dmapool: consolidate page initialization
authorKeith Busch <kbusch@kernel.org>
Thu, 26 Jan 2023 21:51:21 +0000 (13:51 -0800)
committerAndrew Morton <akpm@linux-foundation.org>
Sat, 6 May 2023 17:33:37 +0000 (10:33 -0700)
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>
mm/dmapool.c

index 900f2afa363a9b8916d53dcadb694c998c81ea1e..9e98065a68b1f54cf2a821f588c649222b825d13 100644 (file)
@@ -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;
 }