diff --git a/net/ipv6/sit.c b/net/ipv6/sit.c
index 6cee844678e2418c2fefc84ddbfd9c34584ea613..f639866b3dcfb51e3c0fc22e0298fd5cf1816f8e 100644
--- a/net/ipv6/sit.c
+++ b/net/ipv6/sit.c
@@ -1296,7 +1296,7 @@ static int ipip6_validate(struct nlattr *tb[], struct nlattr *data[])
 {
 	u8 proto;
 
-	if (!data)
+	if (!data || !data[IFLA_IPTUN_PROTO])
 		return 0;
 
 	proto = nla_get_u8(data[IFLA_IPTUN_PROTO]);