net: sched: refine extack messages in tcf_change_indev
authorGuillaume Nault <gnault@redhat.com>
Mon, 23 Mar 2020 20:48:47 +0000 (21:48 +0100)
committerDavid S. Miller <davem@davemloft.net>
Fri, 27 Mar 2020 02:52:31 +0000 (19:52 -0700)
Add an error message when device wasn't found.
While there, also set the bad attribute's offset in extack.

Signed-off-by: Guillaume Nault <gnault@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/pkt_cls.h

index 1db8b27..41902e1 100644 (file)
@@ -502,12 +502,16 @@ tcf_change_indev(struct net *net, struct nlattr *indev_tlv,
        struct net_device *dev;
 
        if (nla_strlcpy(indev, indev_tlv, IFNAMSIZ) >= IFNAMSIZ) {
-               NL_SET_ERR_MSG(extack, "Interface name too long");
+               NL_SET_ERR_MSG_ATTR(extack, indev_tlv,
+                                   "Interface name too long");
                return -EINVAL;
        }
        dev = __dev_get_by_name(net, indev);
-       if (!dev)
+       if (!dev) {
+               NL_SET_ERR_MSG_ATTR(extack, indev_tlv,
+                                   "Network device not found");
                return -ENODEV;
+       }
        return dev->ifindex;
 }