Message ID | 20220125100654.424570-1-maximmi@nvidia.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 429c3be8a5e2695b5b92a6a12361eb89eb185495 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net] sch_htb: Fail on unsupported parameters when offload is requested | expand |
Hello: This patch was applied to netdev/net.git (master) by Jakub Kicinski <kuba@kernel.org>: On Tue, 25 Jan 2022 12:06:54 +0200 you wrote: > The current implementation of HTB offload doesn't support some > parameters. Instead of ignoring them, actively return the EINVAL error > when they are set to non-defaults. > > As this patch goes to stable, the driver API is not changed here. If > future drivers support more offload parameters, the checks can be moved > to the driver side. > > [...] Here is the summary with links: - [net] sch_htb: Fail on unsupported parameters when offload is requested https://git.kernel.org/netdev/net/c/429c3be8a5e2 You are awesome, thank you!
diff --git a/net/sched/sch_htb.c b/net/sched/sch_htb.c index 9267922ea9c3..23a9d6242429 100644 --- a/net/sched/sch_htb.c +++ b/net/sched/sch_htb.c @@ -1810,6 +1810,26 @@ static int htb_change_class(struct Qdisc *sch, u32 classid, if (!hopt->rate.rate || !hopt->ceil.rate) goto failure; + if (q->offload) { + /* Options not supported by the offload. */ + if (hopt->rate.overhead || hopt->ceil.overhead) { + NL_SET_ERR_MSG(extack, "HTB offload doesn't support the overhead parameter"); + goto failure; + } + if (hopt->rate.mpu || hopt->ceil.mpu) { + NL_SET_ERR_MSG(extack, "HTB offload doesn't support the mpu parameter"); + goto failure; + } + if (hopt->quantum) { + NL_SET_ERR_MSG(extack, "HTB offload doesn't support the quantum parameter"); + goto failure; + } + if (hopt->prio) { + NL_SET_ERR_MSG(extack, "HTB offload doesn't support the prio parameter"); + goto failure; + } + } + /* Keeping backward compatible with rate_table based iproute2 tc */ if (hopt->rate.linklayer == TC_LINKLAYER_UNAWARE) qdisc_put_rtab(qdisc_get_rtab(&hopt->rate, tb[TCA_HTB_RTAB],