From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jesse Gross Subject: Re: [-next] openvswitch BUILD_BUG_ON failed Date: Thu, 29 Aug 2013 14:42:22 -0700 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Return-path: In-Reply-To: Sender: netdev-owner@vger.kernel.org To: Geert Uytterhoeven Cc: Andy Zhou , "dev@openvswitch.org" , "netdev@vger.kernel.org" , "linux-kernel@vger.kernel.org" , Linux-Next List-Id: linux-next.vger.kernel.org On Thu, Aug 29, 2013 at 2:21 PM, Geert Uytterhoeven wrote: > However, I have some doubts about other alignment "enforcements": > > "__aligned(__alignof__(long))" makes the whole struct aligned to the > alignment rule for "long": > 1. This is only 2 bytes on m68k, i.e. != sizeof(long). > 2. This is 4 bytes on many 32-bit platforms, which may be less than the > default alignment for "__be64" (cfr. some members of struct > ovs_key_ipv4_tunnel), so this may make those 64-bit members unaligned. Do any of those 32-bit architectures actually care about alignment of 64 bit values? On 32-bit x86, a long is 32 bits but the alignment requirement of __be64 is also 32 bit.