* [PATCH net-next] lwtunnel: be STRICT to validate the new LWTUNNEL_IP(6)_OPTS
@ 2019-11-21 10:11 Xin Long
2019-11-21 19:48 ` David Miller
2019-11-23 14:11 ` kbuild test robot
0 siblings, 2 replies; 8+ messages in thread
From: Xin Long @ 2019-11-21 10:11 UTC (permalink / raw)
To: network dev; +Cc: davem, simon.horman, jakub.kicinski
LWTUNNEL_IP(6)_OPTS are the new items in ip(6)_tun_policy, which
are parsed by nla_parse_nested_deprecated(). We should check it
strictly by setting .strict_start_type = LWTUNNEL_IP(6)_OPTS.
This patch also adds missing LWTUNNEL_IP6_OPTS in ip6_tun_policy.
Fixes: 4ece47787077 ("lwtunnel: add options setting and dumping for geneve")
Signed-off-by: Xin Long <lucien.xin@gmail.com>
---
net/ipv4/ip_tunnel_core.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/net/ipv4/ip_tunnel_core.c b/net/ipv4/ip_tunnel_core.c
index 45405d2..0a7eaad 100644
--- a/net/ipv4/ip_tunnel_core.c
+++ b/net/ipv4/ip_tunnel_core.c
@@ -215,6 +215,7 @@ void ip_tunnel_get_stats64(struct net_device *dev,
EXPORT_SYMBOL_GPL(ip_tunnel_get_stats64);
static const struct nla_policy ip_tun_policy[LWTUNNEL_IP_MAX + 1] = {
+ [LWTUNNEL_IP_UNSPEC] = { .strict_start_type = LWTUNNEL_IP_OPTS },
[LWTUNNEL_IP_ID] = { .type = NLA_U64 },
[LWTUNNEL_IP_DST] = { .type = NLA_U32 },
[LWTUNNEL_IP_SRC] = { .type = NLA_U32 },
@@ -700,12 +701,14 @@ static const struct lwtunnel_encap_ops ip_tun_lwt_ops = {
};
static const struct nla_policy ip6_tun_policy[LWTUNNEL_IP6_MAX + 1] = {
+ [LWTUNNEL_IP6_UNSPEC] = { .strict_start_type = LWTUNNEL_IP6_OPTS },
[LWTUNNEL_IP6_ID] = { .type = NLA_U64 },
[LWTUNNEL_IP6_DST] = { .len = sizeof(struct in6_addr) },
[LWTUNNEL_IP6_SRC] = { .len = sizeof(struct in6_addr) },
[LWTUNNEL_IP6_HOPLIMIT] = { .type = NLA_U8 },
[LWTUNNEL_IP6_TC] = { .type = NLA_U8 },
[LWTUNNEL_IP6_FLAGS] = { .type = NLA_U16 },
+ [LWTUNNEL_IP6_OPTS] = { .type = NLA_NESTED },
};
static int ip6_tun_build_state(struct nlattr *attr,
--
2.1.0
^ permalink raw reply related [flat|nested] 8+ messages in thread* Re: [PATCH net-next] lwtunnel: be STRICT to validate the new LWTUNNEL_IP(6)_OPTS 2019-11-21 10:11 [PATCH net-next] lwtunnel: be STRICT to validate the new LWTUNNEL_IP(6)_OPTS Xin Long @ 2019-11-21 19:48 ` David Miller 2019-11-23 14:11 ` kbuild test robot 1 sibling, 0 replies; 8+ messages in thread From: David Miller @ 2019-11-21 19:48 UTC (permalink / raw) To: lucien.xin; +Cc: netdev, simon.horman, jakub.kicinski From: Xin Long <lucien.xin@gmail.com> Date: Thu, 21 Nov 2019 18:11:27 +0800 > LWTUNNEL_IP(6)_OPTS are the new items in ip(6)_tun_policy, which > are parsed by nla_parse_nested_deprecated(). We should check it > strictly by setting .strict_start_type = LWTUNNEL_IP(6)_OPTS. > > This patch also adds missing LWTUNNEL_IP6_OPTS in ip6_tun_policy. > > Fixes: 4ece47787077 ("lwtunnel: add options setting and dumping for geneve") > Signed-off-by: Xin Long <lucien.xin@gmail.com> Applied. ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH net-next] lwtunnel: be STRICT to validate the new LWTUNNEL_IP(6)_OPTS 2019-11-21 10:11 [PATCH net-next] lwtunnel: be STRICT to validate the new LWTUNNEL_IP(6)_OPTS Xin Long 2019-11-21 19:48 ` David Miller @ 2019-11-23 14:11 ` kbuild test robot 2019-11-24 12:31 ` Xin Long 1 sibling, 1 reply; 8+ messages in thread From: kbuild test robot @ 2019-11-23 14:11 UTC (permalink / raw) To: kbuild-all [-- Attachment #1: Type: text/plain, Size: 7045 bytes --] Hi Xin, Thank you for the patch! Yet something to improve: [auto build test ERROR on net/master] [also build test ERROR on v5.4-rc8] [cannot apply to net-next/master next-20191122] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system. BTW, we also suggest to use '--base' option to specify the base tree in git format-patch, please see https://stackoverflow.com/a/37406982] url: https://github.com/0day-ci/linux/commits/Xin-Long/lwtunnel-be-STRICT-to-validate-the-new-LWTUNNEL_IP-6-_OPTS/20191123-204806 base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git 5b1d9c17a3e0c16e1c9adf9c8a89f2735cb6dff8 config: i386-defconfig (attached as .config) compiler: gcc-7 (Debian 7.4.0-14) 7.4.0 reproduce: # save the attached .config to linux build tree make ARCH=i386 If you fix the issue, kindly add following tag Reported-by: kbuild test robot <lkp@intel.com> All errors (new ones prefixed by >>): >> net/ipv4/ip_tunnel_core.c:214:48: error: 'LWTUNNEL_IP_OPTS' undeclared here (not in a function); did you mean 'LWTUNNEL_IP_PAD'? [LWTUNNEL_IP_UNSPEC] = { .strict_start_type = LWTUNNEL_IP_OPTS }, ^~~~~~~~~~~~~~~~ LWTUNNEL_IP_PAD >> net/ipv4/ip_tunnel_core.c:332:49: error: 'LWTUNNEL_IP6_OPTS' undeclared here (not in a function); did you mean 'LWTUNNEL_IP_OPTS'? [LWTUNNEL_IP6_UNSPEC] = { .strict_start_type = LWTUNNEL_IP6_OPTS }, ^~~~~~~~~~~~~~~~~ LWTUNNEL_IP_OPTS >> net/ipv4/ip_tunnel_core.c:339:3: error: array index in initializer not of integer type [LWTUNNEL_IP6_OPTS] = { .type = NLA_NESTED }, ^~~~~~~~~~~~~~~~~ net/ipv4/ip_tunnel_core.c:339:3: note: (near initialization for 'ip6_tun_policy') vim +214 net/ipv4/ip_tunnel_core.c 212 213 static const struct nla_policy ip_tun_policy[LWTUNNEL_IP_MAX + 1] = { > 214 [LWTUNNEL_IP_UNSPEC] = { .strict_start_type = LWTUNNEL_IP_OPTS }, 215 [LWTUNNEL_IP_ID] = { .type = NLA_U64 }, 216 [LWTUNNEL_IP_DST] = { .type = NLA_U32 }, 217 [LWTUNNEL_IP_SRC] = { .type = NLA_U32 }, 218 [LWTUNNEL_IP_TTL] = { .type = NLA_U8 }, 219 [LWTUNNEL_IP_TOS] = { .type = NLA_U8 }, 220 [LWTUNNEL_IP_FLAGS] = { .type = NLA_U16 }, 221 }; 222 223 static int ip_tun_build_state(struct nlattr *attr, 224 unsigned int family, const void *cfg, 225 struct lwtunnel_state **ts, 226 struct netlink_ext_ack *extack) 227 { 228 struct ip_tunnel_info *tun_info; 229 struct lwtunnel_state *new_state; 230 struct nlattr *tb[LWTUNNEL_IP_MAX + 1]; 231 int err; 232 233 err = nla_parse_nested_deprecated(tb, LWTUNNEL_IP_MAX, attr, 234 ip_tun_policy, extack); 235 if (err < 0) 236 return err; 237 238 new_state = lwtunnel_state_alloc(sizeof(*tun_info)); 239 if (!new_state) 240 return -ENOMEM; 241 242 new_state->type = LWTUNNEL_ENCAP_IP; 243 244 tun_info = lwt_tun_info(new_state); 245 246 #ifdef CONFIG_DST_CACHE 247 err = dst_cache_init(&tun_info->dst_cache, GFP_KERNEL); 248 if (err) { 249 lwtstate_free(new_state); 250 return err; 251 } 252 #endif 253 254 if (tb[LWTUNNEL_IP_ID]) 255 tun_info->key.tun_id = nla_get_be64(tb[LWTUNNEL_IP_ID]); 256 257 if (tb[LWTUNNEL_IP_DST]) 258 tun_info->key.u.ipv4.dst = nla_get_in_addr(tb[LWTUNNEL_IP_DST]); 259 260 if (tb[LWTUNNEL_IP_SRC]) 261 tun_info->key.u.ipv4.src = nla_get_in_addr(tb[LWTUNNEL_IP_SRC]); 262 263 if (tb[LWTUNNEL_IP_TTL]) 264 tun_info->key.ttl = nla_get_u8(tb[LWTUNNEL_IP_TTL]); 265 266 if (tb[LWTUNNEL_IP_TOS]) 267 tun_info->key.tos = nla_get_u8(tb[LWTUNNEL_IP_TOS]); 268 269 if (tb[LWTUNNEL_IP_FLAGS]) 270 tun_info->key.tun_flags = nla_get_be16(tb[LWTUNNEL_IP_FLAGS]); 271 272 tun_info->mode = IP_TUNNEL_INFO_TX; 273 tun_info->options_len = 0; 274 275 *ts = new_state; 276 277 return 0; 278 } 279 280 static void ip_tun_destroy_state(struct lwtunnel_state *lwtstate) 281 { 282 #ifdef CONFIG_DST_CACHE 283 struct ip_tunnel_info *tun_info = lwt_tun_info(lwtstate); 284 285 dst_cache_destroy(&tun_info->dst_cache); 286 #endif 287 } 288 289 static int ip_tun_fill_encap_info(struct sk_buff *skb, 290 struct lwtunnel_state *lwtstate) 291 { 292 struct ip_tunnel_info *tun_info = lwt_tun_info(lwtstate); 293 294 if (nla_put_be64(skb, LWTUNNEL_IP_ID, tun_info->key.tun_id, 295 LWTUNNEL_IP_PAD) || 296 nla_put_in_addr(skb, LWTUNNEL_IP_DST, tun_info->key.u.ipv4.dst) || 297 nla_put_in_addr(skb, LWTUNNEL_IP_SRC, tun_info->key.u.ipv4.src) || 298 nla_put_u8(skb, LWTUNNEL_IP_TOS, tun_info->key.tos) || 299 nla_put_u8(skb, LWTUNNEL_IP_TTL, tun_info->key.ttl) || 300 nla_put_be16(skb, LWTUNNEL_IP_FLAGS, tun_info->key.tun_flags)) 301 return -ENOMEM; 302 303 return 0; 304 } 305 306 static int ip_tun_encap_nlsize(struct lwtunnel_state *lwtstate) 307 { 308 return nla_total_size_64bit(8) /* LWTUNNEL_IP_ID */ 309 + nla_total_size(4) /* LWTUNNEL_IP_DST */ 310 + nla_total_size(4) /* LWTUNNEL_IP_SRC */ 311 + nla_total_size(1) /* LWTUNNEL_IP_TOS */ 312 + nla_total_size(1) /* LWTUNNEL_IP_TTL */ 313 + nla_total_size(2); /* LWTUNNEL_IP_FLAGS */ 314 } 315 316 static int ip_tun_cmp_encap(struct lwtunnel_state *a, struct lwtunnel_state *b) 317 { 318 return memcmp(lwt_tun_info(a), lwt_tun_info(b), 319 sizeof(struct ip_tunnel_info)); 320 } 321 322 static const struct lwtunnel_encap_ops ip_tun_lwt_ops = { 323 .build_state = ip_tun_build_state, 324 .destroy_state = ip_tun_destroy_state, 325 .fill_encap = ip_tun_fill_encap_info, 326 .get_encap_size = ip_tun_encap_nlsize, 327 .cmp_encap = ip_tun_cmp_encap, 328 .owner = THIS_MODULE, 329 }; 330 331 static const struct nla_policy ip6_tun_policy[LWTUNNEL_IP6_MAX + 1] = { > 332 [LWTUNNEL_IP6_UNSPEC] = { .strict_start_type = LWTUNNEL_IP6_OPTS }, 333 [LWTUNNEL_IP6_ID] = { .type = NLA_U64 }, 334 [LWTUNNEL_IP6_DST] = { .len = sizeof(struct in6_addr) }, 335 [LWTUNNEL_IP6_SRC] = { .len = sizeof(struct in6_addr) }, 336 [LWTUNNEL_IP6_HOPLIMIT] = { .type = NLA_U8 }, 337 [LWTUNNEL_IP6_TC] = { .type = NLA_U8 }, 338 [LWTUNNEL_IP6_FLAGS] = { .type = NLA_U16 }, > 339 [LWTUNNEL_IP6_OPTS] = { .type = NLA_NESTED }, 340 }; 341 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org Intel Corporation [-- Attachment #2: config.gz --] [-- Type: application/gzip, Size: 28171 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH net-next] lwtunnel: be STRICT to validate the new LWTUNNEL_IP(6)_OPTS 2019-11-23 14:11 ` kbuild test robot @ 2019-11-24 12:31 ` Xin Long 2019-11-25 0:33 ` Rong Chen 2019-11-25 6:38 ` Li Zhijian 0 siblings, 2 replies; 8+ messages in thread From: Xin Long @ 2019-11-24 12:31 UTC (permalink / raw) To: kbuild-all [-- Attachment #1: Type: text/plain, Size: 8696 bytes --] On Sat, Nov 23, 2019 at 10:11 PM kbuild test robot <lkp@intel.com> wrote: > > Hi Xin, > > Thank you for the patch! Yet something to improve: > > [auto build test ERROR on net/master] > [also build test ERROR on v5.4-rc8] > [cannot apply to net-next/master next-20191122] > [if your patch is applied to the wrong git tree, please drop us a note to help > improve the system. BTW, we also suggest to use '--base' option to specify the > base tree in git format-patch, please see https://stackoverflow.com/a/37406982] > > url: https://github.com/0day-ci/linux/commits/Xin-Long/lwtunnel-be-STRICT-to-validate-the-new-LWTUNNEL_IP-6-_OPTS/20191123-204806 > base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git 5b1d9c17a3e0c16e1c9adf9c8a89f2735cb6dff8 This patch shouldn't be applied to net.git without: commit 4ece477870774698e6e73d5821a3dd1605ca123b Author: Xin Long <lucien.xin@gmail.com> Date: Wed Nov 6 17:01:05 2019 +0800 lwtunnel: add options setting and dumping for geneve > config: i386-defconfig (attached as .config) > compiler: gcc-7 (Debian 7.4.0-14) 7.4.0 > reproduce: > # save the attached .config to linux build tree > make ARCH=i386 > > If you fix the issue, kindly add following tag > Reported-by: kbuild test robot <lkp@intel.com> > > All errors (new ones prefixed by >>): > > >> net/ipv4/ip_tunnel_core.c:214:48: error: 'LWTUNNEL_IP_OPTS' undeclared here (not in a function); did you mean 'LWTUNNEL_IP_PAD'? > [LWTUNNEL_IP_UNSPEC] = { .strict_start_type = LWTUNNEL_IP_OPTS }, > ^~~~~~~~~~~~~~~~ > LWTUNNEL_IP_PAD > >> net/ipv4/ip_tunnel_core.c:332:49: error: 'LWTUNNEL_IP6_OPTS' undeclared here (not in a function); did you mean 'LWTUNNEL_IP_OPTS'? > [LWTUNNEL_IP6_UNSPEC] = { .strict_start_type = LWTUNNEL_IP6_OPTS }, > ^~~~~~~~~~~~~~~~~ > LWTUNNEL_IP_OPTS > >> net/ipv4/ip_tunnel_core.c:339:3: error: array index in initializer not of integer type > [LWTUNNEL_IP6_OPTS] = { .type = NLA_NESTED }, > ^~~~~~~~~~~~~~~~~ > net/ipv4/ip_tunnel_core.c:339:3: note: (near initialization for 'ip6_tun_policy') > > vim +214 net/ipv4/ip_tunnel_core.c > > 212 > 213 static const struct nla_policy ip_tun_policy[LWTUNNEL_IP_MAX + 1] = { > > 214 [LWTUNNEL_IP_UNSPEC] = { .strict_start_type = LWTUNNEL_IP_OPTS }, > 215 [LWTUNNEL_IP_ID] = { .type = NLA_U64 }, > 216 [LWTUNNEL_IP_DST] = { .type = NLA_U32 }, > 217 [LWTUNNEL_IP_SRC] = { .type = NLA_U32 }, > 218 [LWTUNNEL_IP_TTL] = { .type = NLA_U8 }, > 219 [LWTUNNEL_IP_TOS] = { .type = NLA_U8 }, > 220 [LWTUNNEL_IP_FLAGS] = { .type = NLA_U16 }, > 221 }; > 222 > 223 static int ip_tun_build_state(struct nlattr *attr, > 224 unsigned int family, const void *cfg, > 225 struct lwtunnel_state **ts, > 226 struct netlink_ext_ack *extack) > 227 { > 228 struct ip_tunnel_info *tun_info; > 229 struct lwtunnel_state *new_state; > 230 struct nlattr *tb[LWTUNNEL_IP_MAX + 1]; > 231 int err; > 232 > 233 err = nla_parse_nested_deprecated(tb, LWTUNNEL_IP_MAX, attr, > 234 ip_tun_policy, extack); > 235 if (err < 0) > 236 return err; > 237 > 238 new_state = lwtunnel_state_alloc(sizeof(*tun_info)); > 239 if (!new_state) > 240 return -ENOMEM; > 241 > 242 new_state->type = LWTUNNEL_ENCAP_IP; > 243 > 244 tun_info = lwt_tun_info(new_state); > 245 > 246 #ifdef CONFIG_DST_CACHE > 247 err = dst_cache_init(&tun_info->dst_cache, GFP_KERNEL); > 248 if (err) { > 249 lwtstate_free(new_state); > 250 return err; > 251 } > 252 #endif > 253 > 254 if (tb[LWTUNNEL_IP_ID]) > 255 tun_info->key.tun_id = nla_get_be64(tb[LWTUNNEL_IP_ID]); > 256 > 257 if (tb[LWTUNNEL_IP_DST]) > 258 tun_info->key.u.ipv4.dst = nla_get_in_addr(tb[LWTUNNEL_IP_DST]); > 259 > 260 if (tb[LWTUNNEL_IP_SRC]) > 261 tun_info->key.u.ipv4.src = nla_get_in_addr(tb[LWTUNNEL_IP_SRC]); > 262 > 263 if (tb[LWTUNNEL_IP_TTL]) > 264 tun_info->key.ttl = nla_get_u8(tb[LWTUNNEL_IP_TTL]); > 265 > 266 if (tb[LWTUNNEL_IP_TOS]) > 267 tun_info->key.tos = nla_get_u8(tb[LWTUNNEL_IP_TOS]); > 268 > 269 if (tb[LWTUNNEL_IP_FLAGS]) > 270 tun_info->key.tun_flags = nla_get_be16(tb[LWTUNNEL_IP_FLAGS]); > 271 > 272 tun_info->mode = IP_TUNNEL_INFO_TX; > 273 tun_info->options_len = 0; > 274 > 275 *ts = new_state; > 276 > 277 return 0; > 278 } > 279 > 280 static void ip_tun_destroy_state(struct lwtunnel_state *lwtstate) > 281 { > 282 #ifdef CONFIG_DST_CACHE > 283 struct ip_tunnel_info *tun_info = lwt_tun_info(lwtstate); > 284 > 285 dst_cache_destroy(&tun_info->dst_cache); > 286 #endif > 287 } > 288 > 289 static int ip_tun_fill_encap_info(struct sk_buff *skb, > 290 struct lwtunnel_state *lwtstate) > 291 { > 292 struct ip_tunnel_info *tun_info = lwt_tun_info(lwtstate); > 293 > 294 if (nla_put_be64(skb, LWTUNNEL_IP_ID, tun_info->key.tun_id, > 295 LWTUNNEL_IP_PAD) || > 296 nla_put_in_addr(skb, LWTUNNEL_IP_DST, tun_info->key.u.ipv4.dst) || > 297 nla_put_in_addr(skb, LWTUNNEL_IP_SRC, tun_info->key.u.ipv4.src) || > 298 nla_put_u8(skb, LWTUNNEL_IP_TOS, tun_info->key.tos) || > 299 nla_put_u8(skb, LWTUNNEL_IP_TTL, tun_info->key.ttl) || > 300 nla_put_be16(skb, LWTUNNEL_IP_FLAGS, tun_info->key.tun_flags)) > 301 return -ENOMEM; > 302 > 303 return 0; > 304 } > 305 > 306 static int ip_tun_encap_nlsize(struct lwtunnel_state *lwtstate) > 307 { > 308 return nla_total_size_64bit(8) /* LWTUNNEL_IP_ID */ > 309 + nla_total_size(4) /* LWTUNNEL_IP_DST */ > 310 + nla_total_size(4) /* LWTUNNEL_IP_SRC */ > 311 + nla_total_size(1) /* LWTUNNEL_IP_TOS */ > 312 + nla_total_size(1) /* LWTUNNEL_IP_TTL */ > 313 + nla_total_size(2); /* LWTUNNEL_IP_FLAGS */ > 314 } > 315 > 316 static int ip_tun_cmp_encap(struct lwtunnel_state *a, struct lwtunnel_state *b) > 317 { > 318 return memcmp(lwt_tun_info(a), lwt_tun_info(b), > 319 sizeof(struct ip_tunnel_info)); > 320 } > 321 > 322 static const struct lwtunnel_encap_ops ip_tun_lwt_ops = { > 323 .build_state = ip_tun_build_state, > 324 .destroy_state = ip_tun_destroy_state, > 325 .fill_encap = ip_tun_fill_encap_info, > 326 .get_encap_size = ip_tun_encap_nlsize, > 327 .cmp_encap = ip_tun_cmp_encap, > 328 .owner = THIS_MODULE, > 329 }; > 330 > 331 static const struct nla_policy ip6_tun_policy[LWTUNNEL_IP6_MAX + 1] = { > > 332 [LWTUNNEL_IP6_UNSPEC] = { .strict_start_type = LWTUNNEL_IP6_OPTS }, > 333 [LWTUNNEL_IP6_ID] = { .type = NLA_U64 }, > 334 [LWTUNNEL_IP6_DST] = { .len = sizeof(struct in6_addr) }, > 335 [LWTUNNEL_IP6_SRC] = { .len = sizeof(struct in6_addr) }, > 336 [LWTUNNEL_IP6_HOPLIMIT] = { .type = NLA_U8 }, > 337 [LWTUNNEL_IP6_TC] = { .type = NLA_U8 }, > 338 [LWTUNNEL_IP6_FLAGS] = { .type = NLA_U16 }, > > 339 [LWTUNNEL_IP6_OPTS] = { .type = NLA_NESTED }, > 340 }; > 341 > > --- > 0-DAY kernel test infrastructure Open Source Technology Center > https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org Intel Corporation ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH net-next] lwtunnel: be STRICT to validate the new LWTUNNEL_IP(6)_OPTS 2019-11-24 12:31 ` Xin Long @ 2019-11-25 0:33 ` Rong Chen 2019-11-25 6:38 ` Li Zhijian 1 sibling, 0 replies; 8+ messages in thread From: Rong Chen @ 2019-11-25 0:33 UTC (permalink / raw) To: kbuild-all [-- Attachment #1: Type: text/plain, Size: 9324 bytes --] On 11/24/19 8:31 PM, Xin Long wrote: > On Sat, Nov 23, 2019 at 10:11 PM kbuild test robot <lkp@intel.com> wrote: >> Hi Xin, >> >> Thank you for the patch! Yet something to improve: >> >> [auto build test ERROR on net/master] >> [also build test ERROR on v5.4-rc8] >> [cannot apply to net-next/master next-20191122] >> [if your patch is applied to the wrong git tree, please drop us a note to help >> improve the system. BTW, we also suggest to use '--base' option to specify the >> base tree in git format-patch, please see https://stackoverflow.com/a/37406982] >> >> url: https://github.com/0day-ci/linux/commits/Xin-Long/lwtunnel-be-STRICT-to-validate-the-new-LWTUNNEL_IP-6-_OPTS/20191123-204806 >> base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git 5b1d9c17a3e0c16e1c9adf9c8a89f2735cb6dff8 > This patch shouldn't be applied to net.git without: > > commit 4ece477870774698e6e73d5821a3dd1605ca123b > Author: Xin Long <lucien.xin@gmail.com> > Date: Wed Nov 6 17:01:05 2019 +0800 > > lwtunnel: add options setting and dumping for geneve Hi Xin, Thanks for clarifying, we'll take a look. Best Regards, Rong Chen > >> config: i386-defconfig (attached as .config) >> compiler: gcc-7 (Debian 7.4.0-14) 7.4.0 >> reproduce: >> # save the attached .config to linux build tree >> make ARCH=i386 >> >> If you fix the issue, kindly add following tag >> Reported-by: kbuild test robot <lkp@intel.com> >> >> All errors (new ones prefixed by >>): >> >>>> net/ipv4/ip_tunnel_core.c:214:48: error: 'LWTUNNEL_IP_OPTS' undeclared here (not in a function); did you mean 'LWTUNNEL_IP_PAD'? >> [LWTUNNEL_IP_UNSPEC] = { .strict_start_type = LWTUNNEL_IP_OPTS }, >> ^~~~~~~~~~~~~~~~ >> LWTUNNEL_IP_PAD >>>> net/ipv4/ip_tunnel_core.c:332:49: error: 'LWTUNNEL_IP6_OPTS' undeclared here (not in a function); did you mean 'LWTUNNEL_IP_OPTS'? >> [LWTUNNEL_IP6_UNSPEC] = { .strict_start_type = LWTUNNEL_IP6_OPTS }, >> ^~~~~~~~~~~~~~~~~ >> LWTUNNEL_IP_OPTS >>>> net/ipv4/ip_tunnel_core.c:339:3: error: array index in initializer not of integer type >> [LWTUNNEL_IP6_OPTS] = { .type = NLA_NESTED }, >> ^~~~~~~~~~~~~~~~~ >> net/ipv4/ip_tunnel_core.c:339:3: note: (near initialization for 'ip6_tun_policy') >> >> vim +214 net/ipv4/ip_tunnel_core.c >> >> 212 >> 213 static const struct nla_policy ip_tun_policy[LWTUNNEL_IP_MAX + 1] = { >> > 214 [LWTUNNEL_IP_UNSPEC] = { .strict_start_type = LWTUNNEL_IP_OPTS }, >> 215 [LWTUNNEL_IP_ID] = { .type = NLA_U64 }, >> 216 [LWTUNNEL_IP_DST] = { .type = NLA_U32 }, >> 217 [LWTUNNEL_IP_SRC] = { .type = NLA_U32 }, >> 218 [LWTUNNEL_IP_TTL] = { .type = NLA_U8 }, >> 219 [LWTUNNEL_IP_TOS] = { .type = NLA_U8 }, >> 220 [LWTUNNEL_IP_FLAGS] = { .type = NLA_U16 }, >> 221 }; >> 222 >> 223 static int ip_tun_build_state(struct nlattr *attr, >> 224 unsigned int family, const void *cfg, >> 225 struct lwtunnel_state **ts, >> 226 struct netlink_ext_ack *extack) >> 227 { >> 228 struct ip_tunnel_info *tun_info; >> 229 struct lwtunnel_state *new_state; >> 230 struct nlattr *tb[LWTUNNEL_IP_MAX + 1]; >> 231 int err; >> 232 >> 233 err = nla_parse_nested_deprecated(tb, LWTUNNEL_IP_MAX, attr, >> 234 ip_tun_policy, extack); >> 235 if (err < 0) >> 236 return err; >> 237 >> 238 new_state = lwtunnel_state_alloc(sizeof(*tun_info)); >> 239 if (!new_state) >> 240 return -ENOMEM; >> 241 >> 242 new_state->type = LWTUNNEL_ENCAP_IP; >> 243 >> 244 tun_info = lwt_tun_info(new_state); >> 245 >> 246 #ifdef CONFIG_DST_CACHE >> 247 err = dst_cache_init(&tun_info->dst_cache, GFP_KERNEL); >> 248 if (err) { >> 249 lwtstate_free(new_state); >> 250 return err; >> 251 } >> 252 #endif >> 253 >> 254 if (tb[LWTUNNEL_IP_ID]) >> 255 tun_info->key.tun_id = nla_get_be64(tb[LWTUNNEL_IP_ID]); >> 256 >> 257 if (tb[LWTUNNEL_IP_DST]) >> 258 tun_info->key.u.ipv4.dst = nla_get_in_addr(tb[LWTUNNEL_IP_DST]); >> 259 >> 260 if (tb[LWTUNNEL_IP_SRC]) >> 261 tun_info->key.u.ipv4.src = nla_get_in_addr(tb[LWTUNNEL_IP_SRC]); >> 262 >> 263 if (tb[LWTUNNEL_IP_TTL]) >> 264 tun_info->key.ttl = nla_get_u8(tb[LWTUNNEL_IP_TTL]); >> 265 >> 266 if (tb[LWTUNNEL_IP_TOS]) >> 267 tun_info->key.tos = nla_get_u8(tb[LWTUNNEL_IP_TOS]); >> 268 >> 269 if (tb[LWTUNNEL_IP_FLAGS]) >> 270 tun_info->key.tun_flags = nla_get_be16(tb[LWTUNNEL_IP_FLAGS]); >> 271 >> 272 tun_info->mode = IP_TUNNEL_INFO_TX; >> 273 tun_info->options_len = 0; >> 274 >> 275 *ts = new_state; >> 276 >> 277 return 0; >> 278 } >> 279 >> 280 static void ip_tun_destroy_state(struct lwtunnel_state *lwtstate) >> 281 { >> 282 #ifdef CONFIG_DST_CACHE >> 283 struct ip_tunnel_info *tun_info = lwt_tun_info(lwtstate); >> 284 >> 285 dst_cache_destroy(&tun_info->dst_cache); >> 286 #endif >> 287 } >> 288 >> 289 static int ip_tun_fill_encap_info(struct sk_buff *skb, >> 290 struct lwtunnel_state *lwtstate) >> 291 { >> 292 struct ip_tunnel_info *tun_info = lwt_tun_info(lwtstate); >> 293 >> 294 if (nla_put_be64(skb, LWTUNNEL_IP_ID, tun_info->key.tun_id, >> 295 LWTUNNEL_IP_PAD) || >> 296 nla_put_in_addr(skb, LWTUNNEL_IP_DST, tun_info->key.u.ipv4.dst) || >> 297 nla_put_in_addr(skb, LWTUNNEL_IP_SRC, tun_info->key.u.ipv4.src) || >> 298 nla_put_u8(skb, LWTUNNEL_IP_TOS, tun_info->key.tos) || >> 299 nla_put_u8(skb, LWTUNNEL_IP_TTL, tun_info->key.ttl) || >> 300 nla_put_be16(skb, LWTUNNEL_IP_FLAGS, tun_info->key.tun_flags)) >> 301 return -ENOMEM; >> 302 >> 303 return 0; >> 304 } >> 305 >> 306 static int ip_tun_encap_nlsize(struct lwtunnel_state *lwtstate) >> 307 { >> 308 return nla_total_size_64bit(8) /* LWTUNNEL_IP_ID */ >> 309 + nla_total_size(4) /* LWTUNNEL_IP_DST */ >> 310 + nla_total_size(4) /* LWTUNNEL_IP_SRC */ >> 311 + nla_total_size(1) /* LWTUNNEL_IP_TOS */ >> 312 + nla_total_size(1) /* LWTUNNEL_IP_TTL */ >> 313 + nla_total_size(2); /* LWTUNNEL_IP_FLAGS */ >> 314 } >> 315 >> 316 static int ip_tun_cmp_encap(struct lwtunnel_state *a, struct lwtunnel_state *b) >> 317 { >> 318 return memcmp(lwt_tun_info(a), lwt_tun_info(b), >> 319 sizeof(struct ip_tunnel_info)); >> 320 } >> 321 >> 322 static const struct lwtunnel_encap_ops ip_tun_lwt_ops = { >> 323 .build_state = ip_tun_build_state, >> 324 .destroy_state = ip_tun_destroy_state, >> 325 .fill_encap = ip_tun_fill_encap_info, >> 326 .get_encap_size = ip_tun_encap_nlsize, >> 327 .cmp_encap = ip_tun_cmp_encap, >> 328 .owner = THIS_MODULE, >> 329 }; >> 330 >> 331 static const struct nla_policy ip6_tun_policy[LWTUNNEL_IP6_MAX + 1] = { >> > 332 [LWTUNNEL_IP6_UNSPEC] = { .strict_start_type = LWTUNNEL_IP6_OPTS }, >> 333 [LWTUNNEL_IP6_ID] = { .type = NLA_U64 }, >> 334 [LWTUNNEL_IP6_DST] = { .len = sizeof(struct in6_addr) }, >> 335 [LWTUNNEL_IP6_SRC] = { .len = sizeof(struct in6_addr) }, >> 336 [LWTUNNEL_IP6_HOPLIMIT] = { .type = NLA_U8 }, >> 337 [LWTUNNEL_IP6_TC] = { .type = NLA_U8 }, >> 338 [LWTUNNEL_IP6_FLAGS] = { .type = NLA_U16 }, >> > 339 [LWTUNNEL_IP6_OPTS] = { .type = NLA_NESTED }, >> 340 }; >> 341 >> >> --- >> 0-DAY kernel test infrastructure Open Source Technology Center >> https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org Intel Corporation > _______________________________________________ > kbuild-all mailing list -- kbuild-all(a)lists.01.org > To unsubscribe send an email to kbuild-all-leave(a)lists.01.org ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH net-next] lwtunnel: be STRICT to validate the new LWTUNNEL_IP(6)_OPTS 2019-11-24 12:31 ` Xin Long 2019-11-25 0:33 ` Rong Chen @ 2019-11-25 6:38 ` Li Zhijian 2019-11-25 6:43 ` Xin Long 1 sibling, 1 reply; 8+ messages in thread From: Li Zhijian @ 2019-11-25 6:38 UTC (permalink / raw) To: kbuild-all [-- Attachment #1: Type: text/plain, Size: 1493 bytes --] On 11/24/19 8:31 PM, Xin Long wrote: > On Sat, Nov 23, 2019 at 10:11 PM kbuild test robot<lkp@intel.com> wrote: >> Hi Xin, >> >> Thank you for the patch! Yet something to improve: >> >> [auto build test ERROR on net/master] >> [also build test ERROR on v5.4-rc8] >> [cannot apply to net-next/master next-20191122] >> [if your patch is applied to the wrong git tree, please drop us a note to help >> improve the system. BTW, we also suggest to use '--base' option to specify the >> base tree in git format-patch, please seehttps://stackoverflow.com/a/37406982] >> >> url:https://github.com/0day-ci/linux/commits/Xin-Long/lwtunnel-be-STRICT-to-validate-the-new-LWTUNNEL_IP-6-_OPTS/20191123-204806 >> base:https://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git 5b1d9c17a3e0c16e1c9adf9c8a89f2735cb6dff8 > This patch shouldn't be applied to net.git without: > > commit 4ece477870774698e6e73d5821a3dd1605ca123b > Author: Xin Long<lucien.xin@gmail.com> > Date: Wed Nov 6 17:01:05 2019 +0800 > > lwtunnel: add options setting and dumping for geneve > Hi, May i know which tree/branch you are basing on for the patch "[PATCH] lwtunnel: be STRICT to validate the new LWTUNNEL_IP(6)_OPTS" Your inputs could be helpful for us to improve our kbuild robot continuously. As the mentioned above, the kbuild robot failed to apply to net-next/master which i have checked that 4ece477870774698e6e73d5821a3dd1605ca123b was already included Thanks Zhijian [-- Attachment #2: attachment.html --] [-- Type: text/html, Size: 2621 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH net-next] lwtunnel: be STRICT to validate the new LWTUNNEL_IP(6)_OPTS 2019-11-25 6:38 ` Li Zhijian @ 2019-11-25 6:43 ` Xin Long 2019-11-25 7:05 ` Li Zhijian 0 siblings, 1 reply; 8+ messages in thread From: Xin Long @ 2019-11-25 6:43 UTC (permalink / raw) To: kbuild-all [-- Attachment #1: Type: text/plain, Size: 1662 bytes --] On Mon, Nov 25, 2019 at 2:39 PM Li Zhijian <zhijianx.li@intel.com> wrote: > > > On 11/24/19 8:31 PM, Xin Long wrote: > > On Sat, Nov 23, 2019 at 10:11 PM kbuild test robot <lkp@intel.com> wrote: > > Hi Xin, > > Thank you for the patch! Yet something to improve: > > [auto build test ERROR on net/master] > [also build test ERROR on v5.4-rc8] > [cannot apply to net-next/master next-20191122] > [if your patch is applied to the wrong git tree, please drop us a note to help > improve the system. BTW, we also suggest to use '--base' option to specify the > base tree in git format-patch, please see https://stackoverflow.com/a/37406982] > > url: https://github.com/0day-ci/linux/commits/Xin-Long/lwtunnel-be-STRICT-to-validate-the-new-LWTUNNEL_IP-6-_OPTS/20191123-204806 > base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git 5b1d9c17a3e0c16e1c9adf9c8a89f2735cb6dff8 > > This patch shouldn't be applied to net.git without: > > commit 4ece477870774698e6e73d5821a3dd1605ca123b > Author: Xin Long <lucien.xin@gmail.com> > Date: Wed Nov 6 17:01:05 2019 +0800 > > lwtunnel: add options setting and dumping for geneve > > Hi, > > May i know which tree/branch you are basing on for the patch "[PATCH] lwtunnel: be STRICT to validate the new LWTUNNEL_IP(6)_OPTS" > Your inputs could be helpful for us to improve our kbuild robot continuously. > > As the mentioned above, the kbuild robot failed to apply to net-next/master which i have checked that > 4ece477870774698e6e73d5821a3dd1605ca123b was already included git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git on this tree, it worked to me. ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH net-next] lwtunnel: be STRICT to validate the new LWTUNNEL_IP(6)_OPTS 2019-11-25 6:43 ` Xin Long @ 2019-11-25 7:05 ` Li Zhijian 0 siblings, 0 replies; 8+ messages in thread From: Li Zhijian @ 2019-11-25 7:05 UTC (permalink / raw) To: kbuild-all [-- Attachment #1: Type: text/plain, Size: 1887 bytes --] On 11/25/19 2:43 PM, Xin Long wrote: > On Mon, Nov 25, 2019 at 2:39 PM Li Zhijian<zhijianx.li@intel.com> wrote: >> On 11/24/19 8:31 PM, Xin Long wrote: >> >> On Sat, Nov 23, 2019 at 10:11 PM kbuild test robot<lkp@intel.com> wrote: >> >> Hi Xin, >> >> Thank you for the patch! Yet something to improve: >> >> [auto build test ERROR on net/master] >> [also build test ERROR on v5.4-rc8] >> [cannot apply to net-next/master next-20191122] >> [if your patch is applied to the wrong git tree, please drop us a note to help >> improve the system. BTW, we also suggest to use '--base' option to specify the >> base tree in git format-patch, please seehttps://stackoverflow.com/a/37406982] >> >> url:https://github.com/0day-ci/linux/commits/Xin-Long/lwtunnel-be-STRICT-to-validate-the-new-LWTUNNEL_IP-6-_OPTS/20191123-204806 >> base:https://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git 5b1d9c17a3e0c16e1c9adf9c8a89f2735cb6dff8 >> >> This patch shouldn't be applied to net.git without: >> >> commit 4ece477870774698e6e73d5821a3dd1605ca123b >> Author: Xin Long<lucien.xin@gmail.com> >> Date: Wed Nov 6 17:01:05 2019 +0800 >> >> lwtunnel: add options setting and dumping for geneve >> >> Hi, >> >> May i know which tree/branch you are basing on for the patch "[PATCH] lwtunnel: be STRICT to validate the new LWTUNNEL_IP(6)_OPTS" >> Your inputs could be helpful for us to improve our kbuild robot continuously. >> >> As the mentioned above, the kbuild robot failed to apply to net-next/master which i have checked that >> 4ece477870774698e6e73d5821a3dd1605ca123b was already included > git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git > on this tree, it worked to me. thanks. i knew what happened i think. this patch have been merged into net-next/master already, so this is a negative report. Thanks Zhijian [-- Attachment #2: attachment.html --] [-- Type: text/html, Size: 3250 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2019-11-25 7:05 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2019-11-21 10:11 [PATCH net-next] lwtunnel: be STRICT to validate the new LWTUNNEL_IP(6)_OPTS Xin Long 2019-11-21 19:48 ` David Miller 2019-11-23 14:11 ` kbuild test robot 2019-11-24 12:31 ` Xin Long 2019-11-25 0:33 ` Rong Chen 2019-11-25 6:38 ` Li Zhijian 2019-11-25 6:43 ` Xin Long 2019-11-25 7:05 ` Li Zhijian
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.