From: Sven Eckelmann <[email protected]> Date: Sun, 04 Nov 2012 11:29:29 +0100
> Now also assume following really unusual situation: We get our data from a > ethernet driver and the skb stores the ethernet header. The start of the > ethernet header is perfectly aligned (4 or even 16 byte boundary aligned). > The > the header is 14/18 byte long (6 byte src, 6 byte dst, 2 byte ethertype and > maybe 4 byte vlan). Now the payload starts only on a 2 byte boundary -> it is > never 4 byte boundary aligned. A 32 bit read now causes different variations > of problems (reminder: bus error). Every ethernet driver must provide the networking stack with a modulo 2 aligned ethernet header, which makes sure that everything after the ethernet header is at least 4 byte aligned.
