]> www.infradead.org Git - users/hch/misc.git/commitdiff
net: tc: improve qdisc error messages
authorJohn Ousterhout <ouster@cs.stanford.edu>
Thu, 16 Jan 2025 19:56:41 +0000 (11:56 -0800)
committerJakub Kicinski <kuba@kernel.org>
Sat, 18 Jan 2025 03:52:06 +0000 (19:52 -0800)
The existing error message ("Invalid qdisc name") is confusing
because it suggests that there is no qdisc with the given name. In
fact, the name does refer to a valid qdisc, but it doesn't match
the kind of an existing qdisc being modified or replaced. The
new error message provides more detail to eliminate confusion.

Signed-off-by: John Ousterhout <ouster@cs.stanford.edu>
Acked-by: Jamal Hadi Salim <jhs@mojatatu.com>
Link: https://patch.msgid.link/20250116195642.2794-1-ouster@cs.stanford.edu
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/sched/sch_api.c

index 300430b8c4d22f59f2b5a61bc9bb53ceb4825e1b..5d017c06a96fb31b962c8ed0f522d8bea84193d3 100644 (file)
@@ -1560,7 +1560,7 @@ static int tc_get_qdisc(struct sk_buff *skb, struct nlmsghdr *n,
        }
 
        if (tca[TCA_KIND] && nla_strcmp(tca[TCA_KIND], q->ops->id)) {
-               NL_SET_ERR_MSG(extack, "Invalid qdisc name");
+               NL_SET_ERR_MSG(extack, "Invalid qdisc name: must match existing qdisc");
                return -EINVAL;
        }
 
@@ -1670,7 +1670,7 @@ replay:
                                }
                                if (tca[TCA_KIND] &&
                                    nla_strcmp(tca[TCA_KIND], q->ops->id)) {
-                                       NL_SET_ERR_MSG(extack, "Invalid qdisc name");
+                                       NL_SET_ERR_MSG(extack, "Invalid qdisc name: must match existing qdisc");
                                        return -EINVAL;
                                }
                                if (q->flags & TCQ_F_INGRESS) {
@@ -1746,7 +1746,7 @@ replay:
                return -EEXIST;
        }
        if (tca[TCA_KIND] && nla_strcmp(tca[TCA_KIND], q->ops->id)) {
-               NL_SET_ERR_MSG(extack, "Invalid qdisc name");
+               NL_SET_ERR_MSG(extack, "Invalid qdisc name: must match existing qdisc");
                return -EINVAL;
        }
        err = qdisc_change(q, tca, extack);