busybox: Fix tc applet build when using kernel 6.8+

We now have 6.9 kernel headers in master which means
busybox builds with CONFIG_TC will fail to build due
to CBQ being dropped in kernel 6.8+

Apply a fix which is reported upstream

(From OE-Core rev: 3afbeb1ea418a69a452e82cbce00c36452b75f1e)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Khem Raj
2024-07-14 09:59:04 -07:00
committed by Richard Purdie
parent e18d60deb0
commit 9bae37cb63
2 changed files with 62 additions and 0 deletions

View File

@@ -0,0 +1,61 @@
Remove CBQ functionality from tc
6.8+ kernel has dropped CBQ support [1], Now that OE uses 6.9 for
kernel-headers means we are hitting the undefined symbol
TCA_CBQ_MAX [2]
[1] https://github.com/torvalds/linux/commit/33241dca486264193ed68167c8eeae1fb197f3df
[2] https://bugs.busybox.net/show_bug.cgi?id=15934
Upstream-Status: Submitted [https://bugs.busybox.net/show_bug.cgi?id=15931]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
diff -up busybox-1.36.1/networking/tc.c.no-cbq busybox-1.36.1/networking/tc.c
--- busybox-1.36.1/networking/tc.c.no-cbq 2024-01-29 10:24:09.135082923 -0500
+++ busybox-1.36.1/networking/tc.c 2024-01-29 10:28:12.009502552 -0500
@@ -31,7 +31,7 @@
//usage: "qdisc [handle QHANDLE] [root|"IF_FEATURE_TC_INGRESS("ingress|")"parent CLASSID]\n"
/* //usage: "[estimator INTERVAL TIME_CONSTANT]\n" */
//usage: " [[QDISC_KIND] [help|OPTIONS]]\n"
-//usage: " QDISC_KIND := [p|b]fifo|tbf|prio|cbq|red|etc.\n"
+//usage: " QDISC_KIND := [p|b]fifo|tbf|prio|red|etc.\n"
//usage: "qdisc show [dev STRING]"IF_FEATURE_TC_INGRESS(" [ingress]")"\n"
//usage: "class [classid CLASSID] [root|parent CLASSID]\n"
//usage: " [[QDISC_KIND] [help|OPTIONS] ]\n"
@@ -230,7 +230,7 @@ static int cbq_parse_opt(int argc, char
{
return 0;
}
-#endif
+
static int cbq_print_opt(struct rtattr *opt)
{
struct rtattr *tb[TCA_CBQ_MAX+1];
@@ -322,6 +322,7 @@ static int cbq_print_opt(struct rtattr *
done:
return 0;
}
+#endif
static FAST_FUNC int print_qdisc(
const struct sockaddr_nl *who UNUSED_PARAM,
@@ -373,7 +374,8 @@ static FAST_FUNC int print_qdisc(
if (qqq == 0) { /* pfifo_fast aka prio */
prio_print_opt(tb[TCA_OPTIONS]);
} else if (qqq == 1) { /* class based queuing */
- cbq_print_opt(tb[TCA_OPTIONS]);
+ /* cbq_print_opt(tb[TCA_OPTIONS]); */
+ printf("cbq not supported");
} else {
/* don't know how to print options for this qdisc */
printf("(options for %s)", name);
@@ -444,7 +446,8 @@ static FAST_FUNC int print_class(
/* nothing. */ /*prio_print_opt(tb[TCA_OPTIONS]);*/
} else if (qqq == 1) { /* class based queuing */
/* cbq_print_copt() is identical to cbq_print_opt(). */
- cbq_print_opt(tb[TCA_OPTIONS]);
+ /* cbq_print_opt(tb[TCA_OPTIONS]); */
+ printf("cbq not supported");
} else {
/* don't know how to print options for this class */
printf("(options for %s)", name);

View File

@@ -52,6 +52,7 @@ SRC_URI = "https://busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \
file://CVE-2021-42380.patch \
file://0001-awk-fix-segfault-when-compiled-by-clang.patch \
file://CVE-2023-42363.patch \
file://busybox-1.36.1-no-cbq.patch \
"
SRC_URI:append:libc-musl = " file://musl.cfg "
# TODO http://lists.busybox.net/pipermail/busybox/2023-January/090078.html