diff options
author | Vladimir Oltean <vladimir.oltean@nxp.com> | 2023-02-16 00:46:32 +0200 |
---|---|---|
committer | Paolo Abeni <pabeni@redhat.com> | 2023-02-20 08:46:57 +0100 |
commit | 64cb6aad12328015202af5b2a9623c6bcc021855 (patch) | |
tree | 25a035e2be7cb279ca8ac7d20c00ed95b9218baf /net/sched | |
parent | bdf366bd867c4565b535a5825df7ddcb4773fc28 (diff) | |
download | linux-stable-64cb6aad12328015202af5b2a9623c6bcc021855.tar.gz linux-stable-64cb6aad12328015202af5b2a9623c6bcc021855.tar.bz2 linux-stable-64cb6aad12328015202af5b2a9623c6bcc021855.zip |
net/sched: taprio: dynamic max_sdu larger than the max_mtu is unlimited
It makes no sense to keep randomly large max_sdu values, especially if
larger than the device's max_mtu. These are visible in "tc qdisc show".
Such a max_sdu is practically unlimited and will cause no packets for
that traffic class to be dropped on enqueue.
Just set max_sdu_dynamic to U32_MAX, which in the logic below causes
taprio to save a max_frm_len of U32_MAX and a max_sdu presented to user
space of 0 (unlimited).
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Reviewed-by: Kurt Kanzenbach <kurt@linutronix.de>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Diffstat (limited to 'net/sched')
-rw-r--r-- | net/sched/sch_taprio.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/net/sched/sch_taprio.c b/net/sched/sch_taprio.c index 53ba4d6b0218..1f469861eae3 100644 --- a/net/sched/sch_taprio.c +++ b/net/sched/sch_taprio.c @@ -288,6 +288,8 @@ static void taprio_update_queue_max_sdu(struct taprio_sched *q, dev->hard_header_len + 1); } max_sdu_dynamic = max_frm_len - dev->hard_header_len; + if (max_sdu_dynamic > dev->max_mtu) + max_sdu_dynamic = U32_MAX; } max_sdu = min(max_sdu_dynamic, max_sdu_from_user); |