From 5b80ff05dbe05cf8a5f9e5bded5494958dc53ef1 Mon Sep 17 00:00:00 2001 From: Andy Zhou Date: Thu, 12 Jun 2014 13:07:01 -0700 Subject: [PATCH] datapath: fix key size computation in key_attr_size() The key_attr_size() was not updated when RECIRC_ID and DP_HASH key fields are added to support recircualtion. This patch fixes it. Reported-by: Ben Pfaff Signed-off-by: Andy Zhou Acked-by: Pravin B Shelar VMware-BZ: 1266214 --- datapath/datapath.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/datapath/datapath.c b/datapath/datapath.c index 81ecc0f70..1d2f414f1 100644 --- a/datapath/datapath.c +++ b/datapath/datapath.c @@ -380,6 +380,10 @@ static int queue_gso_packets(struct datapath *dp, struct sk_buff *skb, static size_t key_attr_size(void) { + /* Whenever adding new OVS_KEY_ FIELDS, we should consider + * updating this function. */ + BUILD_BUG_ON(OVS_KEY_ATTR_IPV4_TUNNEL != 21); + return nla_total_size(4) /* OVS_KEY_ATTR_PRIORITY */ + nla_total_size(0) /* OVS_KEY_ATTR_TUNNEL */ + nla_total_size(8) /* OVS_TUNNEL_KEY_ATTR_ID */ @@ -391,6 +395,8 @@ static size_t key_attr_size(void) + nla_total_size(0) /* OVS_TUNNEL_KEY_ATTR_CSUM */ + nla_total_size(4) /* OVS_KEY_ATTR_IN_PORT */ + nla_total_size(4) /* OVS_KEY_ATTR_SKB_MARK */ + + nla_total_size(4) /* OVS_KEY_ATTR_DP_HASH */ + + nla_total_size(4) /* OVS_KEY_ATTR_RECIRC_ID */ + nla_total_size(12) /* OVS_KEY_ATTR_ETHERNET */ + nla_total_size(2) /* OVS_KEY_ATTR_ETHERTYPE */ + nla_total_size(4) /* OVS_KEY_ATTR_8021Q */ -- 2.20.1