On Tue, Feb 11, 2020 at 05:18:12AM -0500, suganath-prabu.subramani@xxxxxxxxxxxx wrote: > From: Suganath Prabu S <suganath-prabu.subramani@xxxxxxxxxxxx> > > For INVADER_SERIES each set of 8 reply queues (0 - 7, 8 - 15,..)and > VENTURA_SERIES each set of 16 reply queues (0 - 15, 16 - 31,..)should > be within 4 GB boundary.Driver uses limitation of VENTURA_SERIES > to manage INVADER_SERIES as well. So here driver is allocating the DMA > able memory for RDPQ's accordingly. > > For RDPQ buffers, driver creates two separate pci pool. > "reply_post_free_dma_pool" and "reply_post_free_dma_pool_align" > First driver tries allocating memory from the pool > "reply_post_free_dma_pool", if the requested allocation are > within same 4gb region then proceeds for next allocations. > If not, allocates from reply_post_free_dma_pool_align which is > size aligned and if success, it will always meet same 4gb region > requirement I don't fully understand the changelog here, and how having two dma pools including one aligned is all that good. Why not do a single dma_alloc_coherent and then subdvide it given that all the allocations from the DMA pool seem to happen at HBA initialization time anyway, invalidating the need for the dynamic nature of the dma pools.