From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Miller Subject: Re: [-next] openvswitch BUILD_BUG_ON failed Date: Thu, 29 Aug 2013 18:10:01 -0400 (EDT) Message-ID: <20130829.181001.145658561677052552.davem@davemloft.net> References: Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Return-path: Received: from shards.monkeyblade.net ([149.20.54.216]:39048 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756021Ab3H2WKH (ORCPT ); Thu, 29 Aug 2013 18:10:07 -0400 In-Reply-To: Sender: linux-next-owner@vger.kernel.org List-ID: To: jesse@nicira.com Cc: geert@linux-m68k.org, azhou@nicira.com, dev@openvswitch.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-next@vger.kernel.org From: Jesse Gross Date: Thu, 29 Aug 2013 14:42:22 -0700 > 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. All except x86-32 do, it is in fact the odd man out with respect to this issue.