commit:     68b495f5e75cc899033bc765a51ad1c8fd8b96e0
Author:     Louis Sautier <sautier.louis <AT> gmail <DOT> com>
AuthorDate: Sat Apr  6 22:18:59 2024 +0000
Commit:     Ben Kohler <bkohler <AT> gentoo <DOT> org>
CommitDate: Fri Apr 26 17:13:22 2024 +0000
URL:        https://gitweb.gentoo.org/proj/genkernel.git/commit/?id=68b495f5

initramfs: fix busybox 1.36.1 build witk kernel 6.8

Patch taken from
https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d8ad860a1ed9aa92ada.

Bug: https://bugs.gentoo.org/928573
Signed-off-by: Louis Sautier <sautier.louis <AT> gmail.com>
Closes: https://github.com/gentoo/genkernel/pull/59
Signed-off-by: Ben Kohler <bkohler <AT> gentoo.org>

 .../busybox/1.36.1/busybox-1.36.1-kernel-6.8.patch | 53 ++++++++++++++++++++++
 1 file changed, 53 insertions(+)

diff --git a/patches/busybox/1.36.1/busybox-1.36.1-kernel-6.8.patch 
b/patches/busybox/1.36.1/busybox-1.36.1-kernel-6.8.patch
new file mode 100644
index 0000000..7e7b873
--- /dev/null
+++ b/patches/busybox/1.36.1/busybox-1.36.1-kernel-6.8.patch
@@ -0,0 +1,53 @@
+http://lists.busybox.net/pipermail/busybox/2024-March/090678.html
+https://bugs.gentoo.org/928573
+
+Linux v6.8-rc1 removed the definitions related to CBQ making tc fail to
+build. Add some #ifdefs to handle this missing support.
+--- a/networking/tc.c
++++ b/networking/tc.c
+@@ -231,6 +231,13 @@ static int cbq_parse_opt(int argc, char **argv, struct 
nlmsghdr *n)
+       return 0;
+ }
+ #endif
++
++#ifndef TCA_CBQ_MAX
++/*
++ * Linux v6.8-rc1 removed the uapi definitions for CBQ.
++ * See https://git.kernel.org/linus/33241dca48626
++ */
++#else
+ static int cbq_print_opt(struct rtattr *opt)
+ {
+       struct rtattr *tb[TCA_CBQ_MAX+1];
+@@ -322,6 +329,7 @@ static int cbq_print_opt(struct rtattr *opt)
+  done:
+       return 0;
+ }
++#endif
+ 
+ static FAST_FUNC int print_qdisc(
+               const struct sockaddr_nl *who UNUSED_PARAM,
+@@ -372,8 +380,10 @@ static FAST_FUNC int print_qdisc(
+               int qqq = index_in_strings(_q_, name);
+               if (qqq == 0) { /* pfifo_fast aka prio */
+                       prio_print_opt(tb[TCA_OPTIONS]);
++#ifdef TCA_CBQ_MAX
+               } else if (qqq == 1) { /* class based queuing */
+                       cbq_print_opt(tb[TCA_OPTIONS]);
++#endif
+               } else {
+                       /* don't know how to print options for this qdisc */
+                       printf(&quot;(options for %s)&quot;, name);
+@@ -442,9 +452,11 @@ static FAST_FUNC int print_class(
+               int qqq = index_in_strings(_q_, name);
+               if (qqq == 0) { /* pfifo_fast aka prio */
+                       /* nothing. */ /*prio_print_opt(tb[TCA_OPTIONS]);*/
++#ifdef TCA_CBQ_MAX
+               } else if (qqq == 1) { /* class based queuing */
+                       /* cbq_print_copt() is identical to cbq_print_opt(). */
+                       cbq_print_opt(tb[TCA_OPTIONS]);
++#endif
+               } else {
+                       /* don't know how to print options for this class */
+                       printf(&quot;(options for %s)&quot;, name);
+

Reply via email to