On Tue, Aug 23, 2011 at 1:12 PM, Wolfgang Denk <w...@denx.de> wrote: > Dear Anton Staaf, > > In message > <CAF6FioXeFQP2a0VaZOVOTmxPvJxF4=kamS18=2=p6tfnefw...@mail.gmail.com> you > wrote: >> >> > what about adding a new func like: >> > #define dma_buffer_alloca(size) >> >> I generally avoid large allocations on the stack, they can confuse >> virtual stack management and blow out small embedded stacks. But >> neither of these are really a problem for most U-Boot targets. Are >> you thinking something like: >> >> #define dma_buffer_alloca(size) alloca(size + get_dcache_line_size() - >> 1) & ~(get_dcache_line_size() - 1); > > I don't think I will accept any alloca() based code into mainline.
Ahh, that must have been my reason for not using it in the first place, a premonition. :) So then, to guide our efforts, what is a more suitable solution? Would you prefer we stick with the existing path of calling memalign and passing it the cache size by directly calling get_dcache_line_size? Or would you prefer something more like a dma_buffer_malloc function that allocates on the heap a cache line size aligned buffer and returns it? Hmm, that will require a bit of thought because we need to recover the original pointer returned by malloc to cleanly free the buffer later. Thanks, Anton > Best regards, > > Wolfgang Denk > > -- > DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel > HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany > Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de > "There are three principal ways to lose money: wine, women, and en- > gineers. While the first two are more pleasant, the third is by far > the more certain." -- Baron Rothschild, ca. 1800 > _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot