kernel: bump 6.6 to 6.6.70
authorJohn Audia <therealgraysky@proton.me>
Thu, 9 Jan 2025 13:54:54 +0000 (08:54 -0500)
committerRobert Marko <robimarko@gmail.com>
Fri, 10 Jan 2025 12:41:30 +0000 (13:41 +0100)
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.70

Removed upstreamed:
generic/backport-6.6/902-net-llc-reset-skb-transport_header.patch[1]
generic/pending-6.6/605-netfilter-nft_set_hash-unaligned-atomic-read-on-stru.patch[2]

All other patches automatically rebased.

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.70&id=0c896816aa193e6459fc947747e5753c06b395b9
2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.70&id=4f49349c1963e507aa37c1ec05178faeb0103959

Build system: x86/64
Build-tested: bcm27xx/bcm2712, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3
Run-tested: bcm27xx/bcm2712, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/17545
Signed-off-by: Robert Marko <robimarko@gmail.com>
39 files changed:
include/kernel-6.6
target/linux/airoha/patches-6.6/002-v6.11-i2c-mt7621-Add-Airoha-EN7581-i2c-support.patch
target/linux/airoha/patches-6.6/200-spinlock-extend-guard-with-spinlock_bh-variants.patch
target/linux/bcm27xx/patches-6.6/950-0061-Revert-Revert-xhci-add-quirk-for-host-controllers-th.patch
target/linux/bcm27xx/patches-6.6/950-0106-Add-support-for-all-the-downstream-rpi-sound-card-dr.patch
target/linux/bcm27xx/patches-6.6/950-0161-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch
target/linux/bcm27xx/patches-6.6/950-0162-usb-xhci-workaround-for-bogus-SET_DEQ_PENDING-endpoi.patch
target/linux/bcm27xx/patches-6.6/950-0163-usb-xhci-drop-and-add-the-endpoint-context-in-xhci_f.patch
target/linux/bcm27xx/patches-6.6/950-0481-xhci-Use-more-event-ring-segment-table-entries.patch
target/linux/bcm27xx/patches-6.6/950-0482-xhci-quirks-add-link-TRB-quirk-for-VL805.patch
target/linux/bcm27xx/patches-6.6/950-0484-usb-xhci-add-VLI_SS_BULK_OUT_BUG-quirk.patch
target/linux/bcm27xx/patches-6.6/950-0485-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch
target/linux/bcm27xx/patches-6.6/950-0519-usb-dwc3-Set-DMA-and-coherent-masks-early.patch
target/linux/bcm27xx/patches-6.6/950-0853-drivers-usb-dwc3-add-FS-LS-bus-instance-parkmode-dis.patch
target/linux/bcm27xx/patches-6.6/950-1261-mm-vmscan-Maintain-TLB-coherency-in-LRU-code.patch
target/linux/bcm27xx/patches-6.6/950-1359-usb-dwc3-core-add-support-for-setting-NAK-enhancemen.patch
target/linux/bcm27xx/patches-6.6/950-1361-drivers-usb-xhci-prevent-a-theoretical-race-on-non-c.patch
target/linux/bcm53xx/patches-6.6/180-usb-xhci-add-support-for-performing-fake-doorbell.patch
target/linux/generic/backport-6.6/600-v6.10-net-Remove-conditional-threaded-NAPI-wakeup-based-on.patch
target/linux/generic/backport-6.6/601-v6.10-net-Allow-to-use-SMP-threads-for-backlog-NAPI.patch
target/linux/generic/backport-6.6/602-v6.10-net-Use-backlog-NAPI-to-clean-up-the-defer_list.patch
target/linux/generic/backport-6.6/603-v6.10-net-Rename-rps_lock-to-backlog_lock.patch
target/linux/generic/backport-6.6/611-02-v6.11-net-Make-USO-depend-on-CSUM-offload.patch
target/linux/generic/backport-6.6/612-v6.9-net-get-stats64-if-device-if-driver-is-configured.patch
target/linux/generic/backport-6.6/700-v6.10-net-create-a-dummy-net_device-allocator.patch
target/linux/generic/backport-6.6/770-net-introduce-napi_is_scheduled-helper.patch
target/linux/generic/backport-6.6/900-v6.11-net-free_netdev-exit-earlier-if-dummy.patch
target/linux/generic/backport-6.6/902-net-llc-reset-skb-transport_header.patch [deleted file]
target/linux/generic/hack-6.6/901-debloat_sock_diag.patch
target/linux/generic/hack-6.6/902-debloat_proc.patch
target/linux/generic/pending-6.6/605-netfilter-nft_set_hash-unaligned-atomic-read-on-stru.patch [deleted file]
target/linux/generic/pending-6.6/630-packet_socket_type.patch
target/linux/generic/pending-6.6/681-net-remove-NETIF_F_GSO_FRAGLIST-from-NETIF_F_GSO_SOF.patch
target/linux/lantiq/patches-6.6/0031-I2C-MIPS-lantiq-add-FALC-ON-i2c-bus-master.patch
target/linux/ramips/patches-6.6/810-uvc-add-iPassion-iP2970-support.patch
target/linux/ramips/patches-6.6/825-i2c-MIPS-adds-ralink-I2C-driver.patch
target/linux/realtek/patches-6.6/310-add-i2c-rtl9300-support.patch
target/linux/rockchip/patches-6.6/034-v6.7-usb-dwc3-add-optional-PHY-interface-clocks.patch
target/linux/starfive/patches-6.6/0109-usb-xhci-To-improve-performance-usb-using-lowmem-for.patch

index 6cee9d1e8cb034165180fe5b6b959d12e1025ac2..1cda04d0c587ef75d0bd8fff6ed21bfd68a8a3cd 100644 (file)
@@ -1,2 +1,2 @@
-LINUX_VERSION-6.6 = .69
-LINUX_KERNEL_HASH-6.6.69 = 9c6305567b75d99514cde6eb9de39973f3d5c857a75bd9dcdfca57041f8d4f34
+LINUX_VERSION-6.6 = .70
+LINUX_KERNEL_HASH-6.6.70 = 84d23ee07fb26febbcb6d1295ba15efdc67ac382b4137b2c8853146c10fd2f97
index 25eb475e2141875f9ac073839259e168ef4313b0..46c376e343d1b70554c21507e8497d3bbb3702a8 100644 (file)
@@ -16,7 +16,7 @@ Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
 
 --- a/drivers/i2c/busses/Kconfig
 +++ b/drivers/i2c/busses/Kconfig
-@@ -839,7 +839,7 @@ config I2C_MT65XX
+@@ -841,7 +841,7 @@ config I2C_MT65XX
  
  config I2C_MT7621
        tristate "MT7621/MT7628 I2C Controller"
index e613b69f81f304cb907877ebc38d7a783c872f13..d4905d5fff6fa125d40febc92c5ebb0a54377633 100644 (file)
@@ -12,9 +12,9 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
 
 --- a/include/linux/spinlock.h
 +++ b/include/linux/spinlock.h
-@@ -515,6 +515,10 @@ DEFINE_LOCK_GUARD_1(raw_spinlock_irq, ra
-                   raw_spin_lock_irq(_T->lock),
                  raw_spin_unlock_irq(_T->lock))
