From f34620f14676eddea9eeb5c811d82adef9ba665a Mon Sep 17 00:00:00 2001 From: John Audia Date: Wed, 12 Jun 2024 16:46:19 -0400 Subject: [PATCH] kernel: bump 6.6 to 6.6.33 and adjust subarches This commit accomplishes three goals: 1. bump 6.6 to 6.6.33 2. kernel: modules: video: change package definition for fb for upstream changes[1] 3. kernel/multiple subtargets: add CONFIG_FB_IOMEM_FOPS=y to all subtargets which also set CONFIG_FB_CORE=y. Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.33 Removed upstreamed: pending-6.6/195-block-fix-and-simplify-blkdevparts-cmdline-parsing.patch[2] gemini/patches-6.6/0003-net-ethernet-cortina-Locking-fixes.patch[3] Manually rebased: ramips/patches-6.6/810-uvc-add-iPassion-iP2970-support.patch All other patches automatically rebased. 1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.6.y&id=c00e8fd749502c02085534c60b1edca4fc479c91 2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.33&id=99bbbd9aea059f8a206736dc601be2ae61d366fb 3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.33&id=8f6f82d6a205ceb3aba8d279f9ff6eeea0b1689b Build system: x86/64 Build-tested: x86/64/AMD Cezanne, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3 Run-tested: x86/64/AMD Cezanne, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3 Tested-by: Stijn Segers Signed-off-by: John Audia --- include/kernel-6.6 | 4 +- package/kernel/linux/modules/video.mk | 3 +- .../900-unaligned_access_hacks.patch | 2 +- target/linux/gemini/config-6.6 | 1 + ...et-ethernet-cortina-Drop-TSO-support.patch | 2 +- ...3-net-ethernet-cortina-Locking-fixes.patch | 73 ------ ...rans-call-add-disks-after-mtd-device.patch | 2 +- ...-dsa-mv88e6xxx-disable-ATU-violation.patch | 2 +- ...simplify-blkdevparts-cmdline-parsing.patch | 217 ------------------ ...add-uImage.FIT-subimage-block-driver.patch | 2 +- .../pending-6.6/630-packet_socket_type.patch | 6 +- ...680-net-add-TCP-fraglist-GRO-support.patch | 2 +- ...-add-driver-for-MediaTek-USXGMII-PCS.patch | 2 +- ...ional-threading-for-backlog-processi.patch | 4 +- ...equest-assisted-learning-on-CPU-port.patch | 2 +- ...introduce-the-Qualcomm-IPQESS-driver.patch | 2 +- ...dsa-add-out-of-band-tagging-protocol.patch | 2 +- target/linux/layerscape/armv8_64b/config-6.6 | 1 + target/linux/loongarch64/config-6.6 | 1 + target/linux/mediatek/mt7623/config-6.6 | 1 + .../041-block-fit-partition-parser.patch | 2 +- ...-Add-support-for-dynamic-calibration.patch | 6 +- .../810-uvc-add-iPassion-iP2970-support.patch | 12 +- target/linux/tegra/config-6.6 | 1 + target/linux/x86/64/config-6.6 | 1 + target/linux/x86/generic/config-6.6 | 1 + target/linux/x86/legacy/config-6.6 | 1 + 27 files changed, 37 insertions(+), 318 deletions(-) delete mode 100644 target/linux/gemini/patches-6.6/0003-net-ethernet-cortina-Locking-fixes.patch delete mode 100644 target/linux/generic/pending-6.6/195-block-fix-and-simplify-blkdevparts-cmdline-parsing.patch diff --git a/include/kernel-6.6 b/include/kernel-6.6 index 896c95ea7d8..9ea7e286458 100644 --- a/include/kernel-6.6 +++ b/include/kernel-6.6 @@ -1,2 +1,2 @@ -LINUX_VERSION-6.6 = .32 -LINUX_KERNEL_HASH-6.6.32 = aaa824eaf07f61911d22b75ff090a403c3dd0bd73e23933e0bba8b5971436ce1 +LINUX_VERSION-6.6 = .33 +LINUX_KERNEL_HASH-6.6.33 = a13ebc20dc2a75722699949af74aa86a4ce5d544d6daaa6a7de4e8c81b40de97 diff --git a/package/kernel/linux/modules/video.mk b/package/kernel/linux/modules/video.mk index e40915fbd58..b59907c643f 100644 --- a/package/kernel/linux/modules/video.mk +++ b/package/kernel/linux/modules/video.mk @@ -106,7 +106,8 @@ define KernelPackage/fb CONFIG_VT_CONSOLE=y \ CONFIG_VT_HW_CONSOLE_BINDING=y FILES:=$(LINUX_DIR)/drivers/video/fbdev/core/fb.ko \ - $(LINUX_DIR)/lib/fonts/font.ko + $(LINUX_DIR)/lib/fonts/font.ko \ + $(LINUX_DIR)/drivers/video/fbdev/core/fb_io_fops.ko@ge6.6 AUTOLOAD:=$(call AutoLoad,06,fb font) endef diff --git a/target/linux/ath79/patches-6.6/900-unaligned_access_hacks.patch b/target/linux/ath79/patches-6.6/900-unaligned_access_hacks.patch index 0190da85de7..49a65ec6221 100644 --- a/target/linux/ath79/patches-6.6/900-unaligned_access_hacks.patch +++ b/target/linux/ath79/patches-6.6/900-unaligned_access_hacks.patch @@ -337,7 +337,7 @@ SVN-Revision: 35130 #endif /* _LINUX_TYPES_H */ --- a/net/ipv4/af_inet.c +++ b/net/ipv4/af_inet.c -@@ -1506,8 +1506,8 @@ struct sk_buff *inet_gro_receive(struct +@@ -1508,8 +1508,8 @@ struct sk_buff *inet_gro_receive(struct goto out; NAPI_GRO_CB(skb)->proto = proto; diff --git a/target/linux/gemini/config-6.6 b/target/linux/gemini/config-6.6 index d670279135f..87174d292f4 100644 --- a/target/linux/gemini/config-6.6 +++ b/target/linux/gemini/config-6.6 @@ -162,6 +162,7 @@ CONFIG_FB=y CONFIG_FB_CORE=y CONFIG_FB_DEFERRED_IO=y CONFIG_FB_DMAMEM_HELPERS=y +CONFIG_FB_IOMEM_FOPS=y CONFIG_FB_SYSMEM_HELPERS=y CONFIG_FB_SYSMEM_HELPERS_DEFERRED=y CONFIG_FB_SYS_COPYAREA=y diff --git a/target/linux/gemini/patches-6.6/0001-net-ethernet-cortina-Drop-TSO-support.patch b/target/linux/gemini/patches-6.6/0001-net-ethernet-cortina-Drop-TSO-support.patch index 43e0cb283aa..6fbd0487eb9 100644 --- a/target/linux/gemini/patches-6.6/0001-net-ethernet-cortina-Drop-TSO-support.patch +++ b/target/linux/gemini/patches-6.6/0001-net-ethernet-cortina-Drop-TSO-support.patch @@ -51,7 +51,7 @@ Signed-off-by: David S. Miller /** * struct gmac_queue_page - page buffer per-page info -@@ -1143,23 +1142,13 @@ static int gmac_map_tx_bufs(struct net_d +@@ -1148,23 +1147,13 @@ static int gmac_map_tx_bufs(struct net_d struct gmac_txdesc *txd; skb_frag_t *skb_frag; dma_addr_t mapping; diff --git a/target/linux/gemini/patches-6.6/0003-net-ethernet-cortina-Locking-fixes.patch b/target/linux/gemini/patches-6.6/0003-net-ethernet-cortina-Locking-fixes.patch deleted file mode 100644 index 661e9287c09..00000000000 --- a/target/linux/gemini/patches-6.6/0003-net-ethernet-cortina-Locking-fixes.patch +++ /dev/null @@ -1,73 +0,0 @@ -From 81889eb2b37bc21df4ff259441e8fc12d4f27cd9 Mon Sep 17 00:00:00 2001 -From: Linus Walleij -Date: Thu, 9 May 2024 08:48:31 +0200 -Subject: [PATCH] net: ethernet: cortina: Locking fixes - -This fixes a probably long standing problem in the Cortina -Gemini ethernet driver: there are some paths in the code -where the IRQ registers are written without taking the proper -locks. - -Fixes: 4d5ae32f5e1e ("net: ethernet: Add a driver for Gemini gigabit ethernet") -Signed-off-by: Linus Walleij ---- - drivers/net/ethernet/cortina/gemini.c | 12 ++++++++++-- - 1 file changed, 10 insertions(+), 2 deletions(-) - ---- a/drivers/net/ethernet/cortina/gemini.c -+++ b/drivers/net/ethernet/cortina/gemini.c -@@ -1107,10 +1107,13 @@ static void gmac_tx_irq_enable(struct ne - { - struct gemini_ethernet_port *port = netdev_priv(netdev); - struct gemini_ethernet *geth = port->geth; -+ unsigned long flags; - u32 val, mask; - - netdev_dbg(netdev, "%s device %d\n", __func__, netdev->dev_id); - -+ spin_lock_irqsave(&geth->irq_lock, flags); -+ - mask = GMAC0_IRQ0_TXQ0_INTS << (6 * netdev->dev_id + txq); - - if (en) -@@ -1119,6 +1122,8 @@ static void gmac_tx_irq_enable(struct ne - val = readl(geth->base + GLOBAL_INTERRUPT_ENABLE_0_REG); - val = en ? val | mask : val & ~mask; - writel(val, geth->base + GLOBAL_INTERRUPT_ENABLE_0_REG); -+ -+ spin_unlock_irqrestore(&geth->irq_lock, flags); - } - - static void gmac_tx_irq(struct net_device *netdev, unsigned int txq_num) -@@ -1415,15 +1420,19 @@ static unsigned int gmac_rx(struct net_d - union gmac_rxdesc_3 word3; - struct page *page = NULL; - unsigned int page_offs; -+ unsigned long flags; - unsigned short r, w; - union dma_rwptr rw; - dma_addr_t mapping; - int frag_nr = 0; - -+ spin_lock_irqsave(&geth->irq_lock, flags); - rw.bits32 = readl(ptr_reg); - /* Reset interrupt as all packages until here are taken into account */ - writel(DEFAULT_Q0_INT_BIT << netdev->dev_id, - geth->base + GLOBAL_INTERRUPT_STATUS_1_REG); -+ spin_unlock_irqrestore(&geth->irq_lock, flags); -+ - r = rw.bits.rptr; - w = rw.bits.wptr; - -@@ -1726,10 +1735,9 @@ static irqreturn_t gmac_irq(int irq, voi - gmac_update_hw_stats(netdev); - - if (val & (GMAC0_RX_OVERRUN_INT_BIT << (netdev->dev_id * 8))) { -+ spin_lock(&geth->irq_lock); - writel(GMAC0_RXDERR_INT_BIT << (netdev->dev_id * 8), - geth->base + GLOBAL_INTERRUPT_STATUS_4_REG); -- -- spin_lock(&geth->irq_lock); - u64_stats_update_begin(&port->ir_stats_syncp); - ++port->stats.rx_fifo_errors; - u64_stats_update_end(&port->ir_stats_syncp); diff --git a/target/linux/generic/hack-6.6/402-mtd-blktrans-call-add-disks-after-mtd-device.patch b/target/linux/generic/hack-6.6/402-mtd-blktrans-call-add-disks-after-mtd-device.patch index 29607b155da..24b7963cbf3 100644 --- a/target/linux/generic/hack-6.6/402-mtd-blktrans-call-add-disks-after-mtd-device.patch +++ b/target/linux/generic/hack-6.6/402-mtd-blktrans-call-add-disks-after-mtd-device.patch @@ -91,7 +91,7 @@ Signed-off-by: Daniel Golle #include "mtdcore.h" -@@ -1125,6 +1126,8 @@ int mtd_device_parse_register(struct mtd +@@ -1127,6 +1128,8 @@ int mtd_device_parse_register(struct mtd register_reboot_notifier(&mtd->reboot_notifier); } diff --git a/target/linux/generic/hack-6.6/711-net-dsa-mv88e6xxx-disable-ATU-violation.patch b/target/linux/generic/hack-6.6/711-net-dsa-mv88e6xxx-disable-ATU-violation.patch index 89c98f6fbc5..dbf1da04ef7 100644 --- a/target/linux/generic/hack-6.6/711-net-dsa-mv88e6xxx-disable-ATU-violation.patch +++ b/target/linux/generic/hack-6.6/711-net-dsa-mv88e6xxx-disable-ATU-violation.patch @@ -9,7 +9,7 @@ Subject: [PATCH] net/dsa/mv88e6xxx: disable ATU violation --- a/drivers/net/dsa/mv88e6xxx/chip.c +++ b/drivers/net/dsa/mv88e6xxx/chip.c -@@ -3365,6 +3365,9 @@ static int mv88e6xxx_setup_port(struct m +@@ -3375,6 +3375,9 @@ static int mv88e6xxx_setup_port(struct m else reg = 1 << port; diff --git a/target/linux/generic/pending-6.6/195-block-fix-and-simplify-blkdevparts-cmdline-parsing.patch b/target/linux/generic/pending-6.6/195-block-fix-and-simplify-blkdevparts-cmdline-parsing.patch deleted file mode 100644 index d504a74fdec..00000000000 --- a/target/linux/generic/pending-6.6/195-block-fix-and-simplify-blkdevparts-cmdline-parsing.patch +++ /dev/null @@ -1,217 +0,0 @@ -From patchwork Sun Apr 21 07:39:52 2024 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: INAGAKI Hiroshi -X-Patchwork-Id: 13637306 -From: INAGAKI Hiroshi -To: axboe@kernel.dk -Cc: yang.yang29@zte.com, - justinstitt@google.com, - xu.panda@zte.com.cn, - linux-block@vger.kernel.org, - linux-kernel@vger.kernel.org, - INAGAKI Hiroshi , - Naohiro Aota -Subject: [PATCH] block: fix and simplify blkdevparts= cmdline parsing -Date: Sun, 21 Apr 2024 16:39:52 +0900 -Message-ID: <20240421074005.565-1-musashino.open@gmail.com> -X-Mailer: git-send-email 2.42.0.windows.2 -Precedence: bulk -X-Mailing-List: linux-block@vger.kernel.org -List-Id: -List-Subscribe: -List-Unsubscribe: -MIME-Version: 1.0 - -Fix the cmdline parsing of the "blkdevparts=" parameter using strsep(), -which makes the code simpler. - -Before commit 146afeb235cc ("block: use strscpy() to instead of -strncpy()"), we used a strncpy() to copy a block device name and partition -names. The commit simply replaced a strncpy() and NULL termination with -a strscpy(). It did not update calculations of length passed to strscpy(). -While the length passed to strncpy() is just a length of valid characters -without NULL termination ('\0'), strscpy() takes it as a length of the -destination buffer, including a NULL termination. - -Since the source buffer is not necessarily NULL terminated, the current -code copies "length - 1" characters and puts a NULL character in the -destination buffer. It replaces the last character with NULL and breaks -the parsing. - -As an example, that buffer will be passed to parse_parts() and breaks -parsing sub-partitions due to the missing ')' at the end, like the -following. - -example (Check Point V-80 & OpenWrt): - -- Linux Kernel 6.6 - - [ 0.000000] Kernel command line: console=ttyS0,115200 earlycon=uart8250,mmio32,0xf0512000 crashkernel=30M mvpp2x.queue_mode=1 blkdevparts=mmcblk1:48M@10M(kernel-1),1M(dtb-1),720M(rootfs-1),48M(kernel-2),1M(dtb-2),720M(rootfs-2),300M(default_sw),650M(logs),1M(preset_cfg),1M(adsl),-(storage) maxcpus=4 - ... - [ 0.884016] mmc1: new HS200 MMC card at address 0001 - [ 0.889951] mmcblk1: mmc1:0001 004GA0 3.69 GiB - [ 0.895043] cmdline partition format is invalid. - [ 0.895704] mmcblk1: p1 - [ 0.903447] mmcblk1boot0: mmc1:0001 004GA0 2.00 MiB - [ 0.908667] mmcblk1boot1: mmc1:0001 004GA0 2.00 MiB - [ 0.913765] mmcblk1rpmb: mmc1:0001 004GA0 512 KiB, chardev (248:0) - - 1. "48M@10M(kernel-1),..." is passed to strscpy() with length=17 - from parse_parts() - 2. strscpy() returns -E2BIG and the destination buffer has - "48M@10M(kernel-1\0" - 3. "48M@10M(kernel-1\0" is passed to parse_subpart() - 4. parse_subpart() fails to find ')' when parsing a partition name, - and returns error - -- Linux Kernel 6.1 - - [ 0.000000] Kernel command line: console=ttyS0,115200 earlycon=uart8250,mmio32,0xf0512000 crashkernel=30M mvpp2x.queue_mode=1 blkdevparts=mmcblk1:48M@10M(kernel-1),1M(dtb-1),720M(rootfs-1),48M(kernel-2),1M(dtb-2),720M(rootfs-2),300M(default_sw),650M(logs),1M(preset_cfg),1M(adsl),-(storage) maxcpus=4 - ... - [ 0.953142] mmc1: new HS200 MMC card at address 0001 - [ 0.959114] mmcblk1: mmc1:0001 004GA0 3.69 GiB - [ 0.964259] mmcblk1: p1(kernel-1) p2(dtb-1) p3(rootfs-1) p4(kernel-2) p5(dtb-2) 6(rootfs-2) p7(default_sw) p8(logs) p9(preset_cfg) p10(adsl) p11(storage) - [ 0.979174] mmcblk1boot0: mmc1:0001 004GA0 2.00 MiB - [ 0.984674] mmcblk1boot1: mmc1:0001 004GA0 2.00 MiB - [ 0.989926] mmcblk1rpmb: mmc1:0001 004GA0 512 KiB, chardev (248:0 - -By the way, strscpy() takes a length of destination buffer and it is -often confusing when copying characters with a specified length. Using -strsep() helps to separate the string by the specified character. Then, -we can use strscpy() naturally with the size of the destination buffer. - -Separating the string on the fly is also useful to omit the redundant -string copy, reducing memory usage and improve the code readability. - -Fixes: 146afeb235cc ("block: use strscpy() to instead of strncpy()") -Suggested-by: Naohiro Aota -Signed-off-by: INAGAKI Hiroshi -Reviewed-by: Daniel Golle ---- - block/partitions/cmdline.c | 49 ++++++++++---------------------------- - 1 file changed, 12 insertions(+), 37 deletions(-) - ---- a/block/partitions/cmdline.c -+++ b/block/partitions/cmdline.c -@@ -70,8 +70,8 @@ static int parse_subpart(struct cmdline_ - } - - if (*partdef == '(') { -- int length; -- char *next = strchr(++partdef, ')'); -+ partdef++; -+ char *next = strsep(&partdef, ")"); - - if (!next) { - pr_warn("cmdline partition format is invalid."); -@@ -79,11 +79,7 @@ static int parse_subpart(struct cmdline_ - goto fail; - } - -- length = min_t(int, next - partdef, -- sizeof(new_subpart->name) - 1); -- strscpy(new_subpart->name, partdef, length); -- -- partdef = ++next; -+ strscpy(new_subpart->name, next, sizeof(new_subpart->name)); - } else - new_subpart->name[0] = '\0'; - -@@ -117,14 +113,12 @@ static void free_subpart(struct cmdline_ - } - } - --static int parse_parts(struct cmdline_parts **parts, const char *bdevdef) -+static int parse_parts(struct cmdline_parts **parts, char *bdevdef) - { - int ret = -EINVAL; - char *next; -- int length; - struct cmdline_subpart **next_subpart; - struct cmdline_parts *newparts; -- char buf[BDEVNAME_SIZE + 32 + 4]; - - *parts = NULL; - -@@ -132,28 +126,19 @@ static int parse_parts(struct cmdline_pa - if (!newparts) - return -ENOMEM; - -- next = strchr(bdevdef, ':'); -+ next = strsep(&bdevdef, ":"); - if (!next) { - pr_warn("cmdline partition has no block device."); - goto fail; - } - -- length = min_t(int, next - bdevdef, sizeof(newparts->name) - 1); -- strscpy(newparts->name, bdevdef, length); -+ strscpy(newparts->name, next, sizeof(newparts->name)); - newparts->nr_subparts = 0; - - next_subpart = &newparts->subpart; - -- while (next && *(++next)) { -- bdevdef = next; -- next = strchr(bdevdef, ','); -- -- length = (!next) ? (sizeof(buf) - 1) : -- min_t(int, next - bdevdef, sizeof(buf) - 1); -- -- strscpy(buf, bdevdef, length); -- -- ret = parse_subpart(next_subpart, buf); -+ while ((next = strsep(&bdevdef, ","))) { -+ ret = parse_subpart(next_subpart, next); - if (ret) - goto fail; - -@@ -199,24 +184,17 @@ static int cmdline_parts_parse(struct cm - - *parts = NULL; - -- next = pbuf = buf = kstrdup(cmdline, GFP_KERNEL); -+ pbuf = buf = kstrdup(cmdline, GFP_KERNEL); - if (!buf) - return -ENOMEM; - - next_parts = parts; - -- while (next && *pbuf) { -- next = strchr(pbuf, ';'); -- if (next) -- *next = '\0'; -- -- ret = parse_parts(next_parts, pbuf); -+ while ((next = strsep(&pbuf, ";"))) { -+ ret = parse_parts(next_parts, next); - if (ret) - goto fail; - -- if (next) -- pbuf = ++next; -- - next_parts = &(*next_parts)->next_parts; - } - -@@ -250,7 +228,6 @@ static struct cmdline_parts *bdev_parts; - static int add_part(int slot, struct cmdline_subpart *subpart, - struct parsed_partitions *state) - { -- int label_min; - struct partition_meta_info *info; - char tmp[sizeof(info->volname) + 4]; - -@@ -262,9 +239,7 @@ static int add_part(int slot, struct cmd - - info = &state->parts[slot].info; - -- label_min = min_t(int, sizeof(info->volname) - 1, -- sizeof(subpart->name)); -- strscpy(info->volname, subpart->name, label_min); -+ strscpy(info->volname, subpart->name, sizeof(info->volname)); - - snprintf(tmp, sizeof(tmp), "(%s)", info->volname); - strlcat(state->pp_buf, tmp, PAGE_SIZE); diff --git a/target/linux/generic/pending-6.6/510-block-add-uImage.FIT-subimage-block-driver.patch b/target/linux/generic/pending-6.6/510-block-add-uImage.FIT-subimage-block-driver.patch index 117edbcef2d..26ef29ca872 100644 --- a/target/linux/generic/pending-6.6/510-block-add-uImage.FIT-subimage-block-driver.patch +++ b/target/linux/generic/pending-6.6/510-block-add-uImage.FIT-subimage-block-driver.patch @@ -36,7 +36,7 @@ Signed-off-by: Daniel Golle --- a/MAINTAINERS +++ b/MAINTAINERS -@@ -22006,6 +22006,12 @@ F: Documentation/filesystems/ubifs-authe +@@ -22014,6 +22014,12 @@ F: Documentation/filesystems/ubifs-authe F: Documentation/filesystems/ubifs.rst F: fs/ubifs/ diff --git a/target/linux/generic/pending-6.6/630-packet_socket_type.patch b/target/linux/generic/pending-6.6/630-packet_socket_type.patch index 02d6700af96..10a312776f7 100644 --- a/target/linux/generic/pending-6.6/630-packet_socket_type.patch +++ b/target/linux/generic/pending-6.6/630-packet_socket_type.patch @@ -87,7 +87,7 @@ Signed-off-by: Felix Fietkau if (!net_eq(dev_net(dev), sock_net(sk))) goto drop; -@@ -3386,6 +3388,7 @@ static int packet_create(struct net *net +@@ -3385,6 +3387,7 @@ static int packet_create(struct net *net mutex_init(&po->pg_vec_lock); po->rollover = NULL; po->prot_hook.func = packet_rcv; @@ -95,7 +95,7 @@ Signed-off-by: Felix Fietkau if (sock->type == SOCK_PACKET) po->prot_hook.func = packet_rcv_spkt; -@@ -4035,6 +4038,16 @@ packet_setsockopt(struct socket *sock, i +@@ -4034,6 +4037,16 @@ packet_setsockopt(struct socket *sock, i packet_sock_flag_set(po, PACKET_SOCK_QDISC_BYPASS, val); return 0; } @@ -112,7 +112,7 @@ Signed-off-by: Felix Fietkau default: return -ENOPROTOOPT; } -@@ -4094,6 +4107,13 @@ static int packet_getsockopt(struct sock +@@ -4093,6 +4106,13 @@ static int packet_getsockopt(struct sock case PACKET_VNET_HDR_SZ: val = READ_ONCE(po->vnet_hdr_sz); break; diff --git a/target/linux/generic/pending-6.6/680-net-add-TCP-fraglist-GRO-support.patch b/target/linux/generic/pending-6.6/680-net-add-TCP-fraglist-GRO-support.patch index cd776266771..7672f46d203 100644 --- a/target/linux/generic/pending-6.6/680-net-add-TCP-fraglist-GRO-support.patch +++ b/target/linux/generic/pending-6.6/680-net-add-TCP-fraglist-GRO-support.patch @@ -31,7 +31,7 @@ Signe-off-by: Felix Fietkau static inline void gro_normal_list(struct napi_struct *napi) --- a/include/net/tcp.h +++ b/include/net/tcp.h -@@ -2082,7 +2082,10 @@ void tcp_v4_destroy_sock(struct sock *sk +@@ -2083,7 +2083,10 @@ void tcp_v4_destroy_sock(struct sock *sk struct sk_buff *tcp_gso_segment(struct sk_buff *skb, netdev_features_t features); diff --git a/target/linux/generic/pending-6.6/739-05-net-pcs-add-driver-for-MediaTek-USXGMII-PCS.patch b/target/linux/generic/pending-6.6/739-05-net-pcs-add-driver-for-MediaTek-USXGMII-PCS.patch index 73ec05464a0..c7fcac3abfd 100644 --- a/target/linux/generic/pending-6.6/739-05-net-pcs-add-driver-for-MediaTek-USXGMII-PCS.patch +++ b/target/linux/generic/pending-6.6/739-05-net-pcs-add-driver-for-MediaTek-USXGMII-PCS.patch @@ -19,7 +19,7 @@ Signed-off-by: Daniel Golle --- a/MAINTAINERS +++ b/MAINTAINERS -@@ -13348,7 +13348,9 @@ M: Daniel Golle +@@ -13356,7 +13356,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.6/760-net-core-add-optional-threading-for-backlog-processi.patch b/target/linux/generic/pending-6.6/760-net-core-add-optional-threading-for-backlog-processi.patch index 5372171b42e..8a9066bf12c 100644 --- a/target/linux/generic/pending-6.6/760-net-core-add-optional-threading-for-backlog-processi.patch +++ b/target/linux/generic/pending-6.6/760-net-core-add-optional-threading-for-backlog-processi.patch @@ -157,7 +157,7 @@ Signed-off-by: Felix Fietkau void netif_napi_add_weight(struct net_device *dev, struct napi_struct *napi, int (*poll)(struct napi_struct *, int), int weight) { -@@ -11306,6 +11377,9 @@ static int dev_cpu_dead(unsigned int old +@@ -11307,6 +11378,9 @@ static int dev_cpu_dead(unsigned int old raise_softirq_irqoff(NET_TX_SOFTIRQ); local_irq_enable(); @@ -167,7 +167,7 @@ Signed-off-by: Felix Fietkau #ifdef CONFIG_RPS remsd = oldsd->rps_ipi_list; oldsd->rps_ipi_list = NULL; -@@ -11621,6 +11695,7 @@ static int __init net_dev_init(void) +@@ -11622,6 +11696,7 @@ static int __init net_dev_init(void) INIT_CSD(&sd->defer_csd, trigger_rx_softirq, sd); spin_lock_init(&sd->defer_lock); diff --git a/target/linux/generic/pending-6.6/768-net-dsa-mv88e6xxx-Request-assisted-learning-on-CPU-port.patch b/target/linux/generic/pending-6.6/768-net-dsa-mv88e6xxx-Request-assisted-learning-on-CPU-port.patch index ea3c6c8fe9e..56a015b71ed 100644 --- a/target/linux/generic/pending-6.6/768-net-dsa-mv88e6xxx-Request-assisted-learning-on-CPU-port.patch +++ b/target/linux/generic/pending-6.6/768-net-dsa-mv88e6xxx-Request-assisted-learning-on-CPU-port.patch @@ -17,7 +17,7 @@ Signed-off-by: Tobias Waldekranz --- a/drivers/net/dsa/mv88e6xxx/chip.c +++ b/drivers/net/dsa/mv88e6xxx/chip.c -@@ -6947,6 +6947,7 @@ static int mv88e6xxx_register_switch(str +@@ -6989,6 +6989,7 @@ static int mv88e6xxx_register_switch(str ds->ops = &mv88e6xxx_switch_ops; ds->ageing_time_min = chip->info->age_time_coeff; ds->ageing_time_max = chip->info->age_time_coeff * U8_MAX; diff --git a/target/linux/ipq40xx/patches-6.6/700-net-ipqess-introduce-the-Qualcomm-IPQESS-driver.patch b/target/linux/ipq40xx/patches-6.6/700-net-ipqess-introduce-the-Qualcomm-IPQESS-driver.patch index a15efe57d8e..5c57f73fa67 100644 --- a/target/linux/ipq40xx/patches-6.6/700-net-ipqess-introduce-the-Qualcomm-IPQESS-driver.patch +++ b/target/linux/ipq40xx/patches-6.6/700-net-ipqess-introduce-the-Qualcomm-IPQESS-driver.patch @@ -32,7 +32,7 @@ Signed-off-by: Maxime Chevallier --- a/MAINTAINERS +++ b/MAINTAINERS -@@ -17708,6 +17708,13 @@ L: netdev@vger.kernel.org +@@ -17716,6 +17716,13 @@ L: netdev@vger.kernel.org S: Maintained F: drivers/net/ethernet/qualcomm/emac/ diff --git a/target/linux/ipq40xx/patches-6.6/701-net-dsa-add-out-of-band-tagging-protocol.patch b/target/linux/ipq40xx/patches-6.6/701-net-dsa-add-out-of-band-tagging-protocol.patch index f535ef2d895..9c4b520fcda 100644 --- a/target/linux/ipq40xx/patches-6.6/701-net-dsa-add-out-of-band-tagging-protocol.patch +++ b/target/linux/ipq40xx/patches-6.6/701-net-dsa-add-out-of-band-tagging-protocol.patch @@ -64,7 +64,7 @@ Signed-off-by: Maxime Chevallier --- a/MAINTAINERS +++ b/MAINTAINERS -@@ -17714,6 +17714,7 @@ L: netdev@vger.kernel.org +@@ -17722,6 +17722,7 @@ L: netdev@vger.kernel.org S: Maintained F: Documentation/devicetree/bindings/net/qcom,ipq4019-ess-edma.yaml F: drivers/net/ethernet/qualcomm/ipqess/ diff --git a/target/linux/layerscape/armv8_64b/config-6.6 b/target/linux/layerscape/armv8_64b/config-6.6 index 71692ef4ee9..f95b4603bec 100644 --- a/target/linux/layerscape/armv8_64b/config-6.6 +++ b/target/linux/layerscape/armv8_64b/config-6.6 @@ -283,6 +283,7 @@ CONFIG_FB_CFB_FILLRECT=y CONFIG_FB_CFB_IMAGEBLIT=y CONFIG_FB_CORE=y CONFIG_FB_DEFERRED_IO=y +CONFIG_FB_IOMEM_FOPS=y CONFIG_FB_MODE_HELPERS=y CONFIG_FB_SYSMEM_HELPERS=y CONFIG_FB_SYSMEM_HELPERS_DEFERRED=y diff --git a/target/linux/loongarch64/config-6.6 b/target/linux/loongarch64/config-6.6 index 596301f0f4a..6f637a6f01a 100644 --- a/target/linux/loongarch64/config-6.6 +++ b/target/linux/loongarch64/config-6.6 @@ -247,6 +247,7 @@ CONFIG_FB_CORE=y CONFIG_FB_DEFERRED_IO=y CONFIG_FB_DEVICE=y CONFIG_FB_EFI=y +CONFIG_FB_IOMEM_FOPS=y CONFIG_FB_IOMEM_HELPERS=y CONFIG_FB_MODE_HELPERS=y CONFIG_FB_SIMPLE=y diff --git a/target/linux/mediatek/mt7623/config-6.6 b/target/linux/mediatek/mt7623/config-6.6 index de32b83e94f..9d6c5eed967 100644 --- a/target/linux/mediatek/mt7623/config-6.6 +++ b/target/linux/mediatek/mt7623/config-6.6 @@ -217,6 +217,7 @@ CONFIG_FB=y CONFIG_FB_CORE=y CONFIG_FB_DEFERRED_IO=y CONFIG_FB_DEVICE=y +CONFIG_FB_IOMEM_FOPS=y CONFIG_FB_SYSMEM_HELPERS=y CONFIG_FB_SYSMEM_HELPERS_DEFERRED=y CONFIG_FB_SYS_COPYAREA=y diff --git a/target/linux/mediatek/patches-6.6/041-block-fit-partition-parser.patch b/target/linux/mediatek/patches-6.6/041-block-fit-partition-parser.patch index feb50c157b9..2d85313f8d5 100644 --- a/target/linux/mediatek/patches-6.6/041-block-fit-partition-parser.patch +++ b/target/linux/mediatek/patches-6.6/041-block-fit-partition-parser.patch @@ -19,7 +19,7 @@ Subject: [PATCH] kernel: add block fit partition parser --- a/block/blk.h +++ b/block/blk.h -@@ -423,6 +423,8 @@ void blk_free_ext_minor(unsigned int min +@@ -424,6 +424,8 @@ void blk_free_ext_minor(unsigned int min #define ADDPART_FLAG_NONE 0 #define ADDPART_FLAG_RAID 1 #define ADDPART_FLAG_WHOLEDISK 2 diff --git a/target/linux/mediatek/patches-6.6/432-drivers-spi-Add-support-for-dynamic-calibration.patch b/target/linux/mediatek/patches-6.6/432-drivers-spi-Add-support-for-dynamic-calibration.patch index b5505c803a9..7ad07c35837 100644 --- a/target/linux/mediatek/patches-6.6/432-drivers-spi-Add-support-for-dynamic-calibration.patch +++ b/target/linux/mediatek/patches-6.6/432-drivers-spi-Add-support-for-dynamic-calibration.patch @@ -11,7 +11,7 @@ Signed-off-by: SkyLake.Huang --- a/drivers/spi/spi.c +++ b/drivers/spi/spi.c -@@ -1366,6 +1366,70 @@ static int spi_transfer_wait(struct spi_ +@@ -1370,6 +1370,70 @@ static int spi_transfer_wait(struct spi_ return 0; } @@ -82,7 +82,7 @@ Signed-off-by: SkyLake.Huang static void _spi_transfer_delay_ns(u32 ns) { if (!ns) -@@ -2211,6 +2275,75 @@ void spi_flush_queue(struct spi_controll +@@ -2215,6 +2279,75 @@ void spi_flush_queue(struct spi_controll /*-------------------------------------------------------------------------*/ #if defined(CONFIG_OF) @@ -158,7 +158,7 @@ Signed-off-by: SkyLake.Huang static void of_spi_parse_dt_cs_delay(struct device_node *nc, struct spi_delay *delay, const char *prop) { -@@ -2350,6 +2483,10 @@ of_register_spi_device(struct spi_contro +@@ -2354,6 +2487,10 @@ of_register_spi_device(struct spi_contro if (rc) goto err_out; diff --git a/target/linux/ramips/patches-6.6/810-uvc-add-iPassion-iP2970-support.patch b/target/linux/ramips/patches-6.6/810-uvc-add-iPassion-iP2970-support.patch index 80d5ec3b4af..b58cb786ad8 100644 --- a/target/linux/ramips/patches-6.6/810-uvc-add-iPassion-iP2970-support.patch +++ b/target/linux/ramips/patches-6.6/810-uvc-add-iPassion-iP2970-support.patch @@ -13,7 +13,7 @@ Signed-off-by: John Crispin --- a/drivers/media/usb/uvc/uvc_driver.c +++ b/drivers/media/usb/uvc/uvc_driver.c -@@ -3120,6 +3120,18 @@ static const struct usb_device_id uvc_id +@@ -3151,6 +3151,18 @@ static const struct usb_device_id uvc_id .bInterfaceSubClass = 1, .bInterfaceProtocol = 0, .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) }, @@ -225,16 +225,16 @@ Signed-off-by: John Crispin for_each_uvc_urb(uvc_urb, stream) { --- a/drivers/media/usb/uvc/uvcvideo.h +++ b/drivers/media/usb/uvc/uvcvideo.h -@@ -73,6 +73,8 @@ - #define UVC_QUIRK_FORCE_Y8 0x00000800 +@@ -74,6 +74,8 @@ #define UVC_QUIRK_FORCE_BPP 0x00001000 #define UVC_QUIRK_WAKE_AUTOSUSPEND 0x00002000 -+#define UVC_QUIRK_MOTION 0x00004000 -+#define UVC_QUIRK_SINGLE_ISO 0x00008000 + #define UVC_QUIRK_NO_RESET_RESUME 0x00004000 ++#define UVC_QUIRK_MOTION 0x00008000 ++#define UVC_QUIRK_SINGLE_ISO 0x00010000 /* Format flags */ #define UVC_FMT_FLAG_COMPRESSED 0x00000001 -@@ -582,6 +584,7 @@ struct uvc_device { +@@ -583,6 +585,7 @@ struct uvc_device { struct input_dev *input; char input_phys[64]; diff --git a/target/linux/tegra/config-6.6 b/target/linux/tegra/config-6.6 index c86a51a572f..9cecf9f6932 100644 --- a/target/linux/tegra/config-6.6 +++ b/target/linux/tegra/config-6.6 @@ -197,6 +197,7 @@ CONFIG_FB=y CONFIG_FB_CORE=y CONFIG_FB_DEFERRED_IO=y CONFIG_FB_DMAMEM_HELPERS=y +CONFIG_FB_IOMEM_FOPS=y CONFIG_FB_SYSMEM_HELPERS=y CONFIG_FB_SYSMEM_HELPERS_DEFERRED=y CONFIG_FB_SYS_COPYAREA=y diff --git a/target/linux/x86/64/config-6.6 b/target/linux/x86/64/config-6.6 index 8533d57532d..d5f86141b0b 100644 --- a/target/linux/x86/64/config-6.6 +++ b/target/linux/x86/64/config-6.6 @@ -217,6 +217,7 @@ CONFIG_FB_DEFERRED_IO=y CONFIG_FB_DEVICE=y CONFIG_FB_EFI=y CONFIG_FB_HYPERV=y +CONFIG_FB_IOMEM_FOPS=y CONFIG_FB_IOMEM_HELPERS=y CONFIG_FB_MODE_HELPERS=y CONFIG_FB_SIMPLE=y diff --git a/target/linux/x86/generic/config-6.6 b/target/linux/x86/generic/config-6.6 index c02ec35100f..4c0a052c7b2 100644 --- a/target/linux/x86/generic/config-6.6 +++ b/target/linux/x86/generic/config-6.6 @@ -152,6 +152,7 @@ CONFIG_FB_DEVICE=y CONFIG_FB_EFI=y CONFIG_FB_HYPERV=y # CONFIG_FB_I810 is not set +CONFIG_FB_IOMEM_FOPS=y CONFIG_FB_IOMEM_HELPERS=y CONFIG_FB_SIMPLE=y CONFIG_FB_SYSMEM_HELPERS=y diff --git a/target/linux/x86/legacy/config-6.6 b/target/linux/x86/legacy/config-6.6 index f71747e4336..323f20dba63 100644 --- a/target/linux/x86/legacy/config-6.6 +++ b/target/linux/x86/legacy/config-6.6 @@ -111,6 +111,7 @@ CONFIG_FB_CORE=y CONFIG_FB_DEFERRED_IO=y CONFIG_FB_DEVICE=y # CONFIG_FB_I810 is not set +CONFIG_FB_IOMEM_FOPS=y CONFIG_FB_IOMEM_HELPERS=y CONFIG_FB_SYSMEM_HELPERS=y CONFIG_FB_SYSMEM_HELPERS_DEFERRED=y