Use a list of free blocks within a page instead of using a bitmap.Update documentation to reflect this. As well as being a slightreduction in memory allocation, locked ops and lines of code, it speedsup a transaction processing benchmark by 0.4%.

diff --git a/mm/dmapool.c b/mm/dmapool.cindex e2ea454..72e7ece 100644--- a/mm/dmapool.c+++ b/mm/dmapool.c@@ -17,7 +17,9 @@ * The current design of this allocator is fairly simple. The pool is * represented by the 'struct dma_pool' which keeps a doubly-linked list of * allocated pages. Each page in the page_list is split into blocks of at- * least 'size' bytes.+ * least 'size' bytes. Free blocks are tracked in an unsorted singly-linked+ * list of free blocks within the page. Used blocks aren't tracked, but we+ * keep a count of how many are currently allocated from each page. */