diff --git a/drivers/net/bareudp.c b/drivers/net/bareudp.c index 15337e9d4fad..71a2f480f70e 100644 --- a/drivers/net/bareudp.c +++ b/drivers/net/bareudp.c @@ -250,9 +250,6 @@ static int bareudp_socket_create(struct bareudp_dev *bareudp, __be16 port) tunnel_cfg.encap_destroy = NULL; setup_udp_tunnel_sock(bareudp->net, sock, &tunnel_cfg); - if (sock->sk->sk_family == AF_INET6) - udp_encap_enable(); - rcu_assign_pointer(bareudp->sock, sock); return 0; } @@ -556,10 +553,17 @@ static int bareudp_validate(struct nlattr *tb[], struct nlattr *data[], return 0; } -static int bareudp2info(struct nlattr *data[], struct bareudp_conf *conf) +static int bareudp2info(struct nlattr *data[], struct bareudp_conf *conf, + struct netlink_ext_ack *extack) { - if (!data[IFLA_BAREUDP_PORT] || !data[IFLA_BAREUDP_ETHERTYPE]) + if (!data[IFLA_BAREUDP_PORT]) { + NL_SET_ERR_MSG(extack, "port not specified"); return -EINVAL; + } + if (!data[IFLA_BAREUDP_ETHERTYPE]) { + NL_SET_ERR_MSG(extack, "ethertype not specified"); + return -EINVAL; + } if (data[IFLA_BAREUDP_PORT]) conf->port = nla_get_u16(data[IFLA_BAREUDP_PORT]); @@ -635,7 +639,7 @@ static int bareudp_newlink(struct net *net, struct net_device *dev, struct bareudp_conf conf; int err; - err = bareudp2info(data, &conf); + err = bareudp2info(data, &conf, extack); if (err) return err; @@ -801,6 +805,7 @@ static void __exit bareudp_cleanup_module(void) } module_exit(bareudp_cleanup_module); +MODULE_ALIAS_RTNL_LINK("bareudp"); MODULE_LICENSE("GPL"); MODULE_AUTHOR("Martin Varghese "); MODULE_DESCRIPTION("Interface driver for UDP encapsulated traffic");