diff --git a/target/linux/generic/backport-6.12/201-v6.13-of-property-add-of_graph_get_next_port.patch b/target/linux/generic/backport-6.12/201-v6.13-of-property-add-of_graph_get_next_port.patch deleted file mode 100644 index 5178dc83ae4..00000000000 --- a/target/linux/generic/backport-6.12/201-v6.13-of-property-add-of_graph_get_next_port.patch +++ /dev/null @@ -1,199 +0,0 @@ -From 02ac5f9d6caec96071103f7c62b5117526e47b64 Mon Sep 17 00:00:00 2001 -From: Kuninori Morimoto -Date: Thu, 24 Oct 2024 02:20:02 +0000 -Subject: [PATCH] of: property: add of_graph_get_next_port() - -We have endpoint base functions - - of_graph_get_next_endpoint() - - of_graph_get_endpoint_count() - - for_each_endpoint_of_node() - -Here, for_each_endpoint_of_node() loop finds each endpoints - - ports { - port@0 { -(1) endpoint {...}; - }; - port@1 { -(2) endpoint {...}; - }; - ... - }; - -In above case, it finds endpoint as (1) -> (2) -> ... - -Basically, user/driver knows which port is used for what, but not in -all cases. For example on flexible/generic driver case, how many ports -are used is not fixed. - -For example Sound Generic Card driver which is very flexible/generic and -used from many venders can't know how many ports are used, and used for -what, because it depends on each vender SoC and/or its used board. - -And more, the port can have multi endpoints. For example Generic Sound -Card case, it supports many type of connection between CPU / Codec, and -some of them uses multi endpoint in one port. see below. - - ports { -(A) port@0 { -(1) endpoint@0 {...}; -(2) endpoint@1 {...}; - }; -(B) port@1 { -(3) endpoint {...}; - }; - ... - }; - -Generic Sound Card want to handle each connection via "port" base instead -of "endpoint" base. But, it is very difficult to handle each "port" via -existing for_each_endpoint_of_node(). Because getting each "port" via -of_get_parent() from each "endpoint" doesn't work. For example in above -case, both (1) (2) endpoint has same "port" (= A). - -Add "port" base functions. - -Signed-off-by: Kuninori Morimoto -Link: https://lore.kernel.org/r/87ldyeb5t9.wl-kuninori.morimoto.gx@renesas.com -Signed-off-by: Rob Herring (Arm) ---- - drivers/of/property.c | 54 ++++++++++++++++++++++++++++++++++++++++ - include/linux/of_graph.h | 28 +++++++++++++++++++++ - 2 files changed, 82 insertions(+) - ---- a/drivers/of/property.c -+++ b/drivers/of/property.c -@@ -631,6 +631,43 @@ struct device_node *of_graph_get_port_by - EXPORT_SYMBOL(of_graph_get_port_by_id); - - /** -+ * of_graph_get_next_port() - get next port node. -+ * @parent: pointer to the parent device node, or parent ports node -+ * @prev: previous port node, or NULL to get first -+ * -+ * Parent device node can be used as @parent whether device node has ports node -+ * or not. It will work same as ports@0 node. -+ * -+ * Return: A 'port' node pointer with refcount incremented. Refcount -+ * of the passed @prev node is decremented. -+ */ -+struct device_node *of_graph_get_next_port(const struct device_node *parent, -+ struct device_node *prev) -+{ -+ if (!parent) -+ return NULL; -+ -+ if (!prev) { -+ struct device_node *node __free(device_node) = -+ of_get_child_by_name(parent, "ports"); -+ -+ if (node) -+ parent = node; -+ -+ return of_get_child_by_name(parent, "port"); -+ } -+ -+ do { -+ prev = of_get_next_child(parent, prev); -+ if (!prev) -+ break; -+ } while (!of_node_name_eq(prev, "port")); -+ -+ return prev; -+} -+EXPORT_SYMBOL(of_graph_get_next_port); -+ -+/** - * of_graph_get_next_endpoint() - get next endpoint node - * @parent: pointer to the parent device node - * @prev: previous endpoint node, or NULL to get first -@@ -824,6 +861,23 @@ unsigned int of_graph_get_endpoint_count - EXPORT_SYMBOL(of_graph_get_endpoint_count); - - /** -+ * of_graph_get_port_count() - get the number of port in a device or ports node -+ * @np: pointer to the device or ports node -+ * -+ * Return: count of port of this device or ports node -+ */ -+unsigned int of_graph_get_port_count(struct device_node *np) -+{ -+ unsigned int num = 0; -+ -+ for_each_of_graph_port(np, port) -+ num++; -+ -+ return num; -+} -+EXPORT_SYMBOL(of_graph_get_port_count); -+ -+/** - * of_graph_get_remote_node() - get remote parent device_node for given port/endpoint - * @node: pointer to parent device_node containing graph port/endpoint - * @port: identifier (value of reg property) of the parent port node ---- a/include/linux/of_graph.h -+++ b/include/linux/of_graph.h -@@ -11,6 +11,7 @@ - #ifndef __LINUX_OF_GRAPH_H - #define __LINUX_OF_GRAPH_H - -+#include - #include - #include - -@@ -37,14 +38,29 @@ struct of_endpoint { - for (child = of_graph_get_next_endpoint(parent, NULL); child != NULL; \ - child = of_graph_get_next_endpoint(parent, child)) - -+/** -+ * for_each_of_graph_port - iterate over every port in a device or ports node -+ * @parent: parent device or ports node containing port -+ * @child: loop variable pointing to the current port node -+ * -+ * When breaking out of the loop, and continue to use the @child, you need to -+ * use return_ptr(@child) or no_free_ptr(@child) not to call __free() for it. -+ */ -+#define for_each_of_graph_port(parent, child) \ -+ for (struct device_node *child __free(device_node) = of_graph_get_next_port(parent, NULL);\ -+ child != NULL; child = of_graph_get_next_port(parent, child)) -+ - #ifdef CONFIG_OF - bool of_graph_is_present(const struct device_node *node); - int of_graph_parse_endpoint(const struct device_node *node, - struct of_endpoint *endpoint); - unsigned int of_graph_get_endpoint_count(const struct device_node *np); -+unsigned int of_graph_get_port_count(struct device_node *np); - struct device_node *of_graph_get_port_by_id(struct device_node *node, u32 id); - struct device_node *of_graph_get_next_endpoint(const struct device_node *parent, - struct device_node *previous); -+struct device_node *of_graph_get_next_port(const struct device_node *parent, -+ struct device_node *port); - struct device_node *of_graph_get_endpoint_by_regs( - const struct device_node *parent, int port_reg, int reg); - struct device_node *of_graph_get_remote_endpoint( -@@ -73,6 +89,11 @@ static inline unsigned int of_graph_get_ - return 0; - } - -+static inline unsigned int of_graph_get_port_count(struct device_node *np) -+{ -+ return 0; -+} -+ - static inline struct device_node *of_graph_get_port_by_id( - struct device_node *node, u32 id) - { -@@ -83,6 +104,13 @@ static inline struct device_node *of_gra - const struct device_node *parent, - struct device_node *previous) - { -+ return NULL; -+} -+ -+static inline struct device_node *of_graph_get_next_port( -+ const struct device_node *parent, -+ struct device_node *previous) -+{ - return NULL; - } - diff --git a/target/linux/generic/backport-6.12/202-v6.13-clk-Provide-devm_clk_bulk_get_all_enabled-helper.patch b/target/linux/generic/backport-6.12/202-v6.13-clk-Provide-devm_clk_bulk_get_all_enabled-helper.patch index c02e4ed6a2f..e40cdadb0c7 100644 --- a/target/linux/generic/backport-6.12/202-v6.13-clk-Provide-devm_clk_bulk_get_all_enabled-helper.patch +++ b/target/linux/generic/backport-6.12/202-v6.13-clk-Provide-devm_clk_bulk_get_all_enabled-helper.patch @@ -36,7 +36,7 @@ Signed-off-by: Stephen Boyd --- a/drivers/clk/clk-devres.c +++ b/drivers/clk/clk-devres.c -@@ -218,8 +218,8 @@ static void devm_clk_bulk_release_all_en +@@ -226,8 +226,8 @@ static void devm_clk_bulk_release_all_en clk_bulk_put_all(devres->num_clks, devres->clks); } @@ -47,7 +47,7 @@ Signed-off-by: Stephen Boyd { struct clk_bulk_devres *devres; int ret; -@@ -244,11 +244,12 @@ int __must_check devm_clk_bulk_get_all_e +@@ -252,11 +252,12 @@ int __must_check devm_clk_bulk_get_all_e } else { clk_bulk_put_all(devres->num_clks, devres->clks); devres_free(devres); diff --git a/target/linux/generic/backport-6.12/500-02-v6.13-block-introduce-add_disk_fwnode.patch b/target/linux/generic/backport-6.12/500-02-v6.13-block-introduce-add_disk_fwnode.patch index 496d6abb47b..864a5609aa6 100644 --- a/target/linux/generic/backport-6.12/500-02-v6.13-block-introduce-add_disk_fwnode.patch +++ b/target/linux/generic/backport-6.12/500-02-v6.13-block-introduce-add_disk_fwnode.patch @@ -48,7 +48,7 @@ Signed-off-by: Jens Axboe { struct device *ddev = disk_to_dev(disk); -@@ -474,6 +476,8 @@ int __must_check device_add_disk(struct +@@ -481,6 +483,8 @@ int __must_check device_add_disk(struct ddev->parent = parent; ddev->groups = groups; dev_set_name(ddev, "%s", disk->disk_name); @@ -57,7 +57,7 @@ Signed-off-by: Jens Axboe if (!(disk->flags & GENHD_FL_HIDDEN)) ddev->devt = MKDEV(disk->major, disk->first_minor); ret = device_add(ddev); -@@ -557,6 +561,22 @@ out_exit_elevator: +@@ -564,6 +568,22 @@ out_exit_elevator: elevator_exit(disk->queue); return ret; } diff --git a/target/linux/generic/backport-6.12/501-v6.19-ksmbd-server-avoid-busy-polling-in-accept-loop.patch b/target/linux/generic/backport-6.12/501-v6.19-ksmbd-server-avoid-busy-polling-in-accept-loop.patch index 833888eb1f9..9d4a53fae0e 100644 --- a/target/linux/generic/backport-6.12/501-v6.19-ksmbd-server-avoid-busy-polling-in-accept-loop.patch +++ b/target/linux/generic/backport-6.12/501-v6.19-ksmbd-server-avoid-busy-polling-in-accept-loop.patch @@ -84,7 +84,7 @@ Signed-off-by: Steve French if (!server_conf.max_ip_connections) goto skip_max_ip_conns_limit; -@@ -474,10 +452,6 @@ static void tcp_destroy_socket(struct so +@@ -479,10 +457,6 @@ static void tcp_destroy_socket(struct so if (!ksmbd_socket) return; @@ -95,7 +95,7 @@ Signed-off-by: Steve French ret = kernel_sock_shutdown(ksmbd_socket, SHUT_RDWR); if (ret) pr_err("Failed to shutdown socket: %d\n", ret); -@@ -548,9 +522,6 @@ static int create_socket(struct interfac +@@ -553,9 +527,6 @@ static int create_socket(struct interfac goto out_error; } @@ -105,7 +105,7 @@ Signed-off-by: Steve French ret = kernel_listen(ksmbd_socket, KSMBD_SOCKET_BACKLOG); if (ret) { pr_err("Port listen() error: %d\n", ret); -@@ -620,12 +591,11 @@ static int ksmbd_netdev_event(struct not +@@ -625,12 +596,11 @@ static int ksmbd_netdev_event(struct not if (iface && iface->state == IFACE_STATE_CONFIGURED) { ksmbd_debug(CONN, "netdev-down event: netdev(%s) is going down\n", iface->name); @@ -120,7 +120,7 @@ Signed-off-by: Steve French iface->state = IFACE_STATE_DOWN; break; -@@ -688,7 +658,6 @@ static struct interface *alloc_iface(cha +@@ -693,7 +663,6 @@ static struct interface *alloc_iface(cha iface->name = ifname; iface->state = IFACE_STATE_DOWN; list_add(&iface->entry, &iface_list); diff --git a/target/linux/generic/backport-6.12/502-v7.3-smb-server-fix-signing-multi-iov-response.patch b/target/linux/generic/backport-6.12/502-v7.3-smb-server-fix-signing-multi-iov-response.patch index 956923534e5..0be27c7b4b8 100644 --- a/target/linux/generic/backport-6.12/502-v7.3-smb-server-fix-signing-multi-iov-response.patch +++ b/target/linux/generic/backport-6.12/502-v7.3-smb-server-fix-signing-multi-iov-response.patch @@ -25,7 +25,7 @@ Signed-off-by: Steve French --- a/fs/smb/server/smb2pdu.c +++ b/fs/smb/server/smb2pdu.c -@@ -9012,6 +9012,39 @@ int smb2_check_sign_req(struct ksmbd_wor +@@ -9035,6 +9035,39 @@ int smb2_check_sign_req(struct ksmbd_wor } /** @@ -65,7 +65,7 @@ Signed-off-by: Steve French * smb2_set_sign_rsp() - handler for rsp packet sign processing * @work: smb work containing notify command buffer * -@@ -9021,18 +9054,13 @@ void smb2_set_sign_rsp(struct ksmbd_work +@@ -9044,18 +9077,13 @@ void smb2_set_sign_rsp(struct ksmbd_work struct smb2_hdr *hdr; char signature[SMB2_HMACSHA256_SIZE]; struct kvec *iov; @@ -86,7 +86,7 @@ Signed-off-by: Steve French if (!ksmbd_sign_smb2_pdu(work->conn, work->sess->sess_key, iov, n_vec, signature)) -@@ -9111,7 +9139,7 @@ void smb3_set_sign_rsp(struct ksmbd_work +@@ -9134,7 +9162,7 @@ void smb3_set_sign_rsp(struct ksmbd_work struct channel *chann; char signature[SMB2_CMACAES_SIZE]; struct kvec *iov; @@ -95,7 +95,7 @@ Signed-off-by: Steve French char *signing_key; hdr = ksmbd_resp_buf_curr(work); -@@ -9133,12 +9161,7 @@ void smb3_set_sign_rsp(struct ksmbd_work +@@ -9156,12 +9184,7 @@ void smb3_set_sign_rsp(struct ksmbd_work hdr->Flags |= SMB2_FLAGS_SIGNED; memset(hdr->Signature, 0, SMB2_SIGNATURE_SIZE); diff --git a/target/linux/generic/backport-6.12/503-02-v7.3-ksmbd-keep-tcp-timers-alive-for-kernel-sockets.patch b/target/linux/generic/backport-6.12/503-02-v7.3-ksmbd-keep-tcp-timers-alive-for-kernel-sockets.patch index c0d82f6dbcd..f8bccb621a2 100644 --- a/target/linux/generic/backport-6.12/503-02-v7.3-ksmbd-keep-tcp-timers-alive-for-kernel-sockets.patch +++ b/target/linux/generic/backport-6.12/503-02-v7.3-ksmbd-keep-tcp-timers-alive-for-kernel-sockets.patch @@ -27,7 +27,7 @@ Signed-off-by: Namjae Jeon --- a/fs/smb/server/transport_tcp.c +++ b/fs/smb/server/transport_tcp.c -@@ -528,6 +528,12 @@ static int create_socket(struct interfac +@@ -533,6 +533,12 @@ static int create_socket(struct interfac goto out_error; } diff --git a/target/linux/generic/backport-6.12/504-v7.3-ksmbd-fix-listener-task-lifetime-on-netdev-events.patch b/target/linux/generic/backport-6.12/504-v7.3-ksmbd-fix-listener-task-lifetime-on-netdev-events.patch index 81169f1add8..3c70ce6bceb 100644 --- a/target/linux/generic/backport-6.12/504-v7.3-ksmbd-fix-listener-task-lifetime-on-netdev-events.patch +++ b/target/linux/generic/backport-6.12/504-v7.3-ksmbd-fix-listener-task-lifetime-on-netdev-events.patch @@ -51,7 +51,7 @@ Signed-off-by: Namjae Jeon return 0; } -@@ -603,12 +611,7 @@ static int ksmbd_netdev_event(struct not +@@ -608,12 +616,7 @@ static int ksmbd_netdev_event(struct not if (iface && iface->state == IFACE_STATE_CONFIGURED) { ksmbd_debug(CONN, "netdev-down event: netdev(%s) is going down\n", iface->name); @@ -65,7 +65,7 @@ Signed-off-by: Namjae Jeon iface->state = IFACE_STATE_DOWN; break; } -@@ -636,11 +639,25 @@ static void tcp_stop_kthread(struct task +@@ -641,11 +644,25 @@ static void tcp_stop_kthread(struct task if (!kthread) return; @@ -92,7 +92,7 @@ Signed-off-by: Namjae Jeon void ksmbd_tcp_destroy(void) { struct interface *iface, *tmp; -@@ -648,6 +665,7 @@ void ksmbd_tcp_destroy(void) +@@ -653,6 +670,7 @@ void ksmbd_tcp_destroy(void) unregister_netdevice_notifier(&ksmbd_netdev_notifier); list_for_each_entry_safe(iface, tmp, &iface_list, entry) { diff --git a/target/linux/generic/backport-6.12/626-16b-v6.17-regulator-Add-support-for-power-budget.patch b/target/linux/generic/backport-6.12/626-16b-v6.17-regulator-Add-support-for-power-budget.patch index d823f49b535..6adc0a4aea3 100644 --- a/target/linux/generic/backport-6.12/626-16b-v6.17-regulator-Add-support-for-power-budget.patch +++ b/target/linux/generic/backport-6.12/626-16b-v6.17-regulator-Add-support-for-power-budget.patch @@ -21,7 +21,7 @@ Signed-off-by: Bevan Weiss --- a/drivers/regulator/core.c +++ b/drivers/regulator/core.c -@@ -916,6 +916,26 @@ static ssize_t bypass_show(struct device +@@ -917,6 +917,26 @@ static ssize_t bypass_show(struct device } static DEVICE_ATTR_RO(bypass); @@ -48,7 +48,7 @@ Signed-off-by: Bevan Weiss #define REGULATOR_ERROR_ATTR(name, bit) \ static ssize_t name##_show(struct device *dev, struct device_attribute *attr, \ char *buf) \ -@@ -1148,6 +1168,10 @@ static void print_constraints_debug(stru +@@ -1149,6 +1169,10 @@ static void print_constraints_debug(stru if (constraints->valid_modes_mask & REGULATOR_MODE_STANDBY) count += scnprintf(buf + count, len - count, "standby "); @@ -59,7 +59,7 @@ Signed-off-by: Bevan Weiss if (!count) count = scnprintf(buf, len, "no parameters"); else -@@ -1636,6 +1660,9 @@ static int set_machine_constraints(struc +@@ -1637,6 +1661,9 @@ static int set_machine_constraints(struc rdev->last_off = ktime_get(); } @@ -69,7 +69,7 @@ Signed-off-by: Bevan Weiss print_constraints(rdev); return 0; } -@@ -4659,6 +4686,87 @@ int regulator_get_current_limit(struct r +@@ -4660,6 +4687,87 @@ int regulator_get_current_limit(struct r EXPORT_SYMBOL_GPL(regulator_get_current_limit); /** @@ -157,7 +157,7 @@ Signed-off-by: Bevan Weiss * regulator_set_mode - set regulator operating mode * @regulator: regulator source * @mode: operating mode - one of the REGULATOR_MODE constants -@@ -5296,6 +5404,8 @@ static struct attribute *regulator_dev_a +@@ -5297,6 +5405,8 @@ static struct attribute *regulator_dev_a &dev_attr_suspend_standby_mode.attr, &dev_attr_suspend_mem_mode.attr, &dev_attr_suspend_disk_mode.attr, @@ -166,7 +166,7 @@ Signed-off-by: Bevan Weiss NULL }; -@@ -5377,6 +5487,10 @@ static umode_t regulator_attr_is_visible +@@ -5378,6 +5488,10 @@ static umode_t regulator_attr_is_visible attr == &dev_attr_suspend_disk_mode.attr) return ops->set_suspend_mode ? mode : 0; diff --git a/target/linux/generic/backport-6.12/700-01-v7.0-net-sched-Export-mq-functions-for-reuse.patch b/target/linux/generic/backport-6.12/700-01-v7.0-net-sched-Export-mq-functions-for-reuse.patch index bb22b2cb69d..1cf8fea53e6 100644 --- a/target/linux/generic/backport-6.12/700-01-v7.0-net-sched-Export-mq-functions-for-reuse.patch +++ b/target/linux/generic/backport-6.12/700-01-v7.0-net-sched-Export-mq-functions-for-reuse.patch @@ -27,7 +27,7 @@ Signed-off-by: Paolo Abeni --- a/MAINTAINERS +++ b/MAINTAINERS -@@ -22546,6 +22546,7 @@ L: netdev@vger.kernel.org +@@ -22547,6 +22547,7 @@ L: netdev@vger.kernel.org S: Maintained F: include/net/pkt_cls.h F: include/net/pkt_sched.h diff --git a/target/linux/generic/backport-6.12/720-04-v6.13-net-phy-mediatek-Re-organize-MediaTek-ethernet-phy-d.patch b/target/linux/generic/backport-6.12/720-04-v6.13-net-phy-mediatek-Re-organize-MediaTek-ethernet-phy-d.patch index b3e4528dc3e..98ba9d9c4ec 100644 --- a/target/linux/generic/backport-6.12/720-04-v6.13-net-phy-mediatek-Re-organize-MediaTek-ethernet-phy-d.patch +++ b/target/linux/generic/backport-6.12/720-04-v6.13-net-phy-mediatek-Re-organize-MediaTek-ethernet-phy-d.patch @@ -29,7 +29,7 @@ Signed-off-by: David S. Miller --- a/MAINTAINERS +++ b/MAINTAINERS -@@ -14432,8 +14432,8 @@ M: Qingfang Deng +@@ -14433,8 +14433,8 @@ M: Qingfang Deng M: SkyLake Huang L: netdev@vger.kernel.org S: Maintained diff --git a/target/linux/generic/backport-6.12/720-05-v6.13-net-phy-mediatek-Move-LED-helper-functions-into-mtk-.patch b/target/linux/generic/backport-6.12/720-05-v6.13-net-phy-mediatek-Move-LED-helper-functions-into-mtk-.patch index b44fced76cb..7cd47d1b7c3 100644 --- a/target/linux/generic/backport-6.12/720-05-v6.13-net-phy-mediatek-Move-LED-helper-functions-into-mtk-.patch +++ b/target/linux/generic/backport-6.12/720-05-v6.13-net-phy-mediatek-Move-LED-helper-functions-into-mtk-.patch @@ -24,7 +24,7 @@ Signed-off-by: David S. Miller --- a/MAINTAINERS +++ b/MAINTAINERS -@@ -14433,7 +14433,9 @@ M: SkyLake Huang --- --- a/tools/scripts/Makefile.include +++ b/tools/scripts/Makefile.include -@@ -72,8 +72,6 @@ $(call allow-override,CXX,$(CROSS_COMPIL - $(call allow-override,STRIP,$(CROSS_COMPILE)strip) +@@ -93,13 +93,15 @@ $(call allow-override,LLVM_STRIP,llvm-st endif --CC_NO_CLANG := $(shell $(CC) -dM -E -x c /dev/null | grep -Fq "__clang__"; echo $$?) -- - ifneq ($(LLVM),) - HOSTAR ?= $(LLVM_PREFIX)llvm-ar$(LLVM_SUFFIX) - HOSTCC ?= $(LLVM_PREFIX)clang$(LLVM_SUFFIX) -@@ -84,6 +82,9 @@ HOSTCC ?= gcc - HOSTLD ?= ld - endif - -+CC_NO_CLANG := $(shell $(CC) -dM -E -x c /dev/null | grep -Fq "__clang__"; echo $$?) + CC_NO_CLANG := $(shell $(CC) -dM -E -x c /dev/null | grep -Fq "__clang__"; echo $$?) +HOSTCC_NO_CLANG := $(shell $(HOSTCC) -dM -E -x c /dev/null | grep -Fq "__clang__"; echo $$?) -+ - # Some tools require Clang, LLC and/or LLVM utils - CLANG ?= clang - LLC ?= llc -@@ -92,8 +93,9 @@ LLVM_OBJCOPY ?= llvm-objcopy - LLVM_STRIP ?= llvm-strip + + # Some tools require bpftool + SYSTEM_BPFTOOL ?= bpftool ifeq ($(CC_NO_CLANG), 1) -EXTRA_WARNINGS += -Wstrict-aliasing=3 diff --git a/target/linux/generic/hack-6.12/610-net-page_pool-try-to-free-deferred-skbs-while-waitin.patch b/target/linux/generic/hack-6.12/610-net-page_pool-try-to-free-deferred-skbs-while-waitin.patch index 8969307425e..af54dafa490 100644 --- a/target/linux/generic/hack-6.12/610-net-page_pool-try-to-free-deferred-skbs-while-waitin.patch +++ b/target/linux/generic/hack-6.12/610-net-page_pool-try-to-free-deferred-skbs-while-waitin.patch @@ -16,7 +16,7 @@ Signed-off-by: Felix Fietkau --- a/net/core/page_pool.c +++ b/net/core/page_pool.c -@@ -1167,8 +1167,9 @@ static void page_pool_release_retry(stru +@@ -1178,8 +1178,9 @@ static void page_pool_release_retry(stru { struct delayed_work *dwq = to_delayed_work(wq); struct page_pool *pool = container_of(dwq, typeof(*pool), release_dw); @@ -27,7 +27,7 @@ Signed-off-by: Felix Fietkau inflight = page_pool_release(pool); /* In rare cases, a driver bug may cause inflight to go negative. -@@ -1180,6 +1181,21 @@ static void page_pool_release_retry(stru +@@ -1191,6 +1192,21 @@ static void page_pool_release_retry(stru if (inflight <= 0) return; diff --git a/target/linux/generic/hack-6.12/660-fq_codel_defaults.patch b/target/linux/generic/hack-6.12/660-fq_codel_defaults.patch index 4ec9e5a1406..23d17fce236 100644 --- a/target/linux/generic/hack-6.12/660-fq_codel_defaults.patch +++ b/target/linux/generic/hack-6.12/660-fq_codel_defaults.patch @@ -13,7 +13,7 @@ Signed-off-by: Felix Fietkau --- a/net/sched/sch_fq_codel.c +++ b/net/sched/sch_fq_codel.c -@@ -509,7 +509,11 @@ static int fq_codel_init(struct Qdisc *s +@@ -510,7 +510,11 @@ static int fq_codel_init(struct Qdisc *s sch->limit = 10*1024; q->flows_cnt = 1024; @@ -23,5 +23,5 @@ Signed-off-by: Felix Fietkau + q->memory_limit = 4 << 20; /* 4 MBytes */ +#endif q->drop_batch_size = 64; - q->quantum = psched_mtu(qdisc_dev(sch)); - INIT_LIST_HEAD(&q->new_flows); + mtu = clamp_t(u32, psched_mtu(qdisc_dev(sch)), 256, FQ_CODEL_QUANTUM_MAX); + q->quantum = mtu; diff --git a/target/linux/generic/kernel-6.12 b/target/linux/generic/kernel-6.12 index 505824ba6c8..831b215215a 100644 --- a/target/linux/generic/kernel-6.12 +++ b/target/linux/generic/kernel-6.12 @@ -1,2 +1,2 @@ -LINUX_VERSION-6.12 = .109 -LINUX_KERNEL_HASH-6.12.109 = 5484e552a334e15019f4aeba89e5b58f04651cf2f4e24e04de9f152f1c38e3fa +LINUX_VERSION-6.12 = .110 +LINUX_KERNEL_HASH-6.12.110 = 8cee19e1839bb6ff4d5254d761933ae6ab670492d5ed030e09a80538320d5c4c diff --git a/target/linux/generic/pending-6.12/342-powerpc-Enable-kernel-XZ-compression-option-on-PPC_8.patch b/target/linux/generic/pending-6.12/342-powerpc-Enable-kernel-XZ-compression-option-on-PPC_8.patch index c812a08b91d..a743fb6b965 100644 --- a/target/linux/generic/pending-6.12/342-powerpc-Enable-kernel-XZ-compression-option-on-PPC_8.patch +++ b/target/linux/generic/pending-6.12/342-powerpc-Enable-kernel-XZ-compression-option-on-PPC_8.patch @@ -14,7 +14,7 @@ Signed-off-by: Pawel Dembicki --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig -@@ -254,7 +254,7 @@ config PPC +@@ -255,7 +255,7 @@ config PPC select HAVE_KERNEL_GZIP select HAVE_KERNEL_LZMA if DEFAULT_UIMAGE select HAVE_KERNEL_LZO if DEFAULT_UIMAGE diff --git a/target/linux/generic/pending-6.12/400-mtd-mtdsplit-support.patch b/target/linux/generic/pending-6.12/400-mtd-mtdsplit-support.patch index 2a3a285a821..4531670ea0a 100644 --- a/target/linux/generic/pending-6.12/400-mtd-mtdsplit-support.patch +++ b/target/linux/generic/pending-6.12/400-mtd-mtdsplit-support.patch @@ -214,7 +214,7 @@ Subject: [PATCH] mtd: mtdsplit support int mtd_add_partition(struct mtd_info *parent, const char *name, long long offset, long long length) { -@@ -280,6 +423,7 @@ int mtd_add_partition(struct mtd_info *p +@@ -281,6 +424,7 @@ int mtd_add_partition(struct mtd_info *p if (ret) goto err_remove_part; @@ -222,7 +222,7 @@ Subject: [PATCH] mtd: mtdsplit support mtd_add_partition_attrs(child); return 0; -@@ -423,6 +567,7 @@ int add_mtd_partitions(struct mtd_info * +@@ -424,6 +568,7 @@ int add_mtd_partitions(struct mtd_info * goto err_del_partitions; } @@ -230,7 +230,7 @@ Subject: [PATCH] mtd: mtdsplit support mtd_add_partition_attrs(child); /* Look for subpartitions (skip if no maching parser found) */ -@@ -446,31 +591,6 @@ err_del_partitions: +@@ -447,31 +592,6 @@ err_del_partitions: return ret; } diff --git a/target/linux/generic/pending-6.12/490-ubi-auto-attach-mtd-device-named-ubi-or-data-on-boot.patch b/target/linux/generic/pending-6.12/490-ubi-auto-attach-mtd-device-named-ubi-or-data-on-boot.patch index 27b86111004..bd09f14df67 100644 --- a/target/linux/generic/pending-6.12/490-ubi-auto-attach-mtd-device-named-ubi-or-data-on-boot.patch +++ b/target/linux/generic/pending-6.12/490-ubi-auto-attach-mtd-device-named-ubi-or-data-on-boot.patch @@ -8,7 +8,7 @@ Signed-off-by: Daniel Golle --- a/drivers/mtd/ubi/build.c +++ b/drivers/mtd/ubi/build.c -@@ -1263,6 +1263,80 @@ static struct mtd_notifier ubi_mtd_notif +@@ -1264,6 +1264,80 @@ static struct mtd_notifier ubi_mtd_notif .remove = ubi_notify_remove, }; @@ -89,7 +89,7 @@ Signed-off-by: Daniel Golle static int __init ubi_init_attach(void) { int err, i, k; -@@ -1314,6 +1388,12 @@ static int __init ubi_init_attach(void) +@@ -1315,6 +1389,12 @@ static int __init ubi_init_attach(void) } } diff --git a/target/linux/generic/pending-6.12/510-block-add-uImage.FIT-subimage-block-driver.patch b/target/linux/generic/pending-6.12/510-block-add-uImage.FIT-subimage-block-driver.patch index 07aa0b4cc9f..52333835bda 100644 --- a/target/linux/generic/pending-6.12/510-block-add-uImage.FIT-subimage-block-driver.patch +++ b/target/linux/generic/pending-6.12/510-block-add-uImage.FIT-subimage-block-driver.patch @@ -36,7 +36,7 @@ Signed-off-by: Daniel Golle --- a/MAINTAINERS +++ b/MAINTAINERS -@@ -23682,6 +23682,12 @@ F: Documentation/filesystems/ubifs-authe +@@ -23683,6 +23683,12 @@ F: Documentation/filesystems/ubifs-authe F: Documentation/filesystems/ubifs.rst F: fs/ubifs/ diff --git a/target/linux/generic/pending-6.12/739-05-net-pcs-add-driver-for-MediaTek-USXGMII-PCS.patch b/target/linux/generic/pending-6.12/739-05-net-pcs-add-driver-for-MediaTek-USXGMII-PCS.patch index 0d74abb4447..01c63107a16 100644 --- a/target/linux/generic/pending-6.12/739-05-net-pcs-add-driver-for-MediaTek-USXGMII-PCS.patch +++ b/target/linux/generic/pending-6.12/739-05-net-pcs-add-driver-for-MediaTek-USXGMII-PCS.patch @@ -19,7 +19,7 @@ Signed-off-by: Daniel Golle --- a/MAINTAINERS +++ b/MAINTAINERS -@@ -14437,7 +14437,9 @@ M: Daniel Golle +@@ -14438,7 +14438,9 @@ M: Daniel Golle L: netdev@vger.kernel.org S: Maintained F: drivers/net/pcs/pcs-mtk-lynxi.c diff --git a/target/linux/generic/pending-6.12/790-bus-mhi-core-add-SBL-state-callback.patch b/target/linux/generic/pending-6.12/790-bus-mhi-core-add-SBL-state-callback.patch index 80d13061158..05769fbf028 100644 --- a/target/linux/generic/pending-6.12/790-bus-mhi-core-add-SBL-state-callback.patch +++ b/target/linux/generic/pending-6.12/790-bus-mhi-core-add-SBL-state-callback.patch @@ -20,7 +20,7 @@ Signed-off-by: Robert Marko --- a/drivers/bus/mhi/host/main.c +++ b/drivers/bus/mhi/host/main.c -@@ -916,6 +916,7 @@ int mhi_process_ctrl_ev_ring(struct mhi_ +@@ -922,6 +922,7 @@ int mhi_process_ctrl_ev_ring(struct mhi_ switch (event) { case MHI_EE_SBL: st = DEV_ST_TRANSITION_SBL; diff --git a/target/linux/generic/pending-6.12/812-PCI-sysfs-enforce-single-creation-of-sysfs-entry-for.patch b/target/linux/generic/pending-6.12/812-PCI-sysfs-enforce-single-creation-of-sysfs-entry-for.patch index e6a8f5d814d..9cd4a4a620a 100644 --- a/target/linux/generic/pending-6.12/812-PCI-sysfs-enforce-single-creation-of-sysfs-entry-for.patch +++ b/target/linux/generic/pending-6.12/812-PCI-sysfs-enforce-single-creation-of-sysfs-entry-for.patch @@ -132,7 +132,7 @@ Signed-off-by: Christian Marangi --- a/include/linux/pci.h +++ b/include/linux/pci.h -@@ -484,6 +484,7 @@ struct pci_dev { +@@ -486,6 +486,7 @@ struct pci_dev { unsigned int rom_attr_enabled:1; /* Display of ROM attribute enabled? */ pci_dev_flags_t dev_flags; atomic_t enable_cnt; /* pci_enable_device has been called */