mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-09 14:43:16 +00:00
bareudp: Add extack support to bareudp_configure()
Add missing extacks for common configuration errors. Signed-off-by: Guillaume Nault <gnault@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
0976b888a1
commit
b4bffa4cea
@ -609,7 +609,8 @@ static struct bareudp_dev *bareudp_find_dev(struct bareudp_net *bn,
|
||||
}
|
||||
|
||||
static int bareudp_configure(struct net *net, struct net_device *dev,
|
||||
struct bareudp_conf *conf)
|
||||
struct bareudp_conf *conf,
|
||||
struct netlink_ext_ack *extack)
|
||||
{
|
||||
struct bareudp_net *bn = net_generic(net, bareudp_net_id);
|
||||
struct bareudp_dev *t, *bareudp = netdev_priv(dev);
|
||||
@ -618,13 +619,17 @@ static int bareudp_configure(struct net *net, struct net_device *dev,
|
||||
bareudp->net = net;
|
||||
bareudp->dev = dev;
|
||||
t = bareudp_find_dev(bn, conf);
|
||||
if (t)
|
||||
if (t) {
|
||||
NL_SET_ERR_MSG(extack, "Another bareudp device using the same port already exists");
|
||||
return -EBUSY;
|
||||
}
|
||||
|
||||
if (conf->multi_proto_mode &&
|
||||
(conf->ethertype != htons(ETH_P_MPLS_UC) &&
|
||||
conf->ethertype != htons(ETH_P_IP)))
|
||||
conf->ethertype != htons(ETH_P_IP))) {
|
||||
NL_SET_ERR_MSG(extack, "Cannot set multiproto mode for this ethertype (only IPv4 and unicast MPLS are supported)");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
bareudp->port = conf->port;
|
||||
bareudp->ethertype = conf->ethertype;
|
||||
@ -671,7 +676,7 @@ static int bareudp_newlink(struct net *net, struct net_device *dev,
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
err = bareudp_configure(net, dev, &conf);
|
||||
err = bareudp_configure(net, dev, &conf, extack);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user