Actually there still is a slight dependency here - until we scan the
bus, we don't know how much DMA memory to allocate for the pool, so when we
start scanning the bus, the pool is empty. Thus we grab something off the
stack to use temporarily.
It would be relatively trivial to configure the DMA pool to contain
something like 4 or 8 Kb prior to scanning the bus, since this would
completely eliminate the problem altogether. Once we have scanned the bus,
we can reconfigure the DMA pool to the correct size (including 0, if this
would be correct). There is already some support for dynamic
reconfiguration
of the DMA pool because of the support for modules.
-Eric
-- "The woods are lovely, dark and deep. But I have promises to keep, And lines to code before I sleep, And lines to code before I sleep."