The custom alignment of struct ovs_key_ipv4_tunnel was originally introduced
by commit 1139e241ec436 ("openvswitch: Compact sw_flow_key."). At that time,
the size of the structure was not a multiply of 64bit. This is not the case
anymore with addition of more fields. As this alignment is error prone (see
the list of conditions in the commit that introduced the alignment) and is
not needed anymore, remove it.The __packed attribute added to struct sw_flow_key.eth is useless now, too, for the same reason. In fact, there's a 2 byte hole after it with the current code. Also, the padding of the struct ovs_key_ipv4_tunnel became effectively zero and OVS_TUNNEL_KEY_SIZE together with the memset using it could be removed, too. But it is actually important to keep it, as in case new fields are added to the structure, the padding needs to be zeroed out. For safety, leave it, but document that it may be zero. Signed-off-by: Jiri Benc <[email protected]> --- net/openvswitch/flow.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/net/openvswitch/flow.h b/net/openvswitch/flow.h index a076e445ccc2..2af6ffbf2f2e 100644 --- a/net/openvswitch/flow.h +++ b/net/openvswitch/flow.h @@ -35,7 +35,7 @@ struct sk_buff; -/* Used to memset ovs_key_ipv4_tunnel padding. */ +/* Used to memset ovs_key_ipv4_tunnel padding (if there is any). */ #define OVS_TUNNEL_KEY_SIZE \ (offsetof(struct ovs_key_ipv4_tunnel, tp_dst) + \ FIELD_SIZEOF(struct ovs_key_ipv4_tunnel, tp_dst)) @@ -49,7 +49,7 @@ struct ovs_key_ipv4_tunnel { u8 ipv4_ttl; __be16 tp_src; __be16 tp_dst; -} __packed __aligned(4); /* Minimize padding. */ +}; struct ovs_tunnel_info { struct ovs_key_ipv4_tunnel tunnel; @@ -127,7 +127,7 @@ struct sw_flow_key { u32 priority; /* Packet QoS priority. */ u32 skb_mark; /* SKB mark. */ u16 in_port; /* Input switch port (or DP_MAX_PORTS). */ - } __packed phy; /* Safe when right after 'tun_key'. */ + } phy; u32 ovs_flow_hash; /* Datapath computed hash value. */ u32 recirc_id; /* Recirculation ID. */ struct { -- 1.8.3.1 _______________________________________________ dev mailing list [email protected] http://openvswitch.org/mailman/listinfo/dev
