From: John Audia Date: Thu, 17 Oct 2024 23:46:24 +0000 (-0400) Subject: kernel: bump 6.6 to 6.6.57 X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=51bbc8114be18d3c00ae047d297609c1dfd63855;p=openwrt%2Fstaging%2Fansuel.git kernel: bump 6.6 to 6.6.57 1. Update target/linux/generic/config-6.6 for new ksym 2. Refresh patches Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.57 Added: generic/backport-6.6/777-netfilter-xtables-fix-typo-causing-some-targets-to-not-load-on-IPv6.patch[1] Manually rebased: generic/hack-6.6/645-netfilter-connmark-introduce-set-dscpmark.patch Removed upstreamed: gemini/patches-6.6/0001-net-ethernet-cortina-Drop-TSO-support.patch[2] gemini/patches-6.6/0004-net-ethernet-cortina-Restore-TSO-support.patch[3] All other patches automatically rebased. 1. https://lore.kernel.org/all/20241019-xtables-typos-v2-1-6b8b1735dc8e@0upti.me/ 2 https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.57&id=452c0740d72c6a77a41f6ddc318a48f18c3d2346 3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.57&id=611f74b0e7fb93ee2366d9d7edca546806b220e9 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 Signed-off-by: John Audia Link: https://github.com/openwrt/openwrt/pull/16726 Signed-off-by: Hauke Mehrtens --- diff --git a/include/kernel-6.6 b/include/kernel-6.6 index 6f72804b87..a5048a4e6f 100644 --- a/include/kernel-6.6 +++ b/include/kernel-6.6 @@ -1,2 +1,2 @@ -LINUX_VERSION-6.6 = .56 -LINUX_KERNEL_HASH-6.6.56 = f74812f78e88992c416434cb107639e13a551dbaff36bb90d6346ab16ab71a95 +LINUX_VERSION-6.6 = .57 +LINUX_KERNEL_HASH-6.6.57 = 66ce426ef96f99b8e1ef7ac72e780c730ef8b970f7aa5708501c4274d7abb7b3 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 720c3bfcdd..c5b01b7dad 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 @@ -751,7 +751,7 @@ SVN-Revision: 35130 EXPORT_SYMBOL(xfrm_parse_spi); --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c -@@ -4221,14 +4221,16 @@ static bool tcp_parse_aligned_timestamp( +@@ -4262,14 +4262,16 @@ static bool tcp_parse_aligned_timestamp( { const __be32 *ptr = (const __be32 *)(th + 1); diff --git a/target/linux/bcm27xx/patches-6.6/950-0061-Revert-Revert-xhci-add-quirk-for-host-controllers-th.patch b/target/linux/bcm27xx/patches-6.6/950-0061-Revert-Revert-xhci-add-quirk-for-host-controllers-th.patch index 9470fb9694..1135b31d4f 100644 --- a/target/linux/bcm27xx/patches-6.6/950-0061-Revert-Revert-xhci-add-quirk-for-host-controllers-th.patch +++ b/target/linux/bcm27xx/patches-6.6/950-0061-Revert-Revert-xhci-add-quirk-for-host-controllers-th.patch @@ -14,7 +14,7 @@ We don't agree with upstream revert so undo it. --- a/drivers/usb/host/xhci-pci.c +++ b/drivers/usb/host/xhci-pci.c -@@ -489,8 +489,10 @@ static void xhci_pci_quirks(struct devic +@@ -490,8 +490,10 @@ static void xhci_pci_quirks(struct devic pdev->device == 0x3432) xhci->quirks |= XHCI_BROKEN_STREAMS; diff --git a/target/linux/bcm27xx/patches-6.6/950-0169-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch b/target/linux/bcm27xx/patches-6.6/950-0169-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch index 8a04903f7d..5301066196 100644 --- a/target/linux/bcm27xx/patches-6.6/950-0169-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch +++ b/target/linux/bcm27xx/patches-6.6/950-0169-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch @@ -23,7 +23,7 @@ Signed-off-by: Jonathan Bell --- a/drivers/hid/hid-ids.h +++ b/drivers/hid/hid-ids.h -@@ -239,6 +239,9 @@ +@@ -242,6 +242,9 @@ #define USB_VENDOR_ID_BAANTO 0x2453 #define USB_DEVICE_ID_BAANTO_MT_190W2 0x0100 @@ -33,7 +33,7 @@ Signed-off-by: Jonathan Bell #define USB_VENDOR_ID_BELKIN 0x050d #define USB_DEVICE_ID_FLIP_KVM 0x3201 -@@ -1394,6 +1397,9 @@ +@@ -1404,6 +1407,9 @@ #define USB_VENDOR_ID_XIAOMI 0x2717 #define USB_DEVICE_ID_MI_SILENT_MOUSE 0x5014 diff --git a/target/linux/bcm27xx/patches-6.6/950-0482-xhci-quirks-add-link-TRB-quirk-for-VL805.patch b/target/linux/bcm27xx/patches-6.6/950-0482-xhci-quirks-add-link-TRB-quirk-for-VL805.patch index 948610d576..ca49ada4e7 100644 --- a/target/linux/bcm27xx/patches-6.6/950-0482-xhci-quirks-add-link-TRB-quirk-for-VL805.patch +++ b/target/linux/bcm27xx/patches-6.6/950-0482-xhci-quirks-add-link-TRB-quirk-for-VL805.patch @@ -24,7 +24,7 @@ Signed-off-by: Jonathan Bell --- a/drivers/usb/host/xhci-pci.c +++ b/drivers/usb/host/xhci-pci.c -@@ -492,6 +492,7 @@ static void xhci_pci_quirks(struct devic +@@ -493,6 +493,7 @@ static void xhci_pci_quirks(struct devic if (pdev->vendor == PCI_VENDOR_ID_VIA && pdev->device == 0x3483) { xhci->quirks |= XHCI_LPM_SUPPORT; xhci->quirks |= XHCI_EP_CTX_BROKEN_DCS; diff --git a/target/linux/bcm27xx/patches-6.6/950-0483-usb-xhci-borrow-upstream-TRB_FETCH-quirk-on-VL805-ho.patch b/target/linux/bcm27xx/patches-6.6/950-0483-usb-xhci-borrow-upstream-TRB_FETCH-quirk-on-VL805-ho.patch index db80559069..e76a413d67 100644 --- a/target/linux/bcm27xx/patches-6.6/950-0483-usb-xhci-borrow-upstream-TRB_FETCH-quirk-on-VL805-ho.patch +++ b/target/linux/bcm27xx/patches-6.6/950-0483-usb-xhci-borrow-upstream-TRB_FETCH-quirk-on-VL805-ho.patch @@ -22,7 +22,7 @@ Signed-off-by: Jonathan Bell --- a/drivers/usb/host/xhci-pci.c +++ b/drivers/usb/host/xhci-pci.c -@@ -493,6 +493,7 @@ static void xhci_pci_quirks(struct devic +@@ -494,6 +494,7 @@ static void xhci_pci_quirks(struct devic xhci->quirks |= XHCI_LPM_SUPPORT; xhci->quirks |= XHCI_EP_CTX_BROKEN_DCS; xhci->quirks |= XHCI_AVOID_DQ_ON_LINK; diff --git a/target/linux/bcm27xx/patches-6.6/950-0484-usb-xhci-add-VLI_SS_BULK_OUT_BUG-quirk.patch b/target/linux/bcm27xx/patches-6.6/950-0484-usb-xhci-add-VLI_SS_BULK_OUT_BUG-quirk.patch index 9af7fc8176..a7d255db40 100644 --- a/target/linux/bcm27xx/patches-6.6/950-0484-usb-xhci-add-VLI_SS_BULK_OUT_BUG-quirk.patch +++ b/target/linux/bcm27xx/patches-6.6/950-0484-usb-xhci-add-VLI_SS_BULK_OUT_BUG-quirk.patch @@ -90,7 +90,7 @@ Signed-off-by: Jonathan Bell /* Allow 3 retries for everything but isoc, set CErr = 3 */ --- a/drivers/usb/host/xhci-pci.c +++ b/drivers/usb/host/xhci-pci.c -@@ -494,6 +494,7 @@ static void xhci_pci_quirks(struct devic +@@ -495,6 +495,7 @@ static void xhci_pci_quirks(struct devic xhci->quirks |= XHCI_EP_CTX_BROKEN_DCS; xhci->quirks |= XHCI_AVOID_DQ_ON_LINK; xhci->quirks |= XHCI_ZHAOXIN_TRB_FETCH; diff --git a/target/linux/bcm27xx/patches-6.6/950-0485-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch b/target/linux/bcm27xx/patches-6.6/950-0485-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch index 45cf1b5725..935ed89c08 100644 --- a/target/linux/bcm27xx/patches-6.6/950-0485-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch +++ b/target/linux/bcm27xx/patches-6.6/950-0485-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch @@ -47,7 +47,7 @@ Signed-off-by: Jonathan Bell /* Device for a quirk */ #define PCI_VENDOR_ID_FRESCO_LOGIC 0x1b73 #define PCI_DEVICE_ID_FRESCO_LOGIC_PDK 0x1000 -@@ -294,6 +296,16 @@ static int xhci_pci_reinit(struct xhci_h +@@ -295,6 +297,16 @@ static int xhci_pci_reinit(struct xhci_h return 0; } @@ -64,7 +64,7 @@ Signed-off-by: Jonathan Bell static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) { struct pci_dev *pdev = to_pci_dev(dev); -@@ -495,6 +507,8 @@ static void xhci_pci_quirks(struct devic +@@ -496,6 +508,8 @@ static void xhci_pci_quirks(struct devic xhci->quirks |= XHCI_AVOID_DQ_ON_LINK; xhci->quirks |= XHCI_ZHAOXIN_TRB_FETCH; xhci->quirks |= XHCI_VLI_SS_BULK_OUT_BUG; diff --git a/target/linux/bcm27xx/patches-6.6/950-0519-usb-dwc3-Set-DMA-and-coherent-masks-early.patch b/target/linux/bcm27xx/patches-6.6/950-0519-usb-dwc3-Set-DMA-and-coherent-masks-early.patch index f771fc8750..7d3a139a77 100644 --- a/target/linux/bcm27xx/patches-6.6/950-0519-usb-dwc3-Set-DMA-and-coherent-masks-early.patch +++ b/target/linux/bcm27xx/patches-6.6/950-0519-usb-dwc3-Set-DMA-and-coherent-masks-early.patch @@ -212,7 +212,7 @@ Signed-off-by: Jonathan Bell }, --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c -@@ -1202,6 +1202,24 @@ static void dwc3_config_threshold(struct +@@ -1208,6 +1208,24 @@ static void dwc3_config_threshold(struct } } @@ -237,7 +237,7 @@ Signed-off-by: Jonathan Bell /** * dwc3_core_init - Low-level initialization of DWC3 Core * @dwc: Pointer to our controller context structure -@@ -1267,6 +1285,8 @@ static int dwc3_core_init(struct dwc3 *d +@@ -1273,6 +1291,8 @@ static int dwc3_core_init(struct dwc3 *d dwc3_set_incr_burst_type(dwc); @@ -246,7 +246,7 @@ Signed-off-by: Jonathan Bell ret = dwc3_phy_power_on(dwc); if (ret) goto err_exit_phy; -@@ -1356,6 +1376,24 @@ static int dwc3_core_init(struct dwc3 *d +@@ -1362,6 +1382,24 @@ static int dwc3_core_init(struct dwc3 *d dwc3_config_threshold(dwc); @@ -271,7 +271,7 @@ Signed-off-by: Jonathan Bell return 0; err_power_off_phy: -@@ -1499,6 +1537,7 @@ static void dwc3_get_properties(struct d +@@ -1505,6 +1543,7 @@ static void dwc3_get_properties(struct d u8 tx_thr_num_pkt_prd = 0; u8 tx_max_burst_prd = 0; u8 tx_fifo_resize_max_num; @@ -279,7 +279,7 @@ Signed-off-by: Jonathan Bell const char *usb_psy_name; int ret; -@@ -1521,6 +1560,9 @@ static void dwc3_get_properties(struct d +@@ -1527,6 +1566,9 @@ static void dwc3_get_properties(struct d */ tx_fifo_resize_max_num = 6; @@ -289,7 +289,7 @@ Signed-off-by: Jonathan Bell dwc->maximum_speed = usb_get_maximum_speed(dev); dwc->max_ssp_rate = usb_get_maximum_ssp_rate(dev); dwc->dr_mode = usb_get_dr_mode(dev); -@@ -1642,6 +1684,9 @@ static void dwc3_get_properties(struct d +@@ -1648,6 +1690,9 @@ static void dwc3_get_properties(struct d dwc->dis_split_quirk = device_property_read_bool(dev, "snps,dis-split-quirk"); @@ -299,7 +299,7 @@ Signed-off-by: Jonathan Bell dwc->lpm_nyet_threshold = lpm_nyet_threshold; dwc->tx_de_emphasis = tx_de_emphasis; -@@ -1659,6 +1704,8 @@ static void dwc3_get_properties(struct d +@@ -1665,6 +1710,8 @@ static void dwc3_get_properties(struct d dwc->tx_thr_num_pkt_prd = tx_thr_num_pkt_prd; dwc->tx_max_burst_prd = tx_max_burst_prd; @@ -308,7 +308,7 @@ Signed-off-by: Jonathan Bell dwc->imod_interval = 0; dwc->tx_fifo_resize_max_num = tx_fifo_resize_max_num; -@@ -1934,6 +1981,12 @@ static int dwc3_probe(struct platform_de +@@ -1940,6 +1987,12 @@ static int dwc3_probe(struct platform_de dwc3_get_properties(dwc); diff --git a/target/linux/bcm27xx/patches-6.6/950-0550-hwmon-Add-RP1-ADC-and-temperature-driver.patch b/target/linux/bcm27xx/patches-6.6/950-0550-hwmon-Add-RP1-ADC-and-temperature-driver.patch index ca71f80a14..2a68b62c30 100644 --- a/target/linux/bcm27xx/patches-6.6/950-0550-hwmon-Add-RP1-ADC-and-temperature-driver.patch +++ b/target/linux/bcm27xx/patches-6.6/950-0550-hwmon-Add-RP1-ADC-and-temperature-driver.patch @@ -13,7 +13,7 @@ Signed-off-by: Phil Elwell --- a/drivers/hwmon/Kconfig +++ b/drivers/hwmon/Kconfig -@@ -2367,6 +2367,13 @@ config SENSORS_INTEL_M10_BMC_HWMON +@@ -2371,6 +2371,13 @@ config SENSORS_INTEL_M10_BMC_HWMON sensors monitor various telemetry data of different components on the card, e.g. board temperature, FPGA core temperature/voltage/current. diff --git a/target/linux/bcm27xx/patches-6.6/950-0585-drm-vc4-Introduce-generation-number-enum.patch b/target/linux/bcm27xx/patches-6.6/950-0585-drm-vc4-Introduce-generation-number-enum.patch index ce5361905b..0e810a1f4e 100644 --- a/target/linux/bcm27xx/patches-6.6/950-0585-drm-vc4-Introduce-generation-number-enum.patch +++ b/target/linux/bcm27xx/patches-6.6/950-0585-drm-vc4-Introduce-generation-number-enum.patch @@ -832,7 +832,7 @@ Signed-off-by: Maxime Ripard return; mutex_init(&vc4file->perfmon.lock); -@@ -126,7 +126,7 @@ void vc4_perfmon_close_file(struct vc4_f +@@ -131,7 +131,7 @@ void vc4_perfmon_close_file(struct vc4_f { struct vc4_dev *vc4 = vc4file->dev; @@ -841,7 +841,7 @@ Signed-off-by: Maxime Ripard return; mutex_lock(&vc4file->perfmon.lock); -@@ -146,7 +146,7 @@ int vc4_perfmon_create_ioctl(struct drm_ +@@ -151,7 +151,7 @@ int vc4_perfmon_create_ioctl(struct drm_ unsigned int i; int ret; @@ -850,7 +850,7 @@ Signed-off-by: Maxime Ripard return -ENODEV; if (!vc4->v3d) { -@@ -200,7 +200,7 @@ int vc4_perfmon_destroy_ioctl(struct drm +@@ -205,7 +205,7 @@ int vc4_perfmon_destroy_ioctl(struct drm struct drm_vc4_perfmon_destroy *req = data; struct vc4_perfmon *perfmon; @@ -859,7 +859,7 @@ Signed-off-by: Maxime Ripard return -ENODEV; if (!vc4->v3d) { -@@ -228,7 +228,7 @@ int vc4_perfmon_get_values_ioctl(struct +@@ -233,7 +233,7 @@ int vc4_perfmon_get_values_ioctl(struct struct vc4_perfmon *perfmon; int ret; diff --git a/target/linux/bcm27xx/patches-6.6/950-0586-drm-vc4-Make-v3d-paths-unavailable-on-any-generation.patch b/target/linux/bcm27xx/patches-6.6/950-0586-drm-vc4-Make-v3d-paths-unavailable-on-any-generation.patch index 04aa4bc0bb..9ab0a6d152 100644 --- a/target/linux/bcm27xx/patches-6.6/950-0586-drm-vc4-Make-v3d-paths-unavailable-on-any-generation.patch +++ b/target/linux/bcm27xx/patches-6.6/950-0586-drm-vc4-Make-v3d-paths-unavailable-on-any-generation.patch @@ -432,7 +432,7 @@ Signed-off-by: Maxime Ripard return; mutex_init(&vc4file->perfmon.lock); -@@ -126,7 +126,7 @@ void vc4_perfmon_close_file(struct vc4_f +@@ -131,7 +131,7 @@ void vc4_perfmon_close_file(struct vc4_f { struct vc4_dev *vc4 = vc4file->dev; @@ -441,7 +441,7 @@ Signed-off-by: Maxime Ripard return; mutex_lock(&vc4file->perfmon.lock); -@@ -146,7 +146,7 @@ int vc4_perfmon_create_ioctl(struct drm_ +@@ -151,7 +151,7 @@ int vc4_perfmon_create_ioctl(struct drm_ unsigned int i; int ret; @@ -450,7 +450,7 @@ Signed-off-by: Maxime Ripard return -ENODEV; if (!vc4->v3d) { -@@ -200,7 +200,7 @@ int vc4_perfmon_destroy_ioctl(struct drm +@@ -205,7 +205,7 @@ int vc4_perfmon_destroy_ioctl(struct drm struct drm_vc4_perfmon_destroy *req = data; struct vc4_perfmon *perfmon; @@ -459,7 +459,7 @@ Signed-off-by: Maxime Ripard return -ENODEV; if (!vc4->v3d) { -@@ -228,7 +228,7 @@ int vc4_perfmon_get_values_ioctl(struct +@@ -233,7 +233,7 @@ int vc4_perfmon_get_values_ioctl(struct struct vc4_perfmon *perfmon; int ret; diff --git a/target/linux/bcm27xx/patches-6.6/950-0853-drivers-usb-dwc3-add-FS-LS-bus-instance-parkmode-dis.patch b/target/linux/bcm27xx/patches-6.6/950-0853-drivers-usb-dwc3-add-FS-LS-bus-instance-parkmode-dis.patch index e089be3f37..557bb033ef 100644 --- a/target/linux/bcm27xx/patches-6.6/950-0853-drivers-usb-dwc3-add-FS-LS-bus-instance-parkmode-dis.patch +++ b/target/linux/bcm27xx/patches-6.6/950-0853-drivers-usb-dwc3-add-FS-LS-bus-instance-parkmode-dis.patch @@ -16,7 +16,7 @@ Signed-off-by: Jonathan Bell --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c -@@ -1366,6 +1366,9 @@ static int dwc3_core_init(struct dwc3 *d +@@ -1372,6 +1372,9 @@ static int dwc3_core_init(struct dwc3 *d if (dwc->parkmode_disable_hs_quirk) reg |= DWC3_GUCTL1_PARKMODE_DISABLE_HS; @@ -26,7 +26,7 @@ Signed-off-by: Jonathan Bell if (DWC3_VER_IS_WITHIN(DWC3, 290A, ANY) && (dwc->maximum_speed == USB_SPEED_HIGH || dwc->maximum_speed == USB_SPEED_FULL)) -@@ -1664,6 +1667,8 @@ static void dwc3_get_properties(struct d +@@ -1670,6 +1673,8 @@ static void dwc3_get_properties(struct d "snps,parkmode-disable-ss-quirk"); dwc->parkmode_disable_hs_quirk = device_property_read_bool(dev, "snps,parkmode-disable-hs-quirk"); diff --git a/target/linux/bcm27xx/patches-6.6/950-1141-fs-ntfs3-Fix-memory-corruption-when-page_size-change.patch b/target/linux/bcm27xx/patches-6.6/950-1141-fs-ntfs3-Fix-memory-corruption-when-page_size-change.patch index b05a8276df..3049223910 100644 --- a/target/linux/bcm27xx/patches-6.6/950-1141-fs-ntfs3-Fix-memory-corruption-when-page_size-change.patch +++ b/target/linux/bcm27xx/patches-6.6/950-1141-fs-ntfs3-Fix-memory-corruption-when-page_size-change.patch @@ -25,7 +25,7 @@ Signed-off-by: Dom Cobley --- a/fs/ntfs3/fslog.c +++ b/fs/ntfs3/fslog.c -@@ -3914,6 +3914,8 @@ check_restart_area: +@@ -3929,6 +3929,8 @@ check_restart_area: log->l_size = log->orig_file_size; log->page_size = norm_file_page(t32, &log->l_size, t32 == DefaultLogPageSize); 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 deleted file mode 100644 index 6fbd0487eb..0000000000 --- a/target/linux/gemini/patches-6.6/0001-net-ethernet-cortina-Drop-TSO-support.patch +++ /dev/null @@ -1,78 +0,0 @@ -From f8001196455311eb128fcafd98cb2050a70218df Mon Sep 17 00:00:00 2001 -From: Linus Walleij -Date: Sat, 6 Jan 2024 01:12:22 +0100 -Subject: [PATCH 4/4] net: ethernet: cortina: Drop TSO support - -The recent change to allow large frames without hardware checksumming -slotted in software checksumming in the driver if hardware could not -do it. - -This will however upset TSO (TCP Segment Offloading). Typical -error dumps includes this: - -skb len=2961 headroom=222 headlen=66 tailroom=0 -(...) -WARNING: CPU: 0 PID: 956 at net/core/dev.c:3259 skb_warn_bad_offload+0x7c/0x108 -gemini-ethernet-port: caps=(0x0000010000154813, 0x00002007ffdd7889) - -And the packets do not go through. - -The TSO implementation is bogus: a TSO enabled driver must propagate -the skb_shinfo(skb)->gso_size value to the TSO engine on the NIC. - -Drop the size check and TSO offloading features for now: this -needs to be fixed up properly. - -After this ethernet works fine on Gemini devices with a direct connected -PHY such as D-Link DNS-313. - -Also tested to still be working with a DSA switch using the Gemini -ethernet as conduit interface. - -Link: https://lore.kernel.org/netdev/CANn89iJLfxng1sYL5Zk0mknXpyYQPCp83m3KgD2KJ2_hKCpEUg@mail.gmail.com/ -Suggested-by: Eric Dumazet -Fixes: d4d0c5b4d279 ("net: ethernet: cortina: Handle large frames") -Signed-off-by: Linus Walleij -Reviewed-by: Eric Dumazet -Signed-off-by: David S. Miller ---- - drivers/net/ethernet/cortina/gemini.c | 15 ++------------- - 1 file changed, 2 insertions(+), 13 deletions(-) - ---- a/drivers/net/ethernet/cortina/gemini.c -+++ b/drivers/net/ethernet/cortina/gemini.c -@@ -79,8 +79,7 @@ MODULE_PARM_DESC(debug, "Debug level (0= - #define GMAC0_IRQ4_8 (GMAC0_MIB_INT_BIT | GMAC0_RX_OVERRUN_INT_BIT) - - #define GMAC_OFFLOAD_FEATURES (NETIF_F_SG | NETIF_F_IP_CSUM | \ -- NETIF_F_IPV6_CSUM | NETIF_F_RXCSUM | \ -- NETIF_F_TSO | NETIF_F_TSO_ECN | NETIF_F_TSO6) -+ NETIF_F_IPV6_CSUM | NETIF_F_RXCSUM) - - /** - * struct gmac_queue_page - page buffer per-page info -@@ -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; -- unsigned short mtu; - void *buffer; - int ret; - -- mtu = ETH_HLEN; -- mtu += netdev->mtu; -- if (skb->protocol == htons(ETH_P_8021Q)) -- mtu += VLAN_HLEN; -- -+ /* TODO: implement proper TSO using MTU in word3 */ - word1 = skb->len; - word3 = SOF_BIT; - -- if (word1 > mtu) { -- word1 |= TSS_MTU_ENABLE_BIT; -- word3 |= mtu; -- } -- - if (skb->len >= ETH_FRAME_LEN) { - /* Hardware offloaded checksumming isn't working on frames - * bigger than 1514 bytes. A hypothesis about this is that the diff --git a/target/linux/gemini/patches-6.6/0004-net-ethernet-cortina-Restore-TSO-support.patch b/target/linux/gemini/patches-6.6/0004-net-ethernet-cortina-Restore-TSO-support.patch deleted file mode 100644 index 809941a95d..0000000000 --- a/target/linux/gemini/patches-6.6/0004-net-ethernet-cortina-Restore-TSO-support.patch +++ /dev/null @@ -1,124 +0,0 @@ -From 30fcba19ed88997a2909e4a68b4d39ff371357c3 Mon Sep 17 00:00:00 2001 -From: Linus Walleij -Date: Wed, 1 May 2024 21:46:31 +0200 -Subject: [PATCH 1/5] net: ethernet: cortina: Restore TSO support - -An earlier commit deleted the TSO support in the Cortina Gemini -driver because the driver was confusing gso_size and MTU, -probably because what the Linux kernel calls "gso_size" was -called "MTU" in the datasheet. - -Restore the functionality properly reading the gso_size from -the skbuff. - -Tested with iperf3, running a server on a different machine -and client on the device with the cortina gemini ethernet: - -Connecting to host 192.168.1.2, port 5201 -60008000.ethernet-port eth0: segment offloading mss = 05ea len=1c8a -60008000.ethernet-port eth0: segment offloading mss = 05ea len=1c8a -60008000.ethernet-port eth0: segment offloading mss = 05ea len=27da -60008000.ethernet-port eth0: segment offloading mss = 05ea len=0b92 -60008000.ethernet-port eth0: segment offloading mss = 05ea len=2bda -(...) - -(The hardware MSS 0x05ea here includes the ethernet headers.) - -If I disable all segment offloading on the receiving host and -dump packets using tcpdump -xx like this: - -ethtool -K enp2s0 gro off gso off tso off -tcpdump -xx -i enp2s0 host 192.168.1.136 - -I get segmented packages such as this when running iperf3: - -23:16:54.024139 IP OpenWrt.lan.59168 > Fecusia.targus-getdata1: -Flags [.], seq 1486:2934, ack 1, win 4198, -options [nop,nop,TS val 3886192908 ecr 3601341877], length 1448 -0x0000: fc34 9701 a0c6 14d6 4da8 3c4f 0800 4500 -0x0010: 05dc 16a0 4000 4006 9aa1 c0a8 0188 c0a8 -0x0020: 0102 e720 1451 ff25 9822 4c52 29cf 8010 -0x0030: 1066 ac8c 0000 0101 080a e7a2 990c d6a8 -(...) -0x05c0: 5e49 e109 fe8c 4617 5e18 7a82 7eae d647 -0x05d0: e8ee ae64 dc88 c897 3f8a 07a4 3a33 6b1b -0x05e0: 3501 a30f 2758 cc44 4b4a - -Several such packets often follow after each other verifying -the segmentation into 0x05a8 (1448) byte packages also on the -reveiving end. As can be seen, the ethernet frames are -0x05ea (1514) in size. - -Performance with iperf3 before this patch: ~15.5 Mbit/s -Performance with iperf3 after this patch: ~175 Mbit/s - -This was running a 60 second test (twice) the best measurement -was 179 Mbit/s. - -For comparison if I run iperf3 with UDP I get around 1.05 Mbit/s -both before and after this patch. - -While this is a gigabit ethernet interface, the CPU is a cheap -D-Link DIR-685 router (based on the ARMv5 Faraday FA526 at -~50 MHz), and the software is not supposed to drive traffic, -as the device has a DSA chip, so this kind of numbers can be -expected. - -Fixes: ac631873c9e7 ("net: ethernet: cortina: Drop TSO support") -Reviewed-by: Eric Dumazet -Signed-off-by: Linus Walleij ---- - drivers/net/ethernet/cortina/gemini.c | 23 +++++++++++++++++++---- - 1 file changed, 19 insertions(+), 4 deletions(-) - ---- a/drivers/net/ethernet/cortina/gemini.c -+++ b/drivers/net/ethernet/cortina/gemini.c -@@ -79,7 +79,8 @@ MODULE_PARM_DESC(debug, "Debug level (0= - #define GMAC0_IRQ4_8 (GMAC0_MIB_INT_BIT | GMAC0_RX_OVERRUN_INT_BIT) - - #define GMAC_OFFLOAD_FEATURES (NETIF_F_SG | NETIF_F_IP_CSUM | \ -- NETIF_F_IPV6_CSUM | NETIF_F_RXCSUM) -+ NETIF_F_IPV6_CSUM | NETIF_F_RXCSUM | \ -+ NETIF_F_TSO | NETIF_F_TSO_ECN | NETIF_F_TSO6) - - /** - * struct gmac_queue_page - page buffer per-page info -@@ -1148,13 +1149,25 @@ static int gmac_map_tx_bufs(struct net_d - skb_frag_t *skb_frag; - dma_addr_t mapping; - void *buffer; -+ u16 mss; - int ret; - -- /* TODO: implement proper TSO using MTU in word3 */ - word1 = skb->len; - word3 = SOF_BIT; - -- if (skb->len >= ETH_FRAME_LEN) { -+ mss = skb_shinfo(skb)->gso_size; -+ if (mss) { -+ /* This means we are dealing with TCP and skb->len is the -+ * sum total of all the segments. The TSO will deal with -+ * chopping this up for us. -+ */ -+ /* The accelerator needs the full frame size here */ -+ mss += skb_tcp_all_headers(skb); -+ netdev_dbg(netdev, "segment offloading mss = %04x len=%04x\n", -+ mss, skb->len); -+ word1 |= TSS_MTU_ENABLE_BIT; -+ word3 |= mss; -+ } else if (skb->len >= ETH_FRAME_LEN) { - /* Hardware offloaded checksumming isn't working on frames - * bigger than 1514 bytes. A hypothesis about this is that the - * checksum buffer is only 1518 bytes, so when the frames get -@@ -1169,7 +1182,9 @@ static int gmac_map_tx_bufs(struct net_d - return ret; - } - word1 |= TSS_BYPASS_BIT; -- } else if (skb->ip_summed == CHECKSUM_PARTIAL) { -+ } -+ -+ if (skb->ip_summed == CHECKSUM_PARTIAL) { - int tcp = 0; - - /* We do not switch off the checksumming on non TCP/UDP diff --git a/target/linux/generic/backport-6.6/777-netfilter-xtables-fix-typo-causing-some-targets-to-not-load-on-IPv6.patch b/target/linux/generic/backport-6.6/777-netfilter-xtables-fix-typo-causing-some-targets-to-not-load-on-IPv6.patch new file mode 100644 index 0000000000..d29c7d463d --- /dev/null +++ b/target/linux/generic/backport-6.6/777-netfilter-xtables-fix-typo-causing-some-targets-to-not-load-on-IPv6.patch @@ -0,0 +1,43 @@ +Subject: [PATCH v2] netfilter: xtables: fix typo causing some targets to not load on IPv6 +Date: Sat, 19 Oct 2024 08:05:07 +0300 [thread overview] +Message-ID: <20241019-xtables-typos-v2-1-6b8b1735dc8e@0upti.me> (raw) + +These were added with the wrong family in 4cdc55e, which seems +to just have been a typo, but now ip6tables rules with --set-mark +don't work anymore, which is pretty bad. + +Fixes: 0bfcb7b71e73 ("netfilter: xtables: avoid NFPROTO_UNSPEC where needed") +Reviewed-by: Phil Sutter +Signed-off-by: Ilya Katsnelson +--- +Changes in v2: +- Fixed a typo in the commit message (that's karma). +- Replaced a reference to backport commit. +- Link to v1: https://lore.kernel.org/r/20241018-xtables-typos-v1-1-02a51789c0ec@0upti.me +--- + net/netfilter/xt_NFLOG.c | 2 +- + net/netfilter/xt_mark.c | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +--- a/net/netfilter/xt_NFLOG.c ++++ b/net/netfilter/xt_NFLOG.c +@@ -79,7 +79,7 @@ static struct xt_target nflog_tg_reg[] _ + { + .name = "NFLOG", + .revision = 0, +- .family = NFPROTO_IPV4, ++ .family = NFPROTO_IPV6, + .checkentry = nflog_tg_check, + .destroy = nflog_tg_destroy, + .target = nflog_tg, +--- a/net/netfilter/xt_mark.c ++++ b/net/netfilter/xt_mark.c +@@ -62,7 +62,7 @@ static struct xt_target mark_tg_reg[] __ + { + .name = "MARK", + .revision = 2, +- .family = NFPROTO_IPV4, ++ .family = NFPROTO_IPV6, + .target = mark_tg, + .targetsize = sizeof(struct xt_mark_tginfo2), + .me = THIS_MODULE, diff --git a/target/linux/generic/backport-6.6/835-v6.9-net-phy-add-support-for-PHY-LEDs-polarity-modes.patch b/target/linux/generic/backport-6.6/835-v6.9-net-phy-add-support-for-PHY-LEDs-polarity-modes.patch index 104f961c02..1fe0e3f890 100644 --- a/target/linux/generic/backport-6.6/835-v6.9-net-phy-add-support-for-PHY-LEDs-polarity-modes.patch +++ b/target/linux/generic/backport-6.6/835-v6.9-net-phy-add-support-for-PHY-LEDs-polarity-modes.patch @@ -28,7 +28,7 @@ Signed-off-by: Jakub Kicinski --- a/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c -@@ -3201,6 +3201,7 @@ static int of_phy_led(struct phy_device +@@ -3202,6 +3202,7 @@ static int of_phy_led(struct phy_device struct device *dev = &phydev->mdio.dev; struct led_init_data init_data = {}; struct led_classdev *cdev; @@ -36,7 +36,7 @@ Signed-off-by: Jakub Kicinski struct phy_led *phyled; u32 index; int err; -@@ -3218,6 +3219,21 @@ static int of_phy_led(struct phy_device +@@ -3219,6 +3220,21 @@ static int of_phy_led(struct phy_device if (index > U8_MAX) return -EINVAL; diff --git a/target/linux/generic/backport-6.6/841-v6.13-net-phy-support-active-high-property-for-PHY-LEDs.patch b/target/linux/generic/backport-6.6/841-v6.13-net-phy-support-active-high-property-for-PHY-LEDs.patch index 02706ccd3f..729a315623 100644 --- a/target/linux/generic/backport-6.6/841-v6.13-net-phy-support-active-high-property-for-PHY-LEDs.patch +++ b/target/linux/generic/backport-6.6/841-v6.13-net-phy-support-active-high-property-for-PHY-LEDs.patch @@ -19,7 +19,7 @@ Signed-off-by: Paolo Abeni --- a/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c -@@ -3219,11 +3219,17 @@ static int of_phy_led(struct phy_device +@@ -3220,11 +3220,17 @@ static int of_phy_led(struct phy_device if (index > U8_MAX) return -EINVAL; diff --git a/target/linux/generic/config-6.6 b/target/linux/generic/config-6.6 index a869d141a8..5403dbab9a 100644 --- a/target/linux/generic/config-6.6 +++ b/target/linux/generic/config-6.6 @@ -2288,6 +2288,7 @@ CONFIG_HARDEN_BRANCH_HISTORY=y # CONFIG_HID_MAGICMOUSE is not set # CONFIG_HID_MALTRON is not set # CONFIG_HID_MAYFLASH is not set +# CONFIG_HID_MCP2200 is not set # CONFIG_HID_MCP2221 is not set # CONFIG_HID_MEGAWORLD_FF is not set # CONFIG_HID_MICROSOFT is not set diff --git a/target/linux/generic/hack-6.6/645-netfilter-connmark-introduce-set-dscpmark.patch b/target/linux/generic/hack-6.6/645-netfilter-connmark-introduce-set-dscpmark.patch index 444f8edfea..bb802857d6 100644 --- a/target/linux/generic/hack-6.6/645-netfilter-connmark-introduce-set-dscpmark.patch +++ b/target/linux/generic/hack-6.6/645-netfilter-connmark-introduce-set-dscpmark.patch @@ -195,20 +195,37 @@ Signed-off-by: Kevin Darbyshire-Bryant return connmark_tg_shift(skb, info); } -@@ -167,6 +194,16 @@ static struct xt_target connmark_tg_reg[ - .targetsize = sizeof(struct xt_connmark_tginfo2), +@@ -168,6 +195,16 @@ static struct xt_target connmark_tg_reg[ .destroy = connmark_tg_destroy, .me = THIS_MODULE, + }, ++ { ++ .name = "CONNMARK", ++ .revision = 3, ++ .family = NFPROTO_IPV4, ++ .checkentry = connmark_tg_check, ++ .target = connmark_tg_v3, ++ .targetsize = sizeof(struct xt_connmark_tginfo3), ++ .destroy = connmark_tg_destroy, ++ .me = THIS_MODULE, + }, + #if IS_ENABLED(CONFIG_IP6_NF_IPTABLES) + { + .name = "CONNMARK", +@@ -189,6 +226,16 @@ static struct xt_target connmark_tg_reg[ + .destroy = connmark_tg_destroy, + .me = THIS_MODULE, + }, + { + .name = "CONNMARK", + .revision = 3, -+ .family = NFPROTO_UNSPEC, ++ .family = NFPROTO_IPV6, + .checkentry = connmark_tg_check, + .target = connmark_tg_v3, + .targetsize = sizeof(struct xt_connmark_tginfo3), + .destroy = connmark_tg_destroy, + .me = THIS_MODULE, - } ++ }, + #endif }; diff --git a/target/linux/generic/pending-6.6/710-bridge-add-knob-for-filtering-rx-tx-BPDU-pack.patch b/target/linux/generic/pending-6.6/710-bridge-add-knob-for-filtering-rx-tx-BPDU-pack.patch index 2e5d956437..96e1a19db4 100644 --- a/target/linux/generic/pending-6.6/710-bridge-add-knob-for-filtering-rx-tx-BPDU-pack.patch +++ b/target/linux/generic/pending-6.6/710-bridge-add-knob-for-filtering-rx-tx-BPDU-pack.patch @@ -161,7 +161,7 @@ Signed-off-by: Felix Fietkau struct rtnl_link { rtnl_doit_func doit; -@@ -4949,7 +4949,9 @@ int ndo_dflt_bridge_getlink(struct sk_bu +@@ -4978,7 +4978,9 @@ int ndo_dflt_bridge_getlink(struct sk_bu brport_nla_put_flag(skb, flags, mask, IFLA_BRPORT_MCAST_FLOOD, BR_MCAST_FLOOD) || brport_nla_put_flag(skb, flags, mask, diff --git a/target/linux/lantiq/patches-6.6/0001-MIPS-lantiq-add-pcie-driver.patch b/target/linux/lantiq/patches-6.6/0001-MIPS-lantiq-add-pcie-driver.patch index b796de9c11..3dd996bccc 100644 --- a/target/linux/lantiq/patches-6.6/0001-MIPS-lantiq-add-pcie-driver.patch +++ b/target/linux/lantiq/patches-6.6/0001-MIPS-lantiq-add-pcie-driver.patch @@ -5535,7 +5535,7 @@ Signed-off-by: John Crispin unsigned long type); --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h -@@ -1108,6 +1108,12 @@ +@@ -1110,6 +1110,12 @@ #define PCI_DEVICE_ID_SGI_IOC3 0x0003 #define PCI_DEVICE_ID_SGI_LITHIUM 0x1002 diff --git a/target/linux/mvebu/patches-6.6/903-drivers-hwmon-Add-the-IEI-WT61P803-PUZZLE-HWMON-driv.patch b/target/linux/mvebu/patches-6.6/903-drivers-hwmon-Add-the-IEI-WT61P803-PUZZLE-HWMON-driv.patch index d4a533917b..983434e666 100644 --- a/target/linux/mvebu/patches-6.6/903-drivers-hwmon-Add-the-IEI-WT61P803-PUZZLE-HWMON-driv.patch +++ b/target/linux/mvebu/patches-6.6/903-drivers-hwmon-Add-the-IEI-WT61P803-PUZZLE-HWMON-driv.patch @@ -26,7 +26,7 @@ Cc: Robert Marko --- a/drivers/hwmon/Kconfig +++ b/drivers/hwmon/Kconfig -@@ -783,6 +783,14 @@ config SENSORS_IBMPOWERNV +@@ -785,6 +785,14 @@ config SENSORS_IBMPOWERNV This driver can also be built as a module. If so, the module will be called ibmpowernv. diff --git a/target/linux/ramips/patches-6.6/840-serial-add-ugly-custom-baud-rate-hack.patch b/target/linux/ramips/patches-6.6/840-serial-add-ugly-custom-baud-rate-hack.patch index c21c286edf..663a9bfe7d 100644 --- a/target/linux/ramips/patches-6.6/840-serial-add-ugly-custom-baud-rate-hack.patch +++ b/target/linux/ramips/patches-6.6/840-serial-add-ugly-custom-baud-rate-hack.patch @@ -10,7 +10,7 @@ Signed-off-by: John Crispin --- a/drivers/tty/serial/serial_core.c +++ b/drivers/tty/serial/serial_core.c -@@ -480,6 +480,9 @@ uart_get_baud_rate(struct uart_port *por +@@ -482,6 +482,9 @@ uart_get_baud_rate(struct uart_port *por break; } diff --git a/target/linux/ramips/patches-6.6/850-awake-rt305x-dwc2-controller.patch b/target/linux/ramips/patches-6.6/850-awake-rt305x-dwc2-controller.patch index a08056d8d9..560a2efeac 100644 --- a/target/linux/ramips/patches-6.6/850-awake-rt305x-dwc2-controller.patch +++ b/target/linux/ramips/patches-6.6/850-awake-rt305x-dwc2-controller.patch @@ -1,6 +1,6 @@ --- a/drivers/usb/dwc2/platform.c +++ b/drivers/usb/dwc2/platform.c -@@ -493,6 +493,12 @@ static int dwc2_driver_probe(struct plat +@@ -481,6 +481,12 @@ static int dwc2_driver_probe(struct plat if (retval) return retval; diff --git a/target/linux/rockchip/patches-6.6/034-v6.7-usb-dwc3-add-optional-PHY-interface-clocks.patch b/target/linux/rockchip/patches-6.6/034-v6.7-usb-dwc3-add-optional-PHY-interface-clocks.patch index 0583b70f89..3ae1c54ef2 100644 --- a/target/linux/rockchip/patches-6.6/034-v6.7-usb-dwc3-add-optional-PHY-interface-clocks.patch +++ b/target/linux/rockchip/patches-6.6/034-v6.7-usb-dwc3-add-optional-PHY-interface-clocks.patch @@ -18,7 +18,7 @@ Signed-off-by: Greg Kroah-Hartman --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c -@@ -839,8 +839,20 @@ static int dwc3_clk_enable(struct dwc3 * +@@ -845,8 +845,20 @@ static int dwc3_clk_enable(struct dwc3 * if (ret) goto disable_ref_clk; @@ -39,7 +39,7 @@ Signed-off-by: Greg Kroah-Hartman disable_ref_clk: clk_disable_unprepare(dwc->ref_clk); disable_bus_clk: -@@ -850,6 +862,8 @@ disable_bus_clk: +@@ -856,6 +868,8 @@ disable_bus_clk: static void dwc3_clk_disable(struct dwc3 *dwc) { @@ -48,7 +48,7 @@ Signed-off-by: Greg Kroah-Hartman clk_disable_unprepare(dwc->susp_clk); clk_disable_unprepare(dwc->ref_clk); clk_disable_unprepare(dwc->bus_clk); -@@ -1878,6 +1892,20 @@ static int dwc3_get_clocks(struct dwc3 * +@@ -1884,6 +1898,20 @@ static int dwc3_get_clocks(struct dwc3 * } }