Messages in this thread | | | Subject | RE: [PATCH 2/4] async_tx: kill tx_set_src and tx_set_dest methods | Date | Fri, 4 Jan 2008 13:45:15 -0800 | From | "Nelson, Shannon" <> |
| |
>From: Williams, Dan J > >The tx_set_src and tx_set_dest methods were originally >implemented to allow >an array of addresses to be passed down from async_xor to the dmaengine >driver while minimizing stack overhead. Removing these methods allows >drivers to have all transaction parameters available at 'prep' >time, saves >two function pointers in struct dma_async_tx_descriptor, and >reduces the >number of indirect branches.. > >A consequence of moving this data to the 'prep' routine is that >multi-source routines like async_xor need temporary storage to >convert an >array of linear addresses into an array of dma addresses. In >order to keep >the same stack footprint of the previous implementation the >input array is >reused as storage for the dma addresses. This requires that >sizeof(dma_addr_t) be less than or equal to sizeof(void *). As a >consequence CONFIG_DMADEVICES now depends on >!CONFIG_HIGHMEM64G. It also >requires that drivers be able to make descriptor resources >available when >the 'prep' routine is polled. > >Signed-off-by: Dan Williams <dan.j.williams@intel.com> >--- [... Snip ...]
Sorry I took so long to get back to this. The ioatdma related changes look fine - I like this approach much better.
Acked by: Shannon Nelson <shannon.nelson@intel.com>
| |