kernel: bump 6.6 to 6.6.80
authorJohn Audia <therealgraysky@proton.me>
Thu, 27 Feb 2025 20:06:51 +0000 (15:06 -0500)
committerRobert Marko <robimarko@gmail.com>
Sun, 2 Mar 2025 10:39:59 +0000 (11:39 +0100)
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.80

Removed upstreamed:
generic/backport-6.6/819-v6.8-0002-nvmem-Create-a-header-for-internal-sharing.patch[1]
generic/backport-6.6/819-v6.8-0003-nvmem-Simplify-the-add_cells-hook.patch[2]
generic/backport-6.6/819-v6.8-0004-nvmem-Move-and-rename-fixup_cell_info.patch[3]

All other patches automatically rebased.

1. https://web.git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.80&id=39dfc17a38f77b14f7cb2619bd3488a18d797d5d
2. https://web.git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.80&id=276dae17ad9757c3813d9e736a0210f05ccdf8b7
3. https://web.git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.80&id=a0ee898a5024f12572e4ce45202df9b149dadc05

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/18140
Signed-off-by: Robert Marko <robimarko@gmail.com>
24 files changed:
include/kernel-6.6
target/linux/ath79/patches-6.6/900-unaligned_access_hacks.patch
target/linux/bcm27xx/patches-6.6/950-0025-drm-atomic-helpers-remove-legacy_cursor_update-hacks.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/816-v6.7-0004-Revert-nvmem-add-new-config-option.patch
target/linux/generic/backport-6.6/819-v6.8-0001-nvmem-Move-of_nvmem_layout_get_container-in-another-.patch
target/linux/generic/backport-6.6/819-v6.8-0002-nvmem-Create-a-header-for-internal-sharing.patch [deleted file]
target/linux/generic/backport-6.6/819-v6.8-0003-nvmem-Simplify-the-add_cells-hook.patch [deleted file]
target/linux/generic/backport-6.6/819-v6.8-0004-nvmem-Move-and-rename-fixup_cell_info.patch [deleted file]
target/linux/generic/backport-6.6/823-v6.12-0001-nvmem-imx-ocotp-ele-support-i.MX95.patch
target/linux/generic/backport-6.6/900-v6.11-net-free_netdev-exit-earlier-if-dummy.patch
target/linux/generic/hack-6.6/721-net-add-packet-mangeling.patch
target/linux/generic/pending-6.6/680-net-add-TCP-fraglist-GRO-support.patch
target/linux/ipq40xx/patches-6.6/004-v6.7-firmware-qcom_scm-disable-SDI-if-required.patch
target/linux/ipq40xx/patches-6.6/910-Revert-firmware-qcom_scm-Clear-download-bit-during-r.patch
target/linux/qualcommax/patches-6.6/0067-v6.7-firmware-qcom-scm-disable-SDI-if-required.patch
target/linux/ramips/patches-6.6/810-uvc-add-iPassion-iP2970-support.patch

index 2e70a47f1d16b279bdbf0786373e647dc8f4589c..1c340699471bbe3fee6422135fad17f862d43aa4 100644 (file)
@@ -1,2 +1,2 @@
-LINUX_VERSION-6.6 = .79
-LINUX_KERNEL_HASH-6.6.79 = 07a6f904470da1a099aa1683e3025a999dd82f2438f78b006b80c6ae2e9dfe8d
+LINUX_VERSION-6.6 = .80
+LINUX_KERNEL_HASH-6.6.80 = 6cf911d01324f45c9dd2f44cf06f55bda0ecf383bc498f132a0c549768531327
index 51f4f542d8bdc8a0fe21ada03654a0e7938c2cbf..91e39d7d24e13969e5f5a6c845f805f67132e606 100644 (file)
@@ -751,7 +751,7 @@ SVN-Revision: 35130
  EXPORT_SYMBOL(xfrm_parse_spi);
 --- a/net/ipv4/tcp_input.c
 +++ b/net/ipv4/tcp_input.c
