On Tue, 5 Feb 2013, Stephen Warren wrote: > > +/* > > + * Some archs want to perform DMA into kmalloc caches and need a guaranteed > > + * alignment larger than the alignment of a 64-bit integer. > > + * Setting ARCH_KMALLOC_MINALIGN in arch headers allows that. > > + */ > > +#if defined(ARCH_DMA_MINALIGN) && ARCH_DMA_MINALIGN > 8 > > +#define ARCH_KMALLOC_MINALIGN ARCH_DMA_MINALIGN > > +#define KMALLOC_MIN_SIZE ARCH_DMA_MINALIGN > > I might be tempted to drop that #define of KMALLOC_MIN_SIZE ... Initially I thought so too. > > > +#define KMALLOC_SHIFT_LOW ilog2(ARCH_DMA_MINALIGN) > > +#else > > +#define ARCH_KMALLOC_MINALIGN __alignof__(unsigned long long) > > +#endif > > > +#ifndef KMALLOC_MIN_SIZE > > #define KMALLOC_MIN_SIZE (1 << KMALLOC_SHIFT_LOW) > > #endif > > ... and simply drop the ifdef around that #define instead. That is going to be one hell of a macro expansion. > That way, KMALLOC_MIN_SIZE is always defined in one place, and derived > from KMALLOC_SHIFT_LOW; the logic will just set KMALLOC_SHIFT_LOW based > on the various conditions. This seems a little safer to me; fewer > conditions and less code to update if anything changes. Yeah but we do an ilog2 and then reverse this back to the original number. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>