+@@ -519,6 +519,10 @@ DEFINE_LOCK_GUARD_1(raw_spinlock_irq, ra
DEFINE_LOCK_GUARD_1_COND(raw_spinlock_irq, _try, raw_spin_trylock_irq(_T->lock))
  
 +DEFINE_LOCK_GUARD_1(raw_spinlock_bh, raw_spinlock_t,
 +                  raw_spin_lock_bh(_T->lock),
@@ -23,9 +23,9 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
  DEFINE_LOCK_GUARD_1(raw_spinlock_irqsave, raw_spinlock_t,
                    raw_spin_lock_irqsave(_T->lock, _T->flags),
                    raw_spin_unlock_irqrestore(_T->lock, _T->flags),
-@@ -528,6 +532,10 @@ DEFINE_LOCK_GUARD_1(spinlock_irq, spinlo
                  spin_lock_irq(_T->lock),
-                   spin_unlock_irq(_T->lock))
+@@ -540,6 +544,10 @@ DEFINE_LOCK_GUARD_1(spinlock_irq, spinlo
DEFINE_LOCK_GUARD_1_COND(spinlock_irq, _try,
+                        spin_trylock_irq(_T->lock))
  
 +DEFINE_LOCK_GUARD_1(spinlock_bh, spinlock_t,
 +                  spin_lock_bh(_T->lock),
index f8aa2fe5a74b5299f7ae7bea394ffd1355edc235..7dc38f06117884b92c4f32789d8ec39d775712f9 100644 (file)
@@ -28,7 +28,7 @@ We don't agree with upstream revert so undo it.
                pdev->device == PCI_DEVICE_ID_ASMEDIA_1042_XHCI) {
 --- a/drivers/usb/host/xhci-ring.c
 +++ b/drivers/usb/host/xhci-ring.c
-@@ -633,8 +633,11 @@ static int xhci_move_dequeue_past_td(str
+@@ -634,8 +634,11 @@ static int xhci_move_dequeue_past_td(str
        struct xhci_ring *ep_ring;
        struct xhci_command *cmd;
        struct xhci_segment *new_seg;
@@ -40,7 +40,7 @@ We don't agree with upstream revert so undo it.
        dma_addr_t addr;
        u64 hw_dequeue;
        bool cycle_found = false;
-@@ -672,7 +675,27 @@ static int xhci_move_dequeue_past_td(str
+@@ -673,7 +676,27 @@ static int xhci_move_dequeue_past_td(str
        hw_dequeue = xhci_get_hw_deq(xhci, dev, ep_index, stream_id);
        new_seg = ep_ring->deq_seg;
        new_deq = ep_ring->dequeue;
index ecb7bffa025a7e50a82dd4e82bf952c07990d617..fe0e2275f10c34e13eeebd7ae1c4de52d708aa30 100644 (file)
@@ -17583,7 +17583,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
         * For devices with more than one control interface, we assume the
 --- a/sound/usb/quirks.c
 +++ b/sound/usb/quirks.c
-@@ -2247,6 +2247,8 @@ static const struct usb_audio_quirk_flag
+@@ -2249,6 +2249,8 @@ static const struct usb_audio_quirk_flag
                   QUIRK_FLAG_ALIGN_TRANSFER),
        DEVICE_FLG(0x534d, 0x2109, /* MacroSilicon MS2109 */
                   QUIRK_FLAG_ALIGN_TRANSFER),
index 942f47a0a36e083757a35b2ffbbebbad209b4fca..157fedf27080a8181d4833a7511064079ef96d2e 100644 (file)
@@ -15,7 +15,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
 
 --- a/drivers/usb/host/xhci.c
 +++ b/drivers/usb/host/xhci.c
-@@ -1497,6 +1497,109 @@ command_cleanup:
+@@ -1498,6 +1498,109 @@ command_cleanup:
  }
  
  /*
@@ -125,7 +125,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
   * non-error returns are a promise to giveback() the urb later
   * we drop ownership so next owner (or urb unlink) can get it
   */
-@@ -5347,6 +5450,7 @@ static const struct hc_driver xhci_hc_dr
+@@ -5360,6 +5463,7 @@ static const struct hc_driver xhci_hc_dr
        .endpoint_reset =       xhci_endpoint_reset,
        .check_bandwidth =      xhci_check_bandwidth,
        .reset_bandwidth =      xhci_reset_bandwidth,
index 32681a1bc4b0419de94474250caf6e1c1e55c28b..bae92863652b540bd1104e08f921e3b2024f788b 100644 (file)
@@ -26,7 +26,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
 
 --- a/drivers/usb/host/xhci-ring.c
 +++ b/drivers/usb/host/xhci-ring.c
-@@ -738,9 +738,9 @@ deq_found:
+@@ -739,9 +739,9 @@ deq_found:
        }
  
        if ((ep->ep_state & SET_DEQ_PENDING)) {
index 1e5bb6059d2762444ad2ff7fa9b602ead55fd1fc..70401f6e7b5aefffd3b6b99c4d8e76f4d82a9677 100644 (file)
@@ -19,7 +19,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
 
 --- a/drivers/usb/host/xhci.c
 +++ b/drivers/usb/host/xhci.c
-@@ -1586,7 +1586,7 @@ static void xhci_fixup_endpoint(struct u
+@@ -1587,7 +1587,7 @@ static void xhci_fixup_endpoint(struct u
                return;
        }
        ctrl_ctx->add_flags = xhci_get_endpoint_flag_from_index(ep_index);
index ff8c9223b5f5ba2e647fee1694e86c657c506b94..874725601c1dc790413214b3515cd5df8cf84a7e 100644 (file)
@@ -52,7 +52,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
        erst_base = xhci_read_64(xhci, &ir->ir_set->erst_base);
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1425,8 +1425,9 @@ struct urb_priv {
+@@ -1426,8 +1426,9 @@ struct urb_priv {
   * Each segment table entry is 4*32bits long.  1K seems like an ok size:
   * (1K bytes * 8bytes/bit) / (4*32 bits) = 64 segment entries in the table,
   * meaning 64 ring segments.
index 93e45b54424fad89179e5d83f2397bccd397fdc0..55479438800104244f5ccaf40e1ffc52002f8bef 100644 (file)
@@ -34,7 +34,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
        if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
 --- a/drivers/usb/host/xhci-ring.c
 +++ b/drivers/usb/host/xhci-ring.c
-@@ -728,6 +728,15 @@ static int xhci_move_dequeue_past_td(str
+@@ -729,6 +729,15 @@ static int xhci_move_dequeue_past_td(str
        } while (!cycle_found || !td_last_trb_found);
  
  deq_found:
@@ -52,7 +52,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
        addr = xhci_trb_virt_to_dma(new_seg, new_deq);
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1663,6 +1663,9 @@ struct xhci_hcd {
+@@ -1664,6 +1664,9 @@ struct xhci_hcd {
  #define XHCI_CDNS_SCTX_QUIRK  BIT_ULL(48)
  #define XHCI_ETRON_HOST       BIT_ULL(49)
  
index add65ee641de97fca80e206e6b456ed93c042647..a1e8f9ed222348cfd2b542559b152b97bb9a99f9 100644 (file)
@@ -100,7 +100,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
        if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1665,6 +1665,7 @@ struct xhci_hcd {
+@@ -1666,6 +1666,7 @@ struct xhci_hcd {
  
  /* Downstream VLI fixes */
  #define XHCI_AVOID_DQ_ON_LINK BIT_ULL(56)
index 9c45bd77e9a78959f843d03a39ec0f270c59ee5e..26abb99fe6ff92c5278e99a7f39c631c472ad0ef 100644 (file)
@@ -75,7 +75,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
        if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
 --- a/drivers/usb/host/xhci-ring.c
 +++ b/drivers/usb/host/xhci-ring.c
-@@ -3674,6 +3674,48 @@ static int xhci_align_td(struct xhci_hcd
+@@ -3714,6 +3714,48 @@ static int xhci_align_td(struct xhci_hcd
        return 1;
  }
  
@@ -124,7 +124,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
  /* This is very similar to what ehci-q.c qtd_fill() does */
  int xhci_queue_bulk_tx(struct xhci_hcd *xhci, gfp_t mem_flags,
                struct urb *urb, int slot_id, unsigned int ep_index)
-@@ -3830,6 +3872,8 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
+@@ -3870,6 +3912,8 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
        }
  
        check_trb_math(urb, enqd_len);
@@ -133,7 +133,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
        giveback_first_trb(xhci, slot_id, ep_index, urb->stream_id,
                        start_cycle, start_trb);
        return 0;
-@@ -3979,6 +4023,8 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
+@@ -4019,6 +4063,8 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
                        /* Event on completion */
                        field | TRB_IOC | TRB_TYPE(TRB_STATUS) | ep_ring->cycle_state);
  
@@ -144,7 +144,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
        return 0;
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1666,6 +1666,7 @@ struct xhci_hcd {
+@@ -1667,6 +1667,7 @@ struct xhci_hcd {
  /* Downstream VLI fixes */
  #define XHCI_AVOID_DQ_ON_LINK BIT_ULL(56)
  #define XHCI_VLI_SS_BULK_OUT_BUG      BIT_ULL(57)
index 551bfccc7508e107c4e7ebd23617be91d4cfe1bc..2448bd942a9ccefaafc6b5fdfef9cde9749e7ddb 100644 (file)
@@ -333,7 +333,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
  /* Global Debug LSP MUX Select */
  #define DWC3_GDBGLSPMUX_ENDBC         BIT(15) /* Host only */
  #define DWC3_GDBGLSPMUX_HOSTSELECT(n) ((n) & 0x3fff)
-@@ -1062,6 +1065,7 @@ struct dwc3_scratchpad_array {
+@@ -1066,6 +1069,7 @@ struct dwc3_scratchpad_array {
   * @tx_max_burst_prd: max periodic ESS transmit burst size
   * @tx_fifo_resize_max_num: max number of fifos allocated during txfifo resize
   * @clear_stall_protocol: endpoint number that requires a delayed status phase
@@ -341,7 +341,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
   * @hsphy_interface: "utmi" or "ulpi"
   * @connected: true when we're connected to a host, false otherwise
   * @softconnect: true when gadget connect is called, false when disconnect runs
-@@ -1299,6 +1303,7 @@ struct dwc3 {
+@@ -1303,6 +1307,7 @@ struct dwc3 {
        u8                      tx_max_burst_prd;
        u8                      tx_fifo_resize_max_num;
        u8                      clear_stall_protocol;
index 706baccdc722fbb63b5033c6c9308a6c1d7303f1..6eb5e5697f70dc14b338d07482804564f666c4df 100644 (file)
@@ -45,7 +45,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
  #define DWC3_GUCTL1_RESUME_OPMODE_HS_HOST     BIT(10)
  
  /* Global Status Register */
-@@ -1117,10 +1118,12 @@ struct dwc3_scratchpad_array {
+@@ -1121,10 +1122,12 @@ struct dwc3_scratchpad_array {
   *                    generation after resume from suspend.
   * @ulpi_ext_vbus_drv: Set to confiure the upli chip to drives CPEN pin
   *                    VBUS with an external supply.
@@ -62,7 +62,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
   * @tx_de_emphasis_quirk: set if we enable Tx de-emphasis quirk
   * @tx_de_emphasis: Tx de-emphasis value
   *    0       - -6dB de-emphasis
-@@ -1347,6 +1350,7 @@ struct dwc3 {
+@@ -1351,6 +1354,7 @@ struct dwc3 {
        unsigned                ulpi_ext_vbus_drv:1;
        unsigned                parkmode_disable_ss_quirk:1;
        unsigned                parkmode_disable_hs_quirk:1;
index 70ece97505c72fe753dd01202d1df848d6634b07..3c60865aa7fbf2853ab8a085f8042191b9d0b451 100644 (file)
@@ -16,7 +16,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
 
 --- a/mm/vmscan.c
 +++ b/mm/vmscan.c
-@@ -4716,7 +4716,7 @@ void lru_gen_look_around(struct page_vma
+@@ -4723,7 +4723,7 @@ void lru_gen_look_around(struct page_vma
                if (!folio)
                        continue;
  
index ed7dbb0e6c6d38eb930a1103a7020d89efcbf094..cb4f6deb39383a84d3dd9622dc687cb4a95fdf77 100644 (file)
@@ -57,7 +57,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
  #define DWC3_GUCTL1_PARKMODE_DISABLE_SS               BIT(17)
  #define DWC3_GUCTL1_PARKMODE_DISABLE_HS               BIT(16)
  #define DWC3_GUCTL1_PARKMODE_DISABLE_FSLS     BIT(15)
-@@ -1118,6 +1120,8 @@ struct dwc3_scratchpad_array {
+@@ -1122,6 +1124,8 @@ struct dwc3_scratchpad_array {
   *                    generation after resume from suspend.
   * @ulpi_ext_vbus_drv: Set to confiure the upli chip to drives CPEN pin
   *                    VBUS with an external supply.
@@ -66,7 +66,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
   * @parkmode_disable_ss_quirk: If set, disable park mode feature for all
   *                    Superspeed instances.
   * @parkmode_disable_hs_quirk: If set, disable park mode feature for all
-@@ -1348,6 +1352,8 @@ struct dwc3 {
+@@ -1352,6 +1356,8 @@ struct dwc3 {
        unsigned                dis_tx_ipgap_linecheck_quirk:1;
        unsigned                resume_hs_terminations:1;
        unsigned                ulpi_ext_vbus_drv:1;
index d3ea1041c2a47b2e84b71773a0f0bdd28f4ebba5..c2f37a0fc1fdd158be64f637a1a4aed9bad67db2 100644 (file)
@@ -28,7 +28,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
 
 --- a/drivers/usb/host/xhci-ring.c
 +++ b/drivers/usb/host/xhci-ring.c
-@@ -505,6 +505,19 @@ void xhci_ring_ep_doorbell(struct xhci_h
+@@ -506,6 +506,19 @@ void xhci_ring_ep_doorbell(struct xhci_h
  
        trace_xhci_ring_ep_doorbell(slot_id, DB_VALUE(ep_index, stream_id));
  
index 7ac12a290f68221362932177943c7951cafb1f47..aef84351482e954960d6225afc5f0e988b3f3137 100644 (file)
@@ -35,7 +35,7 @@ it on BCM4708 family.
  /* called during probe() after chip reset completes */
 --- a/drivers/usb/host/xhci.c
 +++ b/drivers/usb/host/xhci.c
-@@ -161,6 +161,49 @@ int xhci_start(struct xhci_hcd *xhci)
+@@ -162,6 +162,49 @@ int xhci_start(struct xhci_hcd *xhci)
        return ret;
  }
  
@@ -85,7 +85,7 @@ it on BCM4708 family.
  /*
   * Reset a halted HC.
   *
-@@ -480,6 +523,15 @@ static int xhci_run_finished(struct xhci
+@@ -481,6 +524,15 @@ static int xhci_run_finished(struct xhci
                return -ENODEV;
        }
  
@@ -103,7 +103,7 @@ it on BCM4708 family.
        if (xhci->quirks & XHCI_NEC_HOST)
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1661,6 +1661,7 @@ struct xhci_hcd {
+@@ -1662,6 +1662,7 @@ struct xhci_hcd {
  #define XHCI_WRITE_64_HI_LO   BIT_ULL(47)
  #define XHCI_CDNS_SCTX_QUIRK  BIT_ULL(48)
  #define XHCI_ETRON_HOST       BIT_ULL(49)
index 6ee4716c5cd0952adf7e57fe18bd3b32e1ca11f9..a6164c82389f0d783f1b50cd4fda837639e41a5d 100644 (file)
@@ -32,7 +32,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
 
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -4481,13 +4481,7 @@ static inline void ____napi_schedule(str
+@@ -4483,13 +4483,7 @@ static inline void ____napi_schedule(str
                 */
                thread = READ_ONCE(napi->thread);
                if (thread) {
@@ -47,7 +47,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
                        wake_up_process(thread);
                        return;
                }
-@@ -6643,8 +6637,6 @@ static int napi_poll(struct napi_struct
+@@ -6645,8 +6639,6 @@ static int napi_poll(struct napi_struct
  
  static int napi_thread_wait(struct napi_struct *napi)
  {
@@ -56,7 +56,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        set_current_state(TASK_INTERRUPTIBLE);
  
        while (!kthread_should_stop()) {
-@@ -6653,15 +6645,13 @@ static int napi_thread_wait(struct napi_
+@@ -6655,15 +6647,13 @@ static int napi_thread_wait(struct napi_
                 * Testing SCHED bit is not enough because SCHED bit might be
                 * set by some other busy poll thread or by napi_disable().
                 */
index 8c0b41f37b33ff627ee5d8cea2bfc310a9cba9a1..b3729e8b6c0a5d4f77b97b9cc3fde5eca2800acf 100644 (file)
@@ -108,7 +108,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  static inline void rps_lock_irqsave(struct softnet_data *sd,
                                    unsigned long *flags)
  {
-@@ -4449,6 +4475,7 @@ EXPORT_SYMBOL(__dev_direct_xmit);
+@@ -4451,6 +4477,7 @@ EXPORT_SYMBOL(__dev_direct_xmit);
  /*************************************************************************
   *                    Receiver routines
   *************************************************************************/
@@ -116,7 +116,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  
  int netdev_max_backlog __read_mostly = 1000;
  EXPORT_SYMBOL(netdev_max_backlog);
-@@ -4481,12 +4508,16 @@ static inline void ____napi_schedule(str
+@@ -4483,12 +4510,16 @@ static inline void ____napi_schedule(str
                 */
                thread = READ_ONCE(napi->thread);
                if (thread) {
@@ -133,7 +133,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        list_add_tail(&napi->poll_list, &sd->poll_list);
        WRITE_ONCE(napi->list_owner, smp_processor_id());
        /* If not called from net_rx_action()
-@@ -4732,6 +4763,11 @@ static void napi_schedule_rps(struct sof
+@@ -4734,6 +4765,11 @@ static void napi_schedule_rps(struct sof
  
  #ifdef CONFIG_RPS
        if (sd != mysd) {
@@ -145,7 +145,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
                sd->rps_ipi_next = mysd->rps_ipi_list;
                mysd->rps_ipi_list = sd;
  
-@@ -5955,7 +5991,7 @@ static void net_rps_action_and_irq_enabl
+@@ -5957,7 +5993,7 @@ static void net_rps_action_and_irq_enabl
  #ifdef CONFIG_RPS
        struct softnet_data *remsd = sd->rps_ipi_list;
  
@@ -154,7 +154,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
                sd->rps_ipi_list = NULL;
  
                local_irq_enable();
-@@ -5970,7 +6006,7 @@ static void net_rps_action_and_irq_enabl
+@@ -5972,7 +6008,7 @@ static void net_rps_action_and_irq_enabl
  static bool sd_has_rps_ipi_waiting(struct softnet_data *sd)
  {
  #ifdef CONFIG_RPS
@@ -163,7 +163,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  #else
        return false;
  #endif
-@@ -6014,7 +6050,7 @@ static int process_backlog(struct napi_s
+@@ -6016,7 +6052,7 @@ static int process_backlog(struct napi_s
                         * We can use a plain write instead of clear_bit(),
                         * and we dont need an smp_mb() memory barrier.
                         */
@@ -172,7 +172,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
                        again = false;
                } else {
                        skb_queue_splice_tail_init(&sd->input_pkt_queue,
-@@ -6680,43 +6716,48 @@ static void skb_defer_free_flush(struct
+@@ -6682,43 +6718,48 @@ static void skb_defer_free_flush(struct
        }
  }
  
@@ -250,7 +250,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        return 0;
  }
  
-@@ -11297,7 +11338,7 @@ static int dev_cpu_dead(unsigned int old
+@@ -11299,7 +11340,7 @@ static int dev_cpu_dead(unsigned int old
  
                list_del_init(&napi->poll_list);
                if (napi->poll == process_backlog)
@@ -259,7 +259,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
                else
                        ____napi_schedule(sd, napi);
        }
-@@ -11305,12 +11346,14 @@ static int dev_cpu_dead(unsigned int old
+@@ -11307,12 +11348,14 @@ static int dev_cpu_dead(unsigned int old
        raise_softirq_irqoff(NET_TX_SOFTIRQ);
        local_irq_enable();
  
@@ -278,7 +278,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  
        /* Process offline CPU's input_pkt_queue */
        while ((skb = __skb_dequeue(&oldsd->process_queue))) {
-@@ -11573,6 +11616,38 @@ static struct pernet_operations __net_in
+@@ -11575,6 +11618,38 @@ static struct pernet_operations __net_in
   *
   */
  
@@ -317,7 +317,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  /*
   *       This is called single threaded during boot, so no need
   *       to take the rtnl semaphore.
-@@ -11623,7 +11698,10 @@ static int __init net_dev_init(void)
+@@ -11625,7 +11700,10 @@ static int __init net_dev_init(void)
                init_gro_hash(&sd->backlog);
                sd->backlog.poll = process_backlog;
                sd->backlog.weight = weight_p;
index 3fcc72e589532cade731e35b2a35f29665841fb0..82b83552d37b81b064eb7ae5e895ede0e6cf761e 100644 (file)
@@ -82,7 +82,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
                spin_unlock_irq(&sd->input_pkt_queue.lock);
        else if (!IS_ENABLED(CONFIG_PREEMPT_RT))
                local_irq_enable();
-@@ -4782,6 +4782,23 @@ static void napi_schedule_rps(struct sof
+@@ -4784,6 +4784,23 @@ static void napi_schedule_rps(struct sof
        __napi_schedule_irqoff(&mysd->backlog);
  }
  
index 056bd5686eaff18d769e9c7804a393847446339f..a6199cd2500efb2031199b2002e47abded7aad75 100644 (file)
@@ -67,7 +67,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  {
        if (IS_ENABLED(CONFIG_RPS) || use_backlog_threads())
                spin_unlock_irq(&sd->input_pkt_queue.lock);
-@@ -4787,12 +4787,12 @@ void kick_defer_list_purge(struct softne
+@@ -4789,12 +4789,12 @@ void kick_defer_list_purge(struct softne
        unsigned long flags;
  
        if (use_backlog_threads()) {
@@ -82,7 +82,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  
        } else if (!cmpxchg(&sd->defer_ipi_scheduled, 0, 1)) {
                smp_call_function_single_async(cpu, &sd->defer_csd);
-@@ -4854,7 +4854,7 @@ static int enqueue_to_backlog(struct sk_
+@@ -4856,7 +4856,7 @@ static int enqueue_to_backlog(struct sk_
        reason = SKB_DROP_REASON_NOT_SPECIFIED;
        sd = &per_cpu(softnet_data, cpu);
  
@@ -91,7 +91,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        if (!netif_running(skb->dev))
                goto drop;
        qlen = skb_queue_len(&sd->input_pkt_queue);
-@@ -4863,7 +4863,7 @@ static int enqueue_to_backlog(struct sk_
+@@ -4865,7 +4865,7 @@ static int enqueue_to_backlog(struct sk_
  enqueue:
                        __skb_queue_tail(&sd->input_pkt_queue, skb);
                        input_queue_tail_incr_save(sd, qtail);
@@ -100,7 +100,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
                        return NET_RX_SUCCESS;
                }
  
-@@ -4878,7 +4878,7 @@ enqueue:
+@@ -4880,7 +4880,7 @@ enqueue:
  
  drop:
        sd->dropped++;
@@ -109,7 +109,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  
        dev_core_stats_rx_dropped_inc(skb->dev);
        kfree_skb_reason(skb, reason);
-@@ -5909,7 +5909,7 @@ static void flush_backlog(struct work_st
+@@ -5911,7 +5911,7 @@ static void flush_backlog(struct work_st
        local_bh_disable();
        sd = this_cpu_ptr(&softnet_data);
  
@@ -118,7 +118,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        skb_queue_walk_safe(&sd->input_pkt_queue, skb, tmp) {
                if (skb->dev->reg_state == NETREG_UNREGISTERING) {
                        __skb_unlink(skb, &sd->input_pkt_queue);
-@@ -5917,7 +5917,7 @@ static void flush_backlog(struct work_st
+@@ -5919,7 +5919,7 @@ static void flush_backlog(struct work_st
                        input_queue_head_incr(sd);
                }
        }
@@ -127,7 +127,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  
        skb_queue_walk_safe(&sd->process_queue, skb, tmp) {
                if (skb->dev->reg_state == NETREG_UNREGISTERING) {
-@@ -5935,14 +5935,14 @@ static bool flush_required(int cpu)
+@@ -5937,14 +5937,14 @@ static bool flush_required(int cpu)
        struct softnet_data *sd = &per_cpu(softnet_data, cpu);
        bool do_flush;
  
@@ -144,7 +144,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  
        return do_flush;
  #endif
-@@ -6057,7 +6057,7 @@ static int process_backlog(struct napi_s
+@@ -6059,7 +6059,7 @@ static int process_backlog(struct napi_s
  
                }
  
@@ -153,7 +153,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
                if (skb_queue_empty(&sd->input_pkt_queue)) {
                        /*
                         * Inline a custom version of __napi_complete().
-@@ -6073,7 +6073,7 @@ static int process_backlog(struct napi_s
+@@ -6075,7 +6075,7 @@ static int process_backlog(struct napi_s
                        skb_queue_splice_tail_init(&sd->input_pkt_queue,
                                                   &sd->process_queue);
                }
index 42aff7f0afc1ee40f09568a08ce1dfdfff9f5d20..6b5272d583f97dfa74121bcbb2fa1c6a4bfb5607 100644 (file)
@@ -20,7 +20,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
 
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -9759,6 +9759,15 @@ static void netdev_sync_lower_features(s
+@@ -9761,6 +9761,15 @@ static void netdev_sync_lower_features(s
        }
  }
  
@@ -36,7 +36,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  static netdev_features_t netdev_fix_features(struct net_device *dev,
        netdev_features_t features)
  {
-@@ -9840,15 +9849,9 @@ static netdev_features_t netdev_fix_feat
+@@ -9842,15 +9851,9 @@ static netdev_features_t netdev_fix_feat
                features &= ~NETIF_F_LRO;
        }
  
@@ -55,7 +55,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        }
  
        if ((features & NETIF_F_HW_TLS_RX) && !(features & NETIF_F_RXCSUM)) {
-@@ -9856,6 +9859,11 @@ static netdev_features_t netdev_fix_feat
+@@ -9858,6 +9861,11 @@ static netdev_features_t netdev_fix_feat
                features &= ~NETIF_F_HW_TLS_RX;
        }
  
index d72882dbb6829b64e5480f4e6c85574d5bd077a1..8f2c26d654334490ce3da43fb19571f693e5de43 100644 (file)
@@ -18,7 +18,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
 
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -10666,6 +10666,8 @@ struct rtnl_link_stats64 *dev_get_stats(
+@@ -10668,6 +10668,8 @@ struct rtnl_link_stats64 *dev_get_stats(
                ops->ndo_get_stats64(dev, storage);
        } else if (ops->ndo_get_stats) {
                netdev_stats_to_stats64(storage, ops->ndo_get_stats(dev));
index 3f48a8c34a93386af6ba9b7223294cb0164814f5..c8b4ccc3004f7216cdb468ddc1710c1e63d5ead8 100644 (file)
@@ -49,7 +49,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
                                    unsigned char name_assign_type,
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -10353,25 +10353,12 @@ err_free_name:
+@@ -10355,25 +10355,12 @@ err_free_name:
  }
  EXPORT_SYMBOL(register_netdevice);
  
@@ -79,7 +79,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        /* make sure we BUG if trying to hit standard
         * register/unregister code path
         */
-@@ -10391,12 +10378,32 @@ int init_dummy_netdev(struct net_device
+@@ -10393,12 +10380,32 @@ int init_dummy_netdev(struct net_device
         * because users of this 'device' dont need to change
         * its refcount.
         */
@@ -113,7 +113,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  /**
   *    register_netdev - register a network device
   *    @dev: device to register
-@@ -10990,6 +10997,19 @@ void free_netdev(struct net_device *dev)
+@@ -10992,6 +10999,19 @@ void free_netdev(struct net_device *dev)
  EXPORT_SYMBOL(free_netdev);
  
  /**
index d7b2b275067fb87eaee88fa278f8a820cf6a167b..2bf136e18a32062462e67712ac2ed85375b31549 100644 (file)
@@ -85,7 +85,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  /**
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -6610,7 +6610,7 @@ static int __napi_poll(struct napi_struc
+@@ -6612,7 +6612,7 @@ static int __napi_poll(struct napi_struc
         * accidentally calling ->poll() when NAPI is not scheduled.
         */
        work = 0;
index 21db87419ee970394bc36029efe6da0b4ef742a1..5f7210812fb9989448b90904e2b0177d0034d573 100644 (file)
@@ -23,7 +23,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
 
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -10983,7 +10983,8 @@ void free_netdev(struct net_device *dev)
+@@ -10985,7 +10985,8 @@ void free_netdev(struct net_device *dev)
        dev->xdp_bulkq = NULL;
  
        /*  Compatibility with error handling in drivers */
diff --git a/target/linux/generic/backport-6.6/902-net-llc-reset-skb-transport_header.patch b/target/linux/generic/backport-6.6/902-net-llc-reset-skb-transport_header.patch
deleted file mode 100644 (file)
index b1f0b8f..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-From a024e377efed31ecfb39210bed562932321345b3 Mon Sep 17 00:00:00 2001
-From: Antonio Pastor <antonio.pastor@gmail.com>
-Date: Tue, 24 Dec 2024 20:07:20 -0500
-Subject: [PATCH] net: llc: reset skb->transport_header
-
-802.2+LLC+SNAP frames received by napi_complete_done with GRO and DSA
-have skb->transport_header set two bytes short, or pointing 2 bytes
-before network_header & skb->data. As snap_rcv expects transport_header
-to point to SNAP header (OID:PID) after LLC processing advances offset
-over LLC header (llc_rcv & llc_fixup_skb), code doesn't find a match
-and packet is dropped.
-
-Between napi_complete_done and snap_rcv, transport_header is not used
-until __netif_receive_skb_core, where originally it was being reset.
-Commit fda55eca5a33 ("net: introduce skb_transport_header_was_set()")
-only does so if not set, on the assumption the value was set correctly
-by GRO (and also on assumption that "network stacks usually reset the
-transport header anyway"). Afterwards it is moved forward by
-llc_fixup_skb.
-
-Locally generated traffic shows up at __netif_receive_skb_core with no
-transport_header set and is processed without issue. On a setup with
-GRO but no DSA, transport_header and network_header are both set to
-point to skb->data which is also correct.
-
-As issue is LLC specific, to avoid impacting non-LLC traffic, and to
-follow up on original assumption made on previous code change,
-llc_fixup_skb to reset the offset after skb pull. llc_fixup_skb
-assumes the LLC header is at skb->data, and by definition SNAP header
-immediately follows.
-
-Fixes: fda55eca5a33 ("net: introduce skb_transport_header_was_set()")
-Signed-off-by: Antonio Pastor <antonio.pastor@gmail.com>
-Reviewed-by: Eric Dumazet <edumazet@google.com>
-Link: https://patch.msgid.link/20241225010723.2830290-1-antonio.pastor@gmail.com
-Signed-off-by: Jakub Kicinski <kuba@kernel.org>
----
- net/llc/llc_input.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/net/llc/llc_input.c
-+++ b/net/llc/llc_input.c
-@@ -124,8 +124,8 @@ static inline int llc_fixup_skb(struct s
-       if (unlikely(!pskb_may_pull(skb, llc_len)))
-               return 0;
--      skb->transport_header += llc_len;
-       skb_pull(skb, llc_len);
-+      skb_reset_transport_header(skb);
-       if (skb->protocol == htons(ETH_P_802_2)) {
-               __be16 pdulen;
-               s32 data_size;
index 4b1ea3c5ad932fce5803d3e5cb0d05eae568ee5d..c0ba6c008e83e5b1621a66b2b28dea25df70fbb6 100644 (file)
@@ -83,7 +83,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  INDIRECT_CALLABLE_DECLARE(struct dst_entry *ip6_dst_check(struct dst_entry *,
                                                          u32));
  INDIRECT_CALLABLE_DECLARE(struct dst_entry *ipv4_dst_check(struct dst_entry *,
-@@ -2239,9 +2256,11 @@ static void __sk_free(struct sock *sk)
+@@ -2242,9 +2259,11 @@ static void __sk_free(struct sock *sk)
        if (likely(sk->sk_net_refcnt))
                sock_inuse_add(sock_net(sk), -1);
  
index 549850700769075b5311d7ed3057511f50977515..8a2f3330abf9fc1d51dc7c6c1d0b30fe9ac6c29b 100644 (file)
@@ -330,7 +330,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
 --- a/net/core/sock.c
 +++ b/net/core/sock.c
-@@ -4140,6 +4140,8 @@ static __net_initdata struct pernet_oper
+@@ -4143,6 +4143,8 @@ static __net_initdata struct pernet_oper
  
  static int __init proto_init(void)
  {
diff --git a/target/linux/generic/pending-6.6/605-netfilter-nft_set_hash-unaligned-atomic-read-on-stru.patch b/target/linux/generic/pending-6.6/605-netfilter-nft_set_hash-unaligned-atomic-read-on-stru.patch
deleted file mode 100644 (file)
index 61e1632..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-From 113fb8a8d1f27156f58b27ce0fc02af9b3705bf7 Mon Sep 17 00:00:00 2001
-From: Pablo Neira Ayuso <pablo@netfilter.org>
-Date: Sun, 22 Dec 2024 11:02:39 +0100
-Subject: [PATCH] netfilter: nft_set_hash: unaligned atomic read on struct
- nft_set_ext
-
-Access to genmask field in struct nft_set_ext results in unaligned
-atomic read:
-
-[   72.130109] Unable to handle kernel paging request at virtual address ffff0000c2bb708c
-[   72.131036] Mem abort info:
-[   72.131213]   ESR = 0x0000000096000021
-[   72.131446]   EC = 0x25: DABT (current EL), IL = 32 bits
-[   72.132209]   SET = 0, FnV = 0
-[   72.133216]   EA = 0, S1PTW = 0
-[   72.134080]   FSC = 0x21: alignment fault
-[   72.135593] Data abort info:
-[   72.137194]   ISV = 0, ISS = 0x00000021, ISS2 = 0x00000000
-[   72.142351]   CM = 0, WnR = 0, TnD = 0, TagAccess = 0
-[   72.145989]   GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0
-[   72.150115] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000237d27000
-[   72.154893] [ffff0000c2bb708c] pgd=0000000000000000, p4d=180000023ffff403, pud=180000023f84b403, pmd=180000023f835403,
-+pte=0068000102bb7707
-[   72.163021] Internal error: Oops: 0000000096000021 [#1] SMP
-[...]
-[   72.170041] CPU: 7 UID: 0 PID: 54 Comm: kworker/7:0 Tainted: G            E      6.13.0-rc3+ #2
-[   72.170509] Tainted: [E]=UNSIGNED_MODULE
-[   72.170720] Hardware name: QEMU QEMU Virtual Machine, BIOS edk2-stable202302-for-qemu 03/01/2023
-[   72.171192] Workqueue: events_power_efficient nft_rhash_gc [nf_tables]
-[   72.171552] pstate: 21400005 (nzCv daif +PAN -UAO -TCO +DIT -SSBS BTYPE=--)
-[   72.171915] pc : nft_rhash_gc+0x200/0x2d8 [nf_tables]
-[   72.172166] lr : nft_rhash_gc+0x128/0x2d8 [nf_tables]
-[   72.172546] sp : ffff800081f2bce0
-[   72.172724] x29: ffff800081f2bd40 x28: ffff0000c2bb708c x27: 0000000000000038
-[   72.173078] x26: ffff0000c6780ef0 x25: ffff0000c643df00 x24: ffff0000c6778f78
-[   72.173431] x23: 000000000000001a x22: ffff0000c4b1f000 x21: ffff0000c6780f78
-[   72.173782] x20: ffff0000c2bb70dc x19: ffff0000c2bb7080 x18: 0000000000000000
-[   72.174135] x17: ffff0000c0a4e1c0 x16: 0000000000003000 x15: 0000ac26d173b978
-[   72.174485] x14: ffffffffffffffff x13: 0000000000000030 x12: ffff0000c6780ef0
-[   72.174841] x11: 0000000000000000 x10: ffff800081f2bcf8 x9 : ffff0000c3000000
-[   72.175193] x8 : 00000000000004be x7 : 0000000000000000 x6 : 0000000000000000
-[   72.175544] x5 : 0000000000000040 x4 : ffff0000c3000010 x3 : 0000000000000000
-[   72.175871] x2 : 0000000000003a98 x1 : ffff0000c2bb708c x0 : 0000000000000004
-[   72.176207] Call trace:
-[   72.176316]  nft_rhash_gc+0x200/0x2d8 [nf_tables] (P)
-[   72.176653]  process_one_work+0x178/0x3d0
-[   72.176831]  worker_thread+0x200/0x3f0
-[   72.176995]  kthread+0xe8/0xf8
-[   72.177130]  ret_from_fork+0x10/0x20
-[   72.177289] Code: 54fff984 d503201f d2800080 91003261 (f820303f)
-[   72.177557] ---[ end trace 0000000000000000 ]---
-
-Align struct nft_set_ext to word size to address this and
-documentation it.
-
-pahole reports that this increases the size of elements for rhash and
-pipapo in 8 bytes on x86_64.
-
-Fixes: 7ffc7481153b ("netfilter: nft_set_hash: skip duplicated elements pending gc run")
-Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
----
- include/net/netfilter/nf_tables.h | 7 +++++--
- 1 file changed, 5 insertions(+), 2 deletions(-)
-
---- a/include/net/netfilter/nf_tables.h
-+++ b/include/net/netfilter/nf_tables.h
-@@ -721,15 +721,18 @@ struct nft_set_ext_tmpl {
- /**
-  *    struct nft_set_ext - set extensions
-  *
-- *    @genmask: generation mask
-+ *    @genmask: generation mask, but also flags (see NFT_SET_ELEM_DEAD_BIT)
-  *    @offset: offsets of individual extension types
-  *    @data: beginning of extension data
-+ *
-+ *    This structure must be aligned to word size, otherwise atomic bitops
-+ *    on genmask field can cause aligment failure on some archs.
-  */
- struct nft_set_ext {
-       u8      genmask;
-       u8      offset[NFT_SET_EXT_NUM];
-       char    data[];
--};
-+} __aligned(BITS_PER_LONG / 8);
- static inline void nft_set_ext_prepare(struct nft_set_ext_tmpl *tmpl)
- {
index 2b753efa6736cd0a3cfe283fd26194420ad02392..f5c15756c5eab96830e458f36df07a5c77b25d97 100644 (file)
@@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  #define PACKET_FANOUT_LB              1
 --- a/net/packet/af_packet.c
 +++ b/net/packet/af_packet.c
-@@ -1925,6 +1925,7 @@ static int packet_rcv_spkt(struct sk_buf
+@@ -1911,6 +1911,7 @@ static int packet_rcv_spkt(struct sk_buf
  {
        struct sock *sk;
        struct sockaddr_pkt *spkt;
@@ -38,7 +38,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
        /*
         *      When we registered the protocol we saved the socket in the data
-@@ -1932,6 +1933,7 @@ static int packet_rcv_spkt(struct sk_buf
+@@ -1918,6 +1919,7 @@ static int packet_rcv_spkt(struct sk_buf
         */
  
        sk = pt->af_packet_priv;
@@ -46,7 +46,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
        /*
         *      Yank back the headers [hope the device set this
-@@ -1944,7 +1946,7 @@ static int packet_rcv_spkt(struct sk_buf
+@@ -1930,7 +1932,7 @@ static int packet_rcv_spkt(struct sk_buf
         *      so that this procedure is noop.
         */
  
@@ -55,7 +55,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                goto out;
  
        if (!net_eq(dev_net(dev), sock_net(sk)))
-@@ -2190,12 +2192,12 @@ static int packet_rcv(struct sk_buff *sk
+@@ -2176,12 +2178,12 @@ static int packet_rcv(struct sk_buff *sk
        unsigned int snaplen, res;
        bool is_drop_n_account = false;
  
@@ -71,7 +71,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        if (!net_eq(dev_net(dev), sock_net(sk)))
                goto drop;
  
-@@ -2322,12 +2324,12 @@ static int tpacket_rcv(struct sk_buff *s
+@@ -2308,12 +2310,12 @@ static int tpacket_rcv(struct sk_buff *s
        BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h2)) != 32);
        BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h3)) != 48);
  
@@ -87,7 +87,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        if (!net_eq(dev_net(dev), sock_net(sk)))
                goto drop;
  
-@@ -3451,6 +3453,7 @@ static int packet_create(struct net *net
+@@ -3437,6 +3439,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 <nbd@nbd.name>
  
        if (sock->type == SOCK_PACKET)
                po->prot_hook.func = packet_rcv_spkt;
-@@ -4118,6 +4121,16 @@ packet_setsockopt(struct socket *sock, i
+@@ -4104,6 +4107,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 <nbd@nbd.name>
        default:
                return -ENOPROTOOPT;
        }
-@@ -4177,6 +4190,13 @@ static int packet_getsockopt(struct sock
+@@ -4163,6 +4176,13 @@ static int packet_getsockopt(struct sock
        case PACKET_VNET_HDR_SZ:
                val = READ_ONCE(po->vnet_hdr_sz);
                break;
index 97e321bfec13e9cc68466cbe9f9cc3f4ff7aaae4..58ccff247fb5c5fb2d83183731f5b705ff67b9ea 100644 (file)
@@ -96,7 +96,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        return features;
 --- a/net/core/sock.c
 +++ b/net/core/sock.c
-@@ -2441,7 +2441,7 @@ void sk_setup_caps(struct sock *sk, stru
+@@ -2444,7 +2444,7 @@ void sk_setup_caps(struct sock *sk, stru
        if (sk_is_tcp(sk))
                sk->sk_route_caps |= NETIF_F_GSO;
        if (sk->sk_route_caps & NETIF_F_GSO)
index 1f2f5139d60a131ade48a7377d508d0d7791b926..73eb59f1664d219ea52baa4ed6e47d1004deab31 100644 (file)
@@ -18,7 +18,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
 
 --- a/drivers/i2c/busses/Kconfig
 +++ b/drivers/i2c/busses/Kconfig
-@@ -817,6 +817,16 @@ config I2C_MICROCHIP_CORE
+@@ -819,6 +819,16 @@ config I2C_MICROCHIP_CORE
          This driver can also be built as a module. If so, the module will be
          called i2c-microchip-core.
  
index c98aaf9442bb7d34749c01c57fa1ddaa3a56303e..a01911b1f4eb9649928ce9f696cbb66e3f5bcf38 100644 (file)
@@ -13,7 +13,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
 
 --- a/drivers/media/usb/uvc/uvc_driver.c
 +++ b/drivers/media/usb/uvc/uvc_driver.c
-@@ -3249,6 +3249,18 @@ static const struct usb_device_id uvc_id
+@@ -3271,6 +3271,18 @@ static const struct usb_device_id uvc_id
          .bInterfaceSubClass   = 1,
          .bInterfaceProtocol   = 0,
          .driver_info          = UVC_INFO_META(V4L2_META_FMT_D4XX) },
index c8cfb784ce5b327b6dd0d334b56da8797bb878a9..9755eeb777dc5bf8a45354f78d7cae0ffe83206d 100644 (file)
@@ -45,7 +45,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
 +};
 --- a/drivers/i2c/busses/Kconfig
 +++ b/drivers/i2c/busses/Kconfig
-@@ -1021,6 +1021,11 @@ config I2C_RK3X
+@@ -1023,6 +1023,11 @@ config I2C_RK3X
          This driver can also be built as a module. If so, the module will
          be called i2c-rk3x.
  
index 71df91bdacb7a76c0bfd5e729b0888e8026551cb..9eaed95d0df74c85faaf67f77cbd105c3e0a0491 100644 (file)
@@ -17,7 +17,7 @@ Submitted-by: Birger Koblitz <git@birger-koblitz.de>
 
 --- a/drivers/i2c/busses/Kconfig
 +++ b/drivers/i2c/busses/Kconfig
-@@ -1021,6 +1021,16 @@ config I2C_RK3X
+@@ -1023,6 +1023,16 @@ config I2C_RK3X
          This driver can also be built as a module. If so, the module will
          be called i2c-rk3x.
  
index 00ca1d40139873e79ab6df7eadff6cc49cc873e3..d38d260ef17d7455079a857c024550880d122759 100644 (file)
@@ -71,7 +71,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  
 --- a/drivers/usb/dwc3/core.h
 +++ b/drivers/usb/dwc3/core.h
-@@ -998,6 +998,8 @@ struct dwc3_scratchpad_array {
+@@ -1002,6 +1002,8 @@ struct dwc3_scratchpad_array {
   * @bus_clk: clock for accessing the registers
   * @ref_clk: reference clock
   * @susp_clk: clock used when the SS phy is in low power (S3) state
@@ -80,7 +80,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
   * @reset: reset control
   * @regs: base address for our registers
   * @regs_size: address space size
-@@ -1170,6 +1172,8 @@ struct dwc3 {
+@@ -1174,6 +1176,8 @@ struct dwc3 {
        struct clk              *bus_clk;
        struct clk              *ref_clk;
        struct clk              *susp_clk;
index 847b8e20ff49a74f8917a9af7f00520a253498dc..4c1dfabd9e992b990ff2bf24e56ff39474baa696 100644 (file)
@@ -160,7 +160,7 @@ Signed-off-by: minda.chen <minda.chen@starfivetech.com>
        }
 --- a/drivers/usb/host/xhci-ring.c
 +++ b/drivers/usb/host/xhci-ring.c
-@@ -3667,7 +3667,8 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
+@@ -3707,7 +3707,8 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
  
        full_len = urb->transfer_buffer_length;
        /* If we have scatter/gather list, we use it. */
@@ -172,7 +172,7 @@ Signed-off-by: minda.chen <minda.chen@starfivetech.com>
                addr = (u64) sg_dma_address(sg);
 --- a/drivers/usb/host/xhci.c
 +++ b/drivers/usb/host/xhci.c
-@@ -18,6 +18,8 @@
+@@ -19,6 +19,8 @@
  #include <linux/slab.h>
  #include <linux/dmi.h>
  #include <linux/dma-mapping.h>
@@ -181,7 +181,7 @@ Signed-off-by: minda.chen <minda.chen@starfivetech.com>
  
  #include "xhci.h"
  #include "xhci-trace.h"
-@@ -1285,6 +1287,55 @@ static void xhci_unmap_temp_buf(struct u
+@@ -1286,6 +1288,55 @@ static void xhci_unmap_temp_buf(struct u
        urb->transfer_buffer = NULL;
  }
  
@@ -237,7 +237,7 @@ Signed-off-by: minda.chen <minda.chen@starfivetech.com>
  /*
   * Bypass the DMA mapping if URB is suitable for Immediate Transfer (IDT),
   * we'll copy the actual data into the TRB address register. This is limited to
-@@ -1305,9 +1356,11 @@ static int xhci_map_urb_for_dma(struct u
+@@ -1306,9 +1357,11 @@ static int xhci_map_urb_for_dma(struct u
                if (xhci_urb_temp_buffer_required(hcd, urb))
                        return xhci_map_temp_buffer(hcd, urb);
        }
@@ -249,7 +249,7 @@ Signed-off-by: minda.chen <minda.chen@starfivetech.com>
  static void xhci_unmap_urb_for_dma(struct usb_hcd *hcd, struct urb *urb)
  {
        struct xhci_hcd *xhci;
-@@ -1320,8 +1373,10 @@ static void xhci_unmap_urb_for_dma(struc
+@@ -1321,8 +1374,10 @@ static void xhci_unmap_urb_for_dma(struc
  
        if ((xhci->quirks & XHCI_SG_TRB_CACHE_SIZE_QUIRK) && unmap_temp_buf)
                xhci_unmap_temp_buf(hcd, urb);
@@ -263,7 +263,7 @@ Signed-off-by: minda.chen <minda.chen@starfivetech.com>
  /**
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1508,6 +1508,13 @@ struct xhci_hub {
+@@ -1509,6 +1509,13 @@ struct xhci_hub {
        u8                      min_rev;
  };
  
@@ -277,7 +277,7 @@ Signed-off-by: minda.chen <minda.chen@starfivetech.com>
  /* There is one xhci_hcd structure per controller */
  struct xhci_hcd {
        struct usb_hcd *main_hcd;
-@@ -1662,6 +1669,8 @@ struct xhci_hcd {
+@@ -1663,6 +1670,8 @@ struct xhci_hcd {
  #define XHCI_CDNS_SCTX_QUIRK  BIT_ULL(48)
  #define XHCI_ETRON_HOST       BIT_ULL(49)
  
@@ -286,7 +286,7 @@ Signed-off-by: minda.chen <minda.chen@starfivetech.com>
        unsigned int            num_active_eps;
        unsigned int            limit_active_eps;
        struct xhci_port        *hw_ports;
-@@ -1691,6 +1700,8 @@ struct xhci_hcd {
+@@ -1692,6 +1701,8 @@ struct xhci_hcd {
        struct list_head        regset_list;
  
        void                    *dbc;