]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - net/ipv4/ip_tunnel_core.c
Merge tag 'powerpc-4.13-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc...
[karo-tx-linux.git] / net / ipv4 / ip_tunnel_core.c
index baf196eaf1d81809a9264fb94daa58eae51f1bff..2f39479be92f4602c8cb3f95ca8bc3ca56469f25 100644 (file)
@@ -134,10 +134,12 @@ struct metadata_dst *iptunnel_metadata_reply(struct metadata_dst *md,
        struct metadata_dst *res;
        struct ip_tunnel_info *dst, *src;
 
-       if (!md || md->u.tun_info.mode & IP_TUNNEL_INFO_TX)
+       if (!md || md->type != METADATA_IP_TUNNEL ||
+           md->u.tun_info.mode & IP_TUNNEL_INFO_TX)
+
                return NULL;
 
-       res = metadata_dst_alloc(0, flags);
+       res = metadata_dst_alloc(0, METADATA_IP_TUNNEL, flags);
        if (!res)
                return NULL;
 
@@ -228,14 +230,16 @@ static const struct nla_policy ip_tun_policy[LWTUNNEL_IP_MAX + 1] = {
 
 static int ip_tun_build_state(struct nlattr *attr,
                              unsigned int family, const void *cfg,
-                             struct lwtunnel_state **ts)
+                             struct lwtunnel_state **ts,
+                             struct netlink_ext_ack *extack)
 {
        struct ip_tunnel_info *tun_info;
        struct lwtunnel_state *new_state;
        struct nlattr *tb[LWTUNNEL_IP_MAX + 1];
        int err;
 
-       err = nla_parse_nested(tb, LWTUNNEL_IP_MAX, attr, ip_tun_policy, NULL);
+       err = nla_parse_nested(tb, LWTUNNEL_IP_MAX, attr, ip_tun_policy,
+                              extack);
        if (err < 0)
                return err;
 
@@ -325,7 +329,8 @@ static const struct nla_policy ip6_tun_policy[LWTUNNEL_IP6_MAX + 1] = {
 
 static int ip6_tun_build_state(struct nlattr *attr,
                               unsigned int family, const void *cfg,
-                              struct lwtunnel_state **ts)
+                              struct lwtunnel_state **ts,
+                              struct netlink_ext_ack *extack)
 {
        struct ip_tunnel_info *tun_info;
        struct lwtunnel_state *new_state;
@@ -333,7 +338,7 @@ static int ip6_tun_build_state(struct nlattr *attr,
        int err;
 
        err = nla_parse_nested(tb, LWTUNNEL_IP6_MAX, attr, ip6_tun_policy,
-                              NULL);
+                              extack);
        if (err < 0)
                return err;