net: sched: refine extack messages in tcf_change_indev

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>
This commit is contained in:
Guillaume Nault 2020-03-23 21:48:47 +01:00 committed by David S. Miller
parent 6a864730ae
commit e4a58ef3ce

View 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;
}