-@@ -4262,14 +4262,16 @@ static bool tcp_parse_aligned_timestamp(
+@@ -4268,14 +4268,16 @@ static bool tcp_parse_aligned_timestamp(
  {
        const __be32 *ptr = (const __be32 *)(th + 1);
  
index 97bc25b565ef9afd424e7ec41d8777dd1252fbb1..4c3ff50b8cb1350026a3384f1bcd2e384035df36 100644 (file)
@@ -89,7 +89,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
                        commit->event = kzalloc(sizeof(*commit->event),
 --- a/drivers/gpu/drm/i915/display/intel_display.c
 +++ b/drivers/gpu/drm/i915/display/intel_display.c
-@@ -7280,6 +7280,19 @@ int intel_atomic_commit(struct drm_devic
+@@ -7298,6 +7298,19 @@ int intel_atomic_commit(struct drm_devic
                                state->base.legacy_cursor_update = false;
        }
  
index a6164c82389f0d783f1b50cd4fda837639e41a5d..afaa5328cab7e6f9cf735d4e0a9f6a2807956544 100644 (file)
@@ -32,7 +32,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
 
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -4483,13 +4483,7 @@ static inline void ____napi_schedule(str
+@@ -4514,13 +4514,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;
                }
-@@ -6645,8 +6639,6 @@ static int napi_poll(struct napi_struct
+@@ -6676,8 +6670,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()) {
-@@ -6655,15 +6647,13 @@ static int napi_thread_wait(struct napi_
+@@ -6686,15 +6678,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 3de258f953460f5c3796f3f4b2625b13632e9eb9..98cd35ed843654f0a5b1e9b40db4a2fb5c543022 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)
  {
-@@ -4451,6 +4477,7 @@ EXPORT_SYMBOL(__dev_direct_xmit);
+@@ -4482,6 +4508,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);
-@@ -4483,12 +4510,16 @@ static inline void ____napi_schedule(str
+@@ -4514,12 +4541,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()
-@@ -4734,6 +4765,11 @@ static void napi_schedule_rps(struct sof
+@@ -4765,6 +4796,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;
  
-@@ -5957,7 +5993,7 @@ static void net_rps_action_and_irq_enabl
+@@ -5988,7 +6024,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();
-@@ -5972,7 +6008,7 @@ static void net_rps_action_and_irq_enabl
+@@ -6003,7 +6039,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
-@@ -6016,7 +6052,7 @@ static int process_backlog(struct napi_s
+@@ -6047,7 +6083,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,
-@@ -6682,43 +6718,48 @@ static void skb_defer_free_flush(struct
+@@ -6713,43 +6749,48 @@ static void skb_defer_free_flush(struct
        }
  }
  
@@ -250,7 +250,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        return 0;
  }
  
-@@ -11303,7 +11344,7 @@ static int dev_cpu_dead(unsigned int old
+@@ -11334,7 +11375,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);
        }
-@@ -11311,12 +11352,14 @@ static int dev_cpu_dead(unsigned int old
+@@ -11342,12 +11383,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))) {
-@@ -11579,6 +11622,38 @@ static struct pernet_operations __net_in
+@@ -11610,6 +11653,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.
-@@ -11629,7 +11704,10 @@ static int __init net_dev_init(void)
+@@ -11660,7 +11735,10 @@ static int __init net_dev_init(void)
                init_gro_hash(&sd->backlog);
                sd->backlog.poll = process_backlog;
                sd->backlog.weight = weight_p;
index 9af345002a10ca39e8e2e70e81a23c10a8361197..d38231684d30b66c00850504869a03354b877566 100644 (file)
@@ -36,7 +36,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
 
 --- a/include/linux/netdevice.h
 +++ b/include/linux/netdevice.h
-@@ -3306,6 +3306,7 @@ static inline void dev_xmit_recursion_de
+@@ -3308,6 +3308,7 @@ static inline void dev_xmit_recursion_de
        __this_cpu_dec(softnet_data.xmit.recursion);
  }
  
@@ -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();
-@@ -4784,6 +4784,23 @@ static void napi_schedule_rps(struct sof
+@@ -4815,6 +4815,23 @@ static void napi_schedule_rps(struct sof
        __napi_schedule_irqoff(&mysd->backlog);
  }
  
index a6199cd2500efb2031199b2002e47abded7aad75..33ebe5d2a64540db48e9bd1fadef6d02319873a7 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);
-@@ -4789,12 +4789,12 @@ void kick_defer_list_purge(struct softne
+@@ -4820,12 +4820,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);
-@@ -4856,7 +4856,7 @@ static int enqueue_to_backlog(struct sk_
+@@ -4887,7 +4887,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);
-@@ -4865,7 +4865,7 @@ static int enqueue_to_backlog(struct sk_
+@@ -4896,7 +4896,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;
                }
  
-@@ -4880,7 +4880,7 @@ enqueue:
+@@ -4911,7 +4911,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);
-@@ -5911,7 +5911,7 @@ static void flush_backlog(struct work_st
+@@ -5942,7 +5942,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);
-@@ -5919,7 +5919,7 @@ static void flush_backlog(struct work_st
+@@ -5950,7 +5950,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) {
-@@ -5937,14 +5937,14 @@ static bool flush_required(int cpu)
+@@ -5968,14 +5968,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
-@@ -6059,7 +6059,7 @@ static int process_backlog(struct napi_s
+@@ -6090,7 +6090,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().
-@@ -6075,7 +6075,7 @@ static int process_backlog(struct napi_s
+@@ -6106,7 +6106,7 @@ static int process_backlog(struct napi_s
                        skb_queue_splice_tail_init(&sd->input_pkt_queue,
                                                   &sd->process_queue);
                }
index 6cd162ff1cea7deea7de1a22deb7f696056f5282..0ccf0e30d67b9e756d4ca7c29286908136b6cdde 100644 (file)
@@ -20,7 +20,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
 
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -9765,6 +9765,15 @@ static void netdev_sync_lower_features(s
+@@ -9796,6 +9796,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)
  {
-@@ -9846,15 +9855,9 @@ static netdev_features_t netdev_fix_feat
+@@ -9877,15 +9886,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)) {
-@@ -9862,6 +9865,11 @@ static netdev_features_t netdev_fix_feat
+@@ -9893,6 +9896,11 @@ static netdev_features_t netdev_fix_feat
                features &= ~NETIF_F_HW_TLS_RX;
        }
  
index 21ba0acc5b0ea887e47ba933c61b747d000cd9b8..c27ccc19427f28a733e40d50236d31a9a1915f91 100644 (file)
@@ -18,7 +18,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
 
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -10672,6 +10672,8 @@ struct rtnl_link_stats64 *dev_get_stats(
+@@ -10703,6 +10703,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 8b562a0f61837a63d47b9f22c0aa7d99be2b0495..dd0640e2eec2e7f3f9d4ca5fd8566c9c4a1ee184 100644 (file)
@@ -37,7 +37,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
 
 --- a/include/linux/netdevice.h
 +++ b/include/linux/netdevice.h
-@@ -4567,6 +4567,9 @@ static inline void netif_addr_unlock_bh(
+@@ -4569,6 +4569,9 @@ static inline void netif_addr_unlock_bh(
  
  void ether_setup(struct net_device *dev);
  
@@ -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
-@@ -10359,25 +10359,12 @@ err_free_name:
+@@ -10390,25 +10390,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
         */
-@@ -10397,12 +10384,32 @@ int init_dummy_netdev(struct net_device
+@@ -10428,12 +10415,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
-@@ -10996,6 +11003,19 @@ void free_netdev(struct net_device *dev)
+@@ -11027,6 +11034,19 @@ void free_netdev(struct net_device *dev)
  EXPORT_SYMBOL(free_netdev);
  
  /**
index 2bf136e18a32062462e67712ac2ed85375b31549..319bc3e47bfeb4de7748c87a95fe9e13b6286ff0 100644 (file)
@@ -85,7 +85,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  /**
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -6612,7 +6612,7 @@ static int __napi_poll(struct napi_struc
+@@ -6643,7 +6643,7 @@ static int __napi_poll(struct napi_struc
         * accidentally calling ->poll() when NAPI is not scheduled.
         */
        work = 0;
index 36d15248b8a96643b9ad4236f7f839f2a42bdf54..9c22568f72cdb1913d04f02b12bf345668290a32 100644 (file)
@@ -48,7 +48,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
        mtd->nvmem = nvmem_register(&config);
 --- a/drivers/nvmem/core.c
 +++ b/drivers/nvmem/core.c
-@@ -940,7 +940,7 @@ struct nvmem_device *nvmem_register(cons
+@@ -918,7 +918,7 @@ struct nvmem_device *nvmem_register(cons
        nvmem->nkeepout = config->nkeepout;
        if (config->of_node)
                nvmem->dev.of_node = config->of_node;
@@ -59,7 +59,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
        switch (config->id) {
 --- a/include/linux/nvmem-provider.h
 +++ b/include/linux/nvmem-provider.h
-@@ -89,7 +89,6 @@ struct nvmem_cell_info {
+@@ -91,7 +91,6 @@ struct nvmem_cell_info {
   * @read_only:        Device is read-only.
   * @root_only:        Device is accessibly to root only.
   * @of_node:  If given, this will be used instead of the parent's of_node.
@@ -67,7 +67,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
   * @reg_read: Callback to read data.
   * @reg_write:        Callback to write data.
   * @size:     Device size.
-@@ -122,7 +121,6 @@ struct nvmem_config {
+@@ -126,7 +125,6 @@ struct nvmem_config {
        bool                    ignore_wp;
        struct nvmem_layout     *layout;
        struct device_node      *of_node;
index 0290d648984b1372a665110acd280cc6dcc92163..c1f5ecf6651ffcb4cc99c63d11e92303bde8e029 100644 (file)
@@ -25,7 +25,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 
 --- a/drivers/nvmem/core.c
 +++ b/drivers/nvmem/core.c
-@@ -846,14 +846,6 @@ static int nvmem_add_cells_from_layout(s
+@@ -823,14 +823,6 @@ static int nvmem_add_cells_from_layout(s
  }
  
  #if IS_ENABLED(CONFIG_OF)
@@ -65,7 +65,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  #endif  /* ifndef _LINUX_NVMEM_CONSUMER_H */
 --- a/include/linux/nvmem-provider.h
 +++ b/include/linux/nvmem-provider.h
-@@ -244,6 +244,27 @@ nvmem_layout_get_match_data(struct nvmem
+@@ -241,6 +241,27 @@ nvmem_layout_get_match_data(struct nvmem
  
  #endif /* CONFIG_NVMEM */
  
diff --git a/target/linux/generic/backport-6.6/819-v6.8-0002-nvmem-Create-a-header-for-internal-sharing.patch b/target/linux/generic/backport-6.6/819-v6.8-0002-nvmem-Create-a-header-for-internal-sharing.patch
deleted file mode 100644 (file)
index b03ce68..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-From ec9c08a1cb8dc5e8e003f95f5f62de41dde235bb Mon Sep 17 00:00:00 2001
-From: Miquel Raynal <miquel.raynal@bootlin.com>
-Date: Fri, 15 Dec 2023 11:15:29 +0000
-Subject: [PATCH] nvmem: Create a header for internal sharing
-
-Before adding all the NVMEM layout bus infrastructure to the core, let's
-move the main nvmem_device structure in an internal header, only
-available to the core. This way all the additional code can be added in
-a dedicated file in order to keep the current core file tidy.
-
-Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
-Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
-Link: https://lore.kernel.org/r/20231215111536.316972-4-srinivas.kandagatla@linaro.org
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/nvmem/core.c      | 24 +-----------------------
- drivers/nvmem/internals.h | 35 +++++++++++++++++++++++++++++++++++
- 2 files changed, 36 insertions(+), 23 deletions(-)
- create mode 100644 drivers/nvmem/internals.h
-
---- a/drivers/nvmem/core.c
-+++ b/drivers/nvmem/core.c
-@@ -19,29 +19,7 @@
- #include <linux/of.h>
- #include <linux/slab.h>
--struct nvmem_device {
--      struct module           *owner;
--      struct device           dev;
--      int                     stride;
--      int                     word_size;
--      int                     id;
--      struct kref             refcnt;
--      size_t                  size;
--      bool                    read_only;
--      bool                    root_only;
--      int                     flags;
--      enum nvmem_type         type;
--      struct bin_attribute    eeprom;
--      struct device           *base_dev;
--      struct list_head        cells;
--      const struct nvmem_keepout *keepout;
--      unsigned int            nkeepout;
--      nvmem_reg_read_t        reg_read;
--      nvmem_reg_write_t       reg_write;
--      struct gpio_desc        *wp_gpio;
--      struct nvmem_layout     *layout;
--      void *priv;
--};
-+#include "internals.h"
- #define to_nvmem_device(d) container_of(d, struct nvmem_device, dev)
---- /dev/null
-+++ b/drivers/nvmem/internals.h
-@@ -0,0 +1,35 @@
-+/* SPDX-License-Identifier: GPL-2.0 */
-+
-+#ifndef _LINUX_NVMEM_INTERNALS_H
-+#define _LINUX_NVMEM_INTERNALS_H
-+
-+#include <linux/device.h>
-+#include <linux/nvmem-consumer.h>
-+#include <linux/nvmem-provider.h>
-+
-+struct nvmem_device {
-+      struct module           *owner;
-+      struct device           dev;
-+      struct list_head        node;
-+      int                     stride;
-+      int                     word_size;
-+      int                     id;
-+      struct kref             refcnt;
-+      size_t                  size;
-+      bool                    read_only;
-+      bool                    root_only;
-+      int                     flags;
-+      enum nvmem_type         type;
-+      struct bin_attribute    eeprom;
-+      struct device           *base_dev;
-+      struct list_head        cells;
-+      const struct nvmem_keepout *keepout;
-+      unsigned int            nkeepout;
-+      nvmem_reg_read_t        reg_read;
-+      nvmem_reg_write_t       reg_write;
-+      struct gpio_desc        *wp_gpio;
-+      struct nvmem_layout     *layout;
-+      void *priv;
-+};
-+
-+#endif  /* ifndef _LINUX_NVMEM_INTERNALS_H */
diff --git a/target/linux/generic/backport-6.6/819-v6.8-0003-nvmem-Simplify-the-add_cells-hook.patch b/target/linux/generic/backport-6.6/819-v6.8-0003-nvmem-Simplify-the-add_cells-hook.patch
deleted file mode 100644 (file)
index dac691e..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-From 1b7c298a4ecbc28cc6ee94005734bff55eb83d22 Mon Sep 17 00:00:00 2001
-From: Miquel Raynal <miquel.raynal@bootlin.com>
-Date: Fri, 15 Dec 2023 11:15:30 +0000
-Subject: [PATCH] nvmem: Simplify the ->add_cells() hook
-
-The layout entry is not used and will anyway be made useless by the new
-layout bus infrastructure coming next, so drop it. While at it, clarify
-the kdoc entry.
-
-Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
-Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
-Link: https://lore.kernel.org/r/20231215111536.316972-5-srinivas.kandagatla@linaro.org
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/nvmem/core.c             | 2 +-
- drivers/nvmem/layouts/onie-tlv.c | 3 +--
- drivers/nvmem/layouts/sl28vpd.c  | 3 +--
- include/linux/nvmem-provider.h   | 8 +++-----
- 4 files changed, 6 insertions(+), 10 deletions(-)
-
---- a/drivers/nvmem/core.c
-+++ b/drivers/nvmem/core.c
-@@ -815,7 +815,7 @@ static int nvmem_add_cells_from_layout(s
-       int ret;
-       if (layout && layout->add_cells) {
--              ret = layout->add_cells(&nvmem->dev, nvmem, layout);
-+              ret = layout->add_cells(&nvmem->dev, nvmem);
-               if (ret)
-                       return ret;
-       }
---- a/drivers/nvmem/layouts/onie-tlv.c
-+++ b/drivers/nvmem/layouts/onie-tlv.c
-@@ -182,8 +182,7 @@ static bool onie_tlv_crc_is_valid(struct
-       return true;
- }
--static int onie_tlv_parse_table(struct device *dev, struct nvmem_device *nvmem,
--                              struct nvmem_layout *layout)
-+static int onie_tlv_parse_table(struct device *dev, struct nvmem_device *nvmem)
- {
-       struct onie_tlv_hdr hdr;
-       size_t table_len, data_len, hdr_len;
---- a/drivers/nvmem/layouts/sl28vpd.c
-+++ b/drivers/nvmem/layouts/sl28vpd.c
-@@ -80,8 +80,7 @@ static int sl28vpd_v1_check_crc(struct d
-       return 0;
- }
--static int sl28vpd_add_cells(struct device *dev, struct nvmem_device *nvmem,
--                           struct nvmem_layout *layout)
-+static int sl28vpd_add_cells(struct device *dev, struct nvmem_device *nvmem)
- {
-       const struct nvmem_cell_info *pinfo;
-       struct nvmem_cell_info info = {0};
---- a/include/linux/nvmem-provider.h
-+++ b/include/linux/nvmem-provider.h
-@@ -156,9 +156,8 @@ struct nvmem_cell_table {
-  *
-  * @name:             Layout name.
-  * @of_match_table:   Open firmware match table.
-- * @add_cells:                Will be called if a nvmem device is found which
-- *                    has this layout. The function will add layout
-- *                    specific cells with nvmem_add_one_cell().
-+ * @add_cells:                Called to populate the layout using
-+ *                    nvmem_add_one_cell().
-  * @fixup_cell_info:  Will be called before a cell is added. Can be
-  *                    used to modify the nvmem_cell_info.
-  * @owner:            Pointer to struct module.
-@@ -172,8 +171,7 @@ struct nvmem_cell_table {
- struct nvmem_layout {
-       const char *name;
-       const struct of_device_id *of_match_table;
--      int (*add_cells)(struct device *dev, struct nvmem_device *nvmem,
--                       struct nvmem_layout *layout);
-+      int (*add_cells)(struct device *dev, struct nvmem_device *nvmem);
-       void (*fixup_cell_info)(struct nvmem_device *nvmem,
-                               struct nvmem_layout *layout,
-                               struct nvmem_cell_info *cell);
diff --git a/target/linux/generic/backport-6.6/819-v6.8-0004-nvmem-Move-and-rename-fixup_cell_info.patch b/target/linux/generic/backport-6.6/819-v6.8-0004-nvmem-Move-and-rename-fixup_cell_info.patch
deleted file mode 100644 (file)
index 0a614fc..0000000
+++ /dev/null
@@ -1,169 +0,0 @@
-From 1172460e716784ac7e1049a537bdca8edbf97360 Mon Sep 17 00:00:00 2001
-From: Miquel Raynal <miquel.raynal@bootlin.com>
-Date: Fri, 15 Dec 2023 11:15:31 +0000
-Subject: [PATCH] nvmem: Move and rename ->fixup_cell_info()
-
-This hook is meant to be used by any provider and instantiating a layout
-just for this is useless. Let's instead move this hook to the nvmem
-device and add it to the config structure to be easily shared by the
-providers.
-
-While at moving this hook, rename it ->fixup_dt_cell_info() to clarify
-its main intended purpose.
-
-Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
-Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
-Link: https://lore.kernel.org/r/20231215111536.316972-6-srinivas.kandagatla@linaro.org
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/nvmem/core.c           |  6 +++---
- drivers/nvmem/imx-ocotp.c      | 11 +++--------
- drivers/nvmem/internals.h      |  2 ++
- drivers/nvmem/mtk-efuse.c      | 11 +++--------
- include/linux/nvmem-provider.h |  9 ++++-----
- 5 files changed, 15 insertions(+), 24 deletions(-)
-
---- a/drivers/nvmem/core.c
-+++ b/drivers/nvmem/core.c
-@@ -674,7 +674,6 @@ static int nvmem_validate_keepouts(struc
- static int nvmem_add_cells_from_dt(struct nvmem_device *nvmem, struct device_node *np)
- {
--      struct nvmem_layout *layout = nvmem->layout;
-       struct device *dev = &nvmem->dev;
-       struct device_node *child;
-       const __be32 *addr;
-@@ -704,8 +703,8 @@ static int nvmem_add_cells_from_dt(struc
-               info.np = of_node_get(child);
--              if (layout && layout->fixup_cell_info)
--                      layout->fixup_cell_info(nvmem, layout, &info);
-+              if (nvmem->fixup_dt_cell_info)
-+                      nvmem->fixup_dt_cell_info(nvmem, &info);
-               ret = nvmem_add_one_cell(nvmem, &info);
-               kfree(info.name);
-@@ -894,6 +893,7 @@ struct nvmem_device *nvmem_register(cons
-       kref_init(&nvmem->refcnt);
-       INIT_LIST_HEAD(&nvmem->cells);
-+      nvmem->fixup_dt_cell_info = config->fixup_dt_cell_info;
-       nvmem->owner = config->owner;
-       if (!nvmem->owner && config->dev->driver)
---- a/drivers/nvmem/imx-ocotp.c
-+++ b/drivers/nvmem/imx-ocotp.c
-@@ -583,17 +583,12 @@ static const struct of_device_id imx_oco
- };
- MODULE_DEVICE_TABLE(of, imx_ocotp_dt_ids);
--static void imx_ocotp_fixup_cell_info(struct nvmem_device *nvmem,
--                                    struct nvmem_layout *layout,
--                                    struct nvmem_cell_info *cell)
-+static void imx_ocotp_fixup_dt_cell_info(struct nvmem_device *nvmem,
-+                                       struct nvmem_cell_info *cell)
- {
-       cell->read_post_process = imx_ocotp_cell_pp;
- }
--static struct nvmem_layout imx_ocotp_layout = {
--      .fixup_cell_info = imx_ocotp_fixup_cell_info,
--};
--
- static int imx_ocotp_probe(struct platform_device *pdev)
- {
-       struct device *dev = &pdev->dev;
-@@ -619,7 +614,7 @@ static int imx_ocotp_probe(struct platfo
-       imx_ocotp_nvmem_config.size = 4 * priv->params->nregs;
-       imx_ocotp_nvmem_config.dev = dev;
-       imx_ocotp_nvmem_config.priv = priv;
--      imx_ocotp_nvmem_config.layout = &imx_ocotp_layout;
-+      imx_ocotp_nvmem_config.fixup_dt_cell_info = &imx_ocotp_fixup_dt_cell_info;
-       priv->config = &imx_ocotp_nvmem_config;
---- a/drivers/nvmem/internals.h
-+++ b/drivers/nvmem/internals.h
-@@ -23,6 +23,8 @@ struct nvmem_device {
-       struct bin_attribute    eeprom;
-       struct device           *base_dev;
-       struct list_head        cells;
-+      void (*fixup_dt_cell_info)(struct nvmem_device *nvmem,
-+                                 struct nvmem_cell_info *cell);
-       const struct nvmem_keepout *keepout;
-       unsigned int            nkeepout;
-       nvmem_reg_read_t        reg_read;
---- a/drivers/nvmem/mtk-efuse.c
-+++ b/drivers/nvmem/mtk-efuse.c
-@@ -45,9 +45,8 @@ static int mtk_efuse_gpu_speedbin_pp(voi
-       return 0;
- }
--static void mtk_efuse_fixup_cell_info(struct nvmem_device *nvmem,
--                                    struct nvmem_layout *layout,
--                                    struct nvmem_cell_info *cell)
-+static void mtk_efuse_fixup_dt_cell_info(struct nvmem_device *nvmem,
-+                                       struct nvmem_cell_info *cell)
- {
-       size_t sz = strlen(cell->name);
-@@ -61,10 +60,6 @@ static void mtk_efuse_fixup_cell_info(st
-               cell->read_post_process = mtk_efuse_gpu_speedbin_pp;
- }
--static struct nvmem_layout mtk_efuse_layout = {
--      .fixup_cell_info = mtk_efuse_fixup_cell_info,
--};
--
- static int mtk_efuse_probe(struct platform_device *pdev)
- {
-       struct device *dev = &pdev->dev;
-@@ -91,7 +86,7 @@ static int mtk_efuse_probe(struct platfo
-       econfig.priv = priv;
-       econfig.dev = dev;
-       if (pdata->uses_post_processing)
--              econfig.layout = &mtk_efuse_layout;
-+              econfig.fixup_dt_cell_info = &mtk_efuse_fixup_dt_cell_info;
-       nvmem = devm_nvmem_register(dev, &econfig);
-       return PTR_ERR_OR_ZERO(nvmem);
---- a/include/linux/nvmem-provider.h
-+++ b/include/linux/nvmem-provider.h
-@@ -83,6 +83,8 @@ struct nvmem_cell_info {
-  * @cells:    Optional array of pre-defined NVMEM cells.
-  * @ncells:   Number of elements in cells.
-  * @add_legacy_fixed_of_cells:        Read fixed NVMEM cells from old OF syntax.
-+ * @fixup_dt_cell_info: Will be called before a cell is added. Can be
-+ *            used to modify the nvmem_cell_info.
-  * @keepout:  Optional array of keepout ranges (sorted ascending by start).
-  * @nkeepout: Number of elements in the keepout array.
-  * @type:     Type of the nvmem storage
-@@ -113,6 +115,8 @@ struct nvmem_config {
-       const struct nvmem_cell_info    *cells;
-       int                     ncells;
-       bool                    add_legacy_fixed_of_cells;
-+      void (*fixup_dt_cell_info)(struct nvmem_device *nvmem,
-+                                 struct nvmem_cell_info *cell);
-       const struct nvmem_keepout *keepout;
-       unsigned int            nkeepout;
-       enum nvmem_type         type;
-@@ -158,8 +162,6 @@ struct nvmem_cell_table {
-  * @of_match_table:   Open firmware match table.
-  * @add_cells:                Called to populate the layout using
-  *                    nvmem_add_one_cell().
-- * @fixup_cell_info:  Will be called before a cell is added. Can be
-- *                    used to modify the nvmem_cell_info.
-  * @owner:            Pointer to struct module.
-  * @node:             List node.
-  *
-@@ -172,9 +174,6 @@ struct nvmem_layout {
-       const char *name;
-       const struct of_device_id *of_match_table;
-       int (*add_cells)(struct device *dev, struct nvmem_device *nvmem);
--      void (*fixup_cell_info)(struct nvmem_device *nvmem,
--                              struct nvmem_layout *layout,
--                              struct nvmem_cell_info *cell);
-       /* private */
-       struct module *owner;
index b96134e31503593346e4c586bf6737b5bd7e7595..de965e1ccdc689f2ce9c90f92eea4e217f34e967 100644 (file)
@@ -40,7 +40,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
        }
  
        memcpy(val, ((u8 *)p) + skipbytes, bytes);
-@@ -157,8 +161,30 @@ static const struct ocotp_devtype_data i
+@@ -179,8 +183,30 @@ static const struct ocotp_devtype_data i
        },
  };
  
index b3a592f078119d3e36bc53b236cefc983eb5a919..8f63a7a0df533aaf036ec5659c0cd49cd40bed1c 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
-@@ -10989,7 +10989,8 @@ void free_netdev(struct net_device *dev)
+@@ -11020,7 +11020,8 @@ void free_netdev(struct net_device *dev)
        dev->xdp_bulkq = NULL;
  
        /*  Compatibility with error handling in drivers */
index e1d4367a8f54936f3aa47c775bf1c1b0216259fe..0935a0b9c0aea6400332afb916813e7408286678 100644 (file)
@@ -105,7 +105,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        help
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -3597,6 +3597,11 @@ static int xmit_one(struct sk_buff *skb,
+@@ -3628,6 +3628,11 @@ static int xmit_one(struct sk_buff *skb,
        if (dev_nit_active(dev))
                dev_queue_xmit_nit(skb, dev);
  
index b810e7ec91a48df1168356972938ca1678764fbf..ca7c624447eb82f08f0d54ca0661a8043d2bffa7 100644 (file)
@@ -31,7 +31,7 @@ Signe-off-by: Felix Fietkau <nbd@nbd.name>
  static inline void gro_normal_list(struct napi_struct *napi)
 --- a/include/net/tcp.h
 +++ b/include/net/tcp.h
-@@ -2084,7 +2084,10 @@ void tcp_v4_destroy_sock(struct sock *sk
+@@ -2101,7 +2101,10 @@ void tcp_v4_destroy_sock(struct sock *sk
  
  struct sk_buff *tcp_gso_segment(struct sk_buff *skb,
                                netdev_features_t features);
index 9df758ae1b35a8dc75388d2eb812d20f9aa9e115..747ba7f285005f6e33ba09c8d03d16e73e505ccf 100644 (file)
@@ -57,7 +57,7 @@ Signed-off-by: Bjorn Andersson <andersson@kernel.org>
  static int __qcom_scm_set_dload_mode(struct device *dev, bool enable)
  {
        struct qcom_scm_desc desc = {
-@@ -1473,6 +1496,13 @@ static int qcom_scm_probe(struct platfor
+@@ -1474,6 +1497,13 @@ static int qcom_scm_probe(struct platfor
  
        __get_convention();
  
index 26cd0e0309b316ba1dad36fa8803e8d3b6a940bb..ab56c24a4d1c3099d657d19fd840b8ccff6911c2 100644 (file)
@@ -15,7 +15,7 @@ Signed-off-by: Robert Marko <robimarko@gmail.com>
 
 --- a/drivers/firmware/qcom_scm.c
 +++ b/drivers/firmware/qcom_scm.c
-@@ -1528,7 +1528,8 @@ static int qcom_scm_probe(struct platfor
+@@ -1529,7 +1529,8 @@ static int qcom_scm_probe(struct platfor
  static void qcom_scm_shutdown(struct platform_device *pdev)
  {
        /* Clean shutdown, disable download mode to allow normal restart */
index 9df758ae1b35a8dc75388d2eb812d20f9aa9e115..747ba7f285005f6e33ba09c8d03d16e73e505ccf 100644 (file)
@@ -57,7 +57,7 @@ Signed-off-by: Bjorn Andersson <andersson@kernel.org>
  static int __qcom_scm_set_dload_mode(struct device *dev, bool enable)
  {
        struct qcom_scm_desc desc = {
-@@ -1473,6 +1496,13 @@ static int qcom_scm_probe(struct platfor
+@@ -1474,6 +1497,13 @@ static int qcom_scm_probe(struct platfor
  
        __get_convention();
  
index 56b638aa3632badc433622f3509400bac8da3a14..916f08ac5d73c7056c3e7f643d83f8f2a13c2cf7 100644 (file)
@@ -234,7 +234,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
  
  /* Format flags */
  #define UVC_FMT_FLAG_COMPRESSED               0x00000001
-@@ -587,6 +589,7 @@ struct uvc_device {
+@@ -591,6 +593,7 @@ struct uvc_device {
  
        struct input_dev *input;
        char input_phys[64];