bareudp: print error message when command fails
authorTaehee Yoo <ap420073@gmail.com>
Sun, 8 Mar 2020 01:19:17 +0000 (01:19 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 9 Mar 2020 04:22:29 +0000 (21:22 -0700)
When bareudp netlink command fails, it doesn't print any error message.
So, users couldn't know the exact reason.
In order to tell the exact reason to the user, the extack error message
is used in this patch.

Signed-off-by: Taehee Yoo <ap420073@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/bareudp.c

index b1210b5161379a6fa68737dec1bafa4d6ddf98cd..c9d0d68467f77a831a8f0d61ba954349ad686e34 100644 (file)
@@ -556,10 +556,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 +642,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;