Re: [PATCH 4/5] r8169: more alignment for the 0x8168
From: Stephen Hemminger <hidden>
Date: 2007-02-26 22:26:05
On Mon, 26 Feb 2007 17:42:27 +1000 Philip Craig [off-list ref] wrote:
Francois Romieu wrote:quoted
The experimental r8169 patch of the day against 2.6.21-rc1 is available at: http://www.fr.zoreil.com/linux/kernel/2.6.x/2.6.21-rc1/Is 0006-r8169-confusion-between-hardware-and-IP-header-alignment.txt the only relevant patch? This only partially helps. Many of the packets are greater than 200 bytes so copybreak doesn't apply to them. Can we assume anything about the alignment of skb->data? I think it should be 4 byte aligned, otherwise the whole NET_IP_ALIGN thing won't work. All the drivers I looked at just reserve NET_IP_ALIGN without checking the alignment first.
This is where the alignment comes from in slab.c #ifndef ARCH_KMALLOC_MINALIGN /* * Enforce a minimum alignment for the kmalloc caches. * Usually, the kmalloc caches are cache_line_size() aligned, except when * DEBUG and FORCED_DEBUG are enabled, then they are BYTES_PER_WORD aligned. * Some archs want to perform DMA into kmalloc caches and need a guaranteed * alignment larger than BYTES_PER_WORD. ARCH_KMALLOC_MINALIGN allows that. * Note that this flag disables some debug features. */ #define ARCH_KMALLOC_MINALIGN 0 #endif Since BYTES_PER_WORD is sizeof(void *) you are safe since Linux doesn't run on 16 bit platforms. -- Stephen Hemminger [off-list ref]