]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
drop 6 patches and fix up a 5.15 backport based on RC review feedback master
authorSasha Levin <sashal@kernel.org>
Wed, 22 Jul 2026 15:29:43 +0000 (11:29 -0400)
committerSasha Levin <sashal@kernel.org>
Wed, 22 Jul 2026 16:42:58 +0000 (12:42 -0400)
Dropped patches:

- "cpufreq: Make cpufreq_driver::exit() return void"
  Queues: 6.6
  Reason: KernelCI build break — 6.6 has drivers (nforce2, loongson2,
  ia64-acpi) whose int-returning exit() callbacks were not converted;
  the nforce2 prerequisite commits were never queued and ia64 has no
  upstream fix, so a clean 1:1 requeue is impossible
  Report: https://lore.kernel.org/stable/178467474625.1334.6331115540835663024@kernelci.org/

- "cpufreq: pcc: Remove empty exit() callback"  [dependency]
  Queues: 6.6
  Reason: prerequisite of the dropped patch above (both queued only to
  support bcb8889c4981)

- "cpufreq: qcom-cpufreq-hw: Fix possible double free"  [dependency]
  Queues: 6.6
  Reason: depends on the dropped API conversion (Stable-dep-of chain);
  to be requeued alone as a context-adjusted backport

- "reset: imx7: Correct polarity of MIPI CSI resets on i.MX8MQ"
  Queues: 6.6
  Reason: missing prerequisite 6d79bb8fd2aa ("media: imx8mq-mipi-csi2:
  Explicitly release reset") — without it the CSI block is left held
  in reset; completes GKH's drop from all older queues (commit
  b416574a40 missed 6.6); kept in 7.1 where the prerequisite is in
  the base
  Report: https://lore.kernel.org/stable/a64558dcb06d62931e73b638dca077ed4562779c.camel@pengutronix.de/

- "gpib: cb7210: Fix region leak when request_irq fails"
  Queues: 6.18
  Reason: upstream commit reverted (05d5d79440c2 reverts 2eae90a457ba,
  285ecb7d9e1b reverts 5ad284960558 — "Turns out not to be correct");
  causes a double release_region() via the detach path on attach
  failure; also recorded in scripts/dropped_commits to prevent a
  third re-pick; 7.1 keeps its fix+revert pair which nets out
  Report: https://lore.kernel.org/stable/26425ef4-454f-4087-98ec-d045247242d8@kernel.org/

- "net: ethernet: oa_tc6: mdiobus->parent initialized with NULL"
  Queues: 7.1, 6.18, 6.12
  Reason: author hold — oa_tc6 follow-up fix series still under review
  on netdev; to be requeued together with the rest of the oa_tc6 set
  once the fix series lands upstream
  Report: https://lore.kernel.org/stable/DM5PR02MB3369B73209A7D10B584B4C5483C22@DM5PR02MB3369.namprd02.prod.outlook.com/

- "dt-bindings: net: updated interrupt type to be active low, level triggered"
  Queues: 7.1, 6.18, 6.12
  Reason: companion driver change b542d13fab0f was already dropped at
  the author's request, leaving the binding example inconsistent with
  the shipping driver (doc says level-low, driver uses edge-falling);
  requeue with the full series later
  Report: https://lore.kernel.org/stable/DM5PR02MB3369B73209A7D10B584B4C5483C22@DM5PR02MB3369.namprd02.prod.outlook.com/

Backport fixup:

- "KVM: Move kvm_io_bus_get_dev() locking responsibilities to callers"
  Queue: 5.15
  Replaced the 5.15 backport content with the queue-5.10 backport of
  the same upstream commit (3a0724998162): the guard(srcu) form broke
  clang builds under -Werror,-Wdeclaration-after-statement (still
  enforced on 5.15.y); the 5.10 variant uses explicit
  srcu_read_lock/srcu_read_unlock and the affected functions are
  byte-identical between 5.10.y and 5.15.y
  Report: https://lore.kernel.org/stable/178467474395.1334.6033734617150761914@kernelci.org/

Signed-off-by: Sasha Levin <sashal@kernel.org>
14 files changed:
queue-5.15/kvm-move-kvm_io_bus_get_dev-locking-responsibilities-to-callers.patch
queue-6.12/net-ethernet-oa_tc6-mdiobus-parent-initialized-with-.patch [deleted file]
queue-6.12/series
queue-6.18/gpib-cb7210-fix-region-leak-when-request_irq-fails.patch [deleted file]
queue-6.18/net-ethernet-oa_tc6-mdiobus-parent-initialized-with-.patch [deleted file]
queue-6.18/series
queue-6.6/cpufreq-make-cpufreq_driver-exit-return-void.patch [deleted file]
queue-6.6/cpufreq-pcc-remove-empty-exit-callback.patch [deleted file]
queue-6.6/cpufreq-qcom-cpufreq-hw-fix-possible-double-free.patch [deleted file]
queue-6.6/reset-imx7-correct-polarity-of-mipi-csi-resets-on-i.mx8mq.patch [deleted file]
queue-6.6/series
queue-7.1/net-ethernet-oa_tc6-mdiobus-parent-initialized-with-.patch [deleted file]
queue-7.1/series
scripts/dropped_commits

index 5218842fcd41998f938bf96ef6c4061c600046a0..71d9112b966d50b0117f54a4b1985b35568aa783 100644 (file)
@@ -29,24 +29,52 @@ Link: https://patch.msgid.link/20260627105105.1005990-1-maz@kernel.org
 Signed-off-by: Marc Zyngier <maz@kernel.org>
 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 ---
- arch/arm64/kvm/vgic/vgic-its.c |    2 ++
+ arch/arm64/kvm/vgic/vgic-its.c |   15 +++++++++++----
  virt/kvm/kvm_main.c            |   16 +++++-----------
- 2 files changed, 7 insertions(+), 11 deletions(-)
+ 2 files changed, 16 insertions(+), 15 deletions(-)
 
 --- a/arch/arm64/kvm/vgic/vgic-its.c
 +++ b/arch/arm64/kvm/vgic/vgic-its.c
-@@ -713,6 +713,8 @@ struct vgic_its *vgic_msi_to_its(struct
+@@ -704,6 +704,8 @@ struct vgic_its *vgic_msi_to_its(struct
+       u64 address;
+       struct kvm_io_device *kvm_io_dev;
+       struct vgic_io_device *iodev;
++      struct vgic_its *its = NULL;
++      int srcu_idx;
+       if (!vgic_has_its(kvm))
+               return ERR_PTR(-ENODEV);
+@@ -713,18 +715,23 @@ struct vgic_its *vgic_msi_to_its(struct
  
        address = (u64)msi->address_hi << 32 | msi->address_lo;
  
-+      guard(srcu)(&kvm->srcu);
++      srcu_idx = srcu_read_lock(&kvm->srcu);
 +
        kvm_io_dev = kvm_io_bus_get_dev(kvm, KVM_MMIO_BUS, address);
        if (!kvm_io_dev)
-               return ERR_PTR(-EINVAL);
+-              return ERR_PTR(-EINVAL);
++              goto out;
+       if (kvm_io_dev->ops != &kvm_io_gic_ops)
+-              return ERR_PTR(-EINVAL);
++              goto out;
+       iodev = container_of(kvm_io_dev, struct vgic_io_device, dev);
+       if (iodev->iodev_type != IODEV_ITS)
+-              return ERR_PTR(-EINVAL);
++              goto out;
+-      return iodev->its;
++      its = iodev->its;
++out:
++      srcu_read_unlock(&kvm->srcu, srcu_idx);
++      return its ?: ERR_PTR(-EINVAL);
+ }
+ /*
 --- a/virt/kvm/kvm_main.c
 +++ b/virt/kvm/kvm_main.c
-@@ -5222,25 +5222,19 @@ struct kvm_io_device *kvm_io_bus_get_dev
+@@ -4558,25 +4558,19 @@ struct kvm_io_device *kvm_io_bus_get_dev
                                         gpa_t addr)
  {
        struct kvm_io_bus *bus;
diff --git a/queue-6.12/net-ethernet-oa_tc6-mdiobus-parent-initialized-with-.patch b/queue-6.12/net-ethernet-oa_tc6-mdiobus-parent-initialized-with-.patch
deleted file mode 100644 (file)
index 3b192e8..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-From 09fda2e3b0e416e9aad0c1f8df35113763100f4a Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 11 Jun 2026 14:55:39 -0700
-Subject: net: ethernet: oa_tc6: mdiobus->parent initialized with NULL
-
-From: Selvamani Rajagopal <Selvamani.Rajagopal@onsemi.com>
-
-[ Upstream commit a221d3f7e3f3ea6a3b4bc511cf2a59242daa06e1 ]
-
-As "dev" pointer in oa_tc6 structure is never initialized,
-mbiobus->parent was initialized with NULL.  This change
-fixes it by initializing it with device pointer of spi.
-
-Fixes: 8f9bf857e43b ("net: ethernet: oa_tc6: implement internal PHY initialization")
-Signed-off-by: Selvamani Rajagopal <Selvamani.Rajagopal@onsemi.com>
-Link: https://patch.msgid.link/20260611-level-trigger-v5-2-4533a9e85ce2@onsemi.com
-Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/ethernet/oa_tc6.c |    3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
---- a/drivers/net/ethernet/oa_tc6.c
-+++ b/drivers/net/ethernet/oa_tc6.c
-@@ -107,7 +107,6 @@
- /* Internal structure for MAC-PHY drivers */
- struct oa_tc6 {
--      struct device *dev;
-       struct net_device *netdev;
-       struct phy_device *phydev;
-       struct mii_bus *mdiobus;
-@@ -518,7 +517,7 @@ static int oa_tc6_mdiobus_register(struc
-       tc6->mdiobus->read_c45 = oa_tc6_mdiobus_read_c45;
-       tc6->mdiobus->write_c45 = oa_tc6_mdiobus_write_c45;
-       tc6->mdiobus->name = "oa-tc6-mdiobus";
--      tc6->mdiobus->parent = tc6->dev;
-+      tc6->mdiobus->parent = &tc6->spi->dev;
-       snprintf(tc6->mdiobus->id, ARRAY_SIZE(tc6->mdiobus->id), "%s",
-                dev_name(&tc6->spi->dev));
index b8d1a5aee924deb081f0a51e7240ab224ccf9853..3aa99386f9eb087a860a3941ec994e3785e024e5 100644 (file)
@@ -393,7 +393,6 @@ tcp-ipv6-clamp-default-adverting-mss-to-avoid-gso_by.patch
 net-airoha-introduce-ndo_select_queue-callback.patch
 net-airoha-add-sched-ets-offload-support.patch
 net-airoha-fix-always-true-condition-in-ppe1-queue-r.patch
-net-ethernet-oa_tc6-mdiobus-parent-initialized-with-.patch
 net-ethernet-oa_tc6-remove-fcs-size-in-rx-frame.patch
 ionic-fix-check-in-ionic_get_link_ext_stats.patch
 ksmbd-fix-use-after-free-in-same_client_has_lease.patch
diff --git a/queue-6.18/gpib-cb7210-fix-region-leak-when-request_irq-fails.patch b/queue-6.18/gpib-cb7210-fix-region-leak-when-request_irq-fails.patch
deleted file mode 100644 (file)
index 1765ff7..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-From 8714ad6114d18506d527940bc73b9eb460fb63c8 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 3 May 2026 17:30:36 +0800
-Subject: gpib: cb7210: Fix region leak when request_irq fails
-
-From: Hongling Zeng <zenghongling@kylinos.cn>
-
-[ Upstream commit 2eae90a457baa0048a96ed38ad93090ee38c8b2f ]
-
-When request_irq() fails, the region allocated by request_region()
-is not released. Fix this by adding an error handling path with
-proper goto labels to release the region.
-
-Fixes: e9dc69956d4d ("staging: gpib: Add Computer Boards GPIB driver")
-Closes: https://lore.kernel.org/oe-kbuild-all/202605160620.ReBOadPX-lkp@intel.com/
-Signed-off-by: Hongling Zeng <zenghongling@kylinos.cn>
-Cc: stable <stable@kernel.org>
-Link: https://patch.msgid.link/20260518022939.16881-1-zenghongling@kylinos.cn
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-Stable-dep-of: 5ad284960558 ("gpib: cb7210: Fix region leak when request_irq fails")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/staging/gpib/cb7210/cb7210.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/staging/gpib/cb7210/cb7210.c b/drivers/staging/gpib/cb7210/cb7210.c
-index 3e2397898a9ba2..f6d9db02f03068 100644
---- a/drivers/staging/gpib/cb7210/cb7210.c
-+++ b/drivers/staging/gpib/cb7210/cb7210.c
-@@ -1061,6 +1061,7 @@ static int cb_isa_attach(struct gpib_board *board, const struct gpib_board_confi
-       // install interrupt handler
-       if (request_irq(config->ibirq, cb7210_interrupt, isr_flags, DRV_NAME, board)) {
-               dev_err(board->gpib_dev, "failed to obtain IRQ %d\n", config->ibirq);
-+              release_region(nec7210_iobase(cb_priv), cb7210_iosize);
-               return -EBUSY;
-       }
-       cb_priv->irq = config->ibirq;
--- 
-2.53.0
-
diff --git a/queue-6.18/net-ethernet-oa_tc6-mdiobus-parent-initialized-with-.patch b/queue-6.18/net-ethernet-oa_tc6-mdiobus-parent-initialized-with-.patch
deleted file mode 100644 (file)
index ce7f718..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-From b414147958480abd3e1392ab578f98d58fd4efab Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 11 Jun 2026 14:55:39 -0700
-Subject: net: ethernet: oa_tc6: mdiobus->parent initialized with NULL
-
-From: Selvamani Rajagopal <Selvamani.Rajagopal@onsemi.com>
-
-[ Upstream commit a221d3f7e3f3ea6a3b4bc511cf2a59242daa06e1 ]
-
-As "dev" pointer in oa_tc6 structure is never initialized,
-mbiobus->parent was initialized with NULL.  This change
-fixes it by initializing it with device pointer of spi.
-
-Fixes: 8f9bf857e43b ("net: ethernet: oa_tc6: implement internal PHY initialization")
-Signed-off-by: Selvamani Rajagopal <Selvamani.Rajagopal@onsemi.com>
-Link: https://patch.msgid.link/20260611-level-trigger-v5-2-4533a9e85ce2@onsemi.com
-Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/ethernet/oa_tc6.c |    3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
---- a/drivers/net/ethernet/oa_tc6.c
-+++ b/drivers/net/ethernet/oa_tc6.c
-@@ -107,7 +107,6 @@
- /* Internal structure for MAC-PHY drivers */
- struct oa_tc6 {
--      struct device *dev;
-       struct net_device *netdev;
-       struct phy_device *phydev;
-       struct mii_bus *mdiobus;
-@@ -518,7 +517,7 @@ static int oa_tc6_mdiobus_register(struc
-       tc6->mdiobus->read_c45 = oa_tc6_mdiobus_read_c45;
-       tc6->mdiobus->write_c45 = oa_tc6_mdiobus_write_c45;
-       tc6->mdiobus->name = "oa-tc6-mdiobus";
--      tc6->mdiobus->parent = tc6->dev;
-+      tc6->mdiobus->parent = &tc6->spi->dev;
-       snprintf(tc6->mdiobus->id, ARRAY_SIZE(tc6->mdiobus->id), "%s",
-                dev_name(&tc6->spi->dev));
index 5a1ad475e332c6c9ff3dc05e03edc47bffbdf822..5156f6601b69b92b099a2e22e12b26d339589c3e 100644 (file)
@@ -570,7 +570,6 @@ keys-use-acquire-when-reading-state-in-keyring-searc.patch
 tipc-fix-uaf-in-tipc_l2_send_msg.patch
 tcp-ipv6-clamp-default-adverting-mss-to-avoid-gso_by.patch
 net-airoha-fix-always-true-condition-in-ppe1-queue-r.patch
-net-ethernet-oa_tc6-mdiobus-parent-initialized-with-.patch
 net-ethernet-oa_tc6-remove-fcs-size-in-rx-frame.patch
 ionic-fix-check-in-ionic_get_link_ext_stats.patch
 rdma-bnxt_re-free-srq-toggle-page-after-firmware-tea.patch
@@ -629,7 +628,6 @@ perf-test-amd-ibs-fix-incorrect-kernel-version-check.patch
 gpib-fix-inappropriate-ioctl-error-return.patch
 char-tlclk-fix-use-after-free-in-tlclk_cleanup.patch
 gpib-fix-double-decrement-of-descriptor_busy-in-comm.patch
-gpib-cb7210-fix-region-leak-when-request_irq-fails.patch
 clk-renesas-rzg2l-rename-iterator-in-for_each_mod_cl.patch
 powerpc-tools-perf-initialize-error-code-in-auxtrace.patch
 pci-qcom-disable-aspm-l0s-for-sa8775p.patch
diff --git a/queue-6.6/cpufreq-make-cpufreq_driver-exit-return-void.patch b/queue-6.6/cpufreq-make-cpufreq_driver-exit-return-void.patch
deleted file mode 100644 (file)
index 881db2a..0000000
+++ /dev/null
@@ -1,619 +0,0 @@
-From stable+bounces-276791-greg=kroah.com@vger.kernel.org Thu Jul 16 19:51:29 2026
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 16 Jul 2026 13:45:54 -0400
-Subject: cpufreq: Make cpufreq_driver->exit() return void
-To: stable@vger.kernel.org
-Cc: Lizhe <sensor1010@163.com>, Viresh Kumar <viresh.kumar@linaro.org>, AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>, Sudeep Holla <sudeep.holla@arm.com>, Mario Limonciello <mario.limonciello@amd.com>, Florian Fainelli <florian.fainelli@broadcom.com>, "Rafael J. Wysocki" <rafael@kernel.org>, Kevin Hilman <khilman@baylibre.com>, Sasha Levin <sashal@kernel.org>
-Message-ID: <20260716174555.787913-2-sashal@kernel.org>
-
-From: Lizhe <sensor1010@163.com>
-
-[ Upstream commit b4b1ddc9dfe997a5f492fa3a36487f8e7a5de30d ]
-
-The cpufreq core doesn't check the return type of the exit() callback
-and there is not much the core can do on failures at that point. Just
-drop the returned value and make it return void.
-
-Signed-off-by: Lizhe <sensor1010@163.com>
-[ Viresh: Reworked the patches to fix all missing changes together. ]
-Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
-Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> # Mediatek
-Acked-by: Sudeep Holla <sudeep.holla@arm.com> # scpi, scmi, vexpress
-Acked-by: Mario Limonciello <mario.limonciello@amd.com> # amd
-Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com> # bmips
-Acked-by: Rafael J. Wysocki <rafael@kernel.org>
-Acked-by: Kevin Hilman <khilman@baylibre.com> # omap
-Stable-dep-of: bcb8889c4981 ("cpufreq: qcom-cpufreq-hw: Fix possible double free")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/cpufreq/acpi-cpufreq.c         |    4 +---
- drivers/cpufreq/amd-pstate.c           |    7 ++-----
- drivers/cpufreq/apple-soc-cpufreq.c    |    4 +---
- drivers/cpufreq/bmips-cpufreq.c        |    4 +---
- drivers/cpufreq/cppc_cpufreq.c         |    3 +--
- drivers/cpufreq/cpufreq-dt.c           |    3 +--
- drivers/cpufreq/e_powersaver.c         |    3 +--
- drivers/cpufreq/intel_pstate.c         |    8 +++-----
- drivers/cpufreq/mediatek-cpufreq-hw.c  |    4 +---
- drivers/cpufreq/mediatek-cpufreq.c     |    4 +---
- drivers/cpufreq/omap-cpufreq.c         |    3 +--
- drivers/cpufreq/pasemi-cpufreq.c       |    6 ++----
- drivers/cpufreq/powernow-k6.c          |    5 ++---
- drivers/cpufreq/powernow-k7.c          |    3 +--
- drivers/cpufreq/powernow-k8.c          |    6 ++----
- drivers/cpufreq/powernv-cpufreq.c      |    4 +---
- drivers/cpufreq/ppc_cbe_cpufreq.c      |    3 +--
- drivers/cpufreq/qcom-cpufreq-hw.c      |    4 +---
- drivers/cpufreq/qoriq-cpufreq.c        |    4 +---
- drivers/cpufreq/scmi-cpufreq.c         |    4 +---
- drivers/cpufreq/scpi-cpufreq.c         |    4 +---
- drivers/cpufreq/sh-cpufreq.c           |    4 +---
- drivers/cpufreq/sparc-us2e-cpufreq.c   |    3 +--
- drivers/cpufreq/sparc-us3-cpufreq.c    |    3 +--
- drivers/cpufreq/speedstep-centrino.c   |   10 +++-------
- drivers/cpufreq/tegra194-cpufreq.c     |    4 +---
- drivers/cpufreq/vexpress-spc-cpufreq.c |    5 ++---
- include/linux/cpufreq.h                |    2 +-
- 28 files changed, 37 insertions(+), 84 deletions(-)
-
---- a/drivers/cpufreq/acpi-cpufreq.c
-+++ b/drivers/cpufreq/acpi-cpufreq.c
-@@ -926,7 +926,7 @@ err_free:
-       return result;
- }
--static int acpi_cpufreq_cpu_exit(struct cpufreq_policy *policy)
-+static void acpi_cpufreq_cpu_exit(struct cpufreq_policy *policy)
- {
-       struct acpi_cpufreq_data *data = policy->driver_data;
-@@ -939,8 +939,6 @@ static int acpi_cpufreq_cpu_exit(struct
-       free_cpumask_var(data->freqdomain_cpus);
-       kfree(policy->freq_table);
-       kfree(data);
--
--      return 0;
- }
- static int acpi_cpufreq_resume(struct cpufreq_policy *policy)
---- a/drivers/cpufreq/amd-pstate.c
-+++ b/drivers/cpufreq/amd-pstate.c
-@@ -900,7 +900,7 @@ free_cpudata1:
-       return ret;
- }
--static int amd_pstate_cpu_exit(struct cpufreq_policy *policy)
-+static void amd_pstate_cpu_exit(struct cpufreq_policy *policy)
- {
-       struct amd_cpudata *cpudata = policy->driver_data;
-@@ -908,8 +908,6 @@ static int amd_pstate_cpu_exit(struct cp
-       freq_qos_remove_request(&cpudata->req[0]);
-       policy->fast_switch_possible = false;
-       kfree(cpudata);
--
--      return 0;
- }
- static int amd_pstate_cpu_resume(struct cpufreq_policy *policy)
-@@ -1353,7 +1351,7 @@ free_cpudata1:
-       return ret;
- }
--static int amd_pstate_epp_cpu_exit(struct cpufreq_policy *policy)
-+static void amd_pstate_epp_cpu_exit(struct cpufreq_policy *policy)
- {
-       struct amd_cpudata *cpudata = policy->driver_data;
-@@ -1363,7 +1361,6 @@ static int amd_pstate_epp_cpu_exit(struc
-       }
-       pr_debug("CPU %d exiting\n", policy->cpu);
--      return 0;
- }
- static void amd_pstate_epp_update_limit(struct cpufreq_policy *policy)
---- a/drivers/cpufreq/apple-soc-cpufreq.c
-+++ b/drivers/cpufreq/apple-soc-cpufreq.c
-@@ -311,7 +311,7 @@ out_iounmap:
-       return ret;
- }
--static int apple_soc_cpufreq_exit(struct cpufreq_policy *policy)
-+static void apple_soc_cpufreq_exit(struct cpufreq_policy *policy)
- {
-       struct apple_cpu_priv *priv = policy->driver_data;
-@@ -319,8 +319,6 @@ static int apple_soc_cpufreq_exit(struct
-       dev_pm_opp_remove_all_dynamic(priv->cpu_dev);
-       iounmap(priv->reg_base);
-       kfree(priv);
--
--      return 0;
- }
- static struct cpufreq_driver apple_soc_cpufreq_driver = {
---- a/drivers/cpufreq/bmips-cpufreq.c
-+++ b/drivers/cpufreq/bmips-cpufreq.c
-@@ -121,11 +121,9 @@ static int bmips_cpufreq_target_index(st
-       return 0;
- }
--static int bmips_cpufreq_exit(struct cpufreq_policy *policy)
-+static void bmips_cpufreq_exit(struct cpufreq_policy *policy)
- {
-       kfree(policy->freq_table);
--
--      return 0;
- }
- static int bmips_cpufreq_init(struct cpufreq_policy *policy)
---- a/drivers/cpufreq/cppc_cpufreq.c
-+++ b/drivers/cpufreq/cppc_cpufreq.c
-@@ -707,7 +707,7 @@ out:
-       return ret;
- }
--static int cppc_cpufreq_cpu_exit(struct cpufreq_policy *policy)
-+static void cppc_cpufreq_cpu_exit(struct cpufreq_policy *policy)
- {
-       struct cppc_cpudata *cpu_data = policy->driver_data;
-       struct cppc_perf_caps *caps = &cpu_data->perf_caps;
-@@ -724,7 +724,6 @@ static int cppc_cpufreq_cpu_exit(struct
-                        caps->lowest_perf, cpu, ret);
-       cppc_cpufreq_put_cpu_data(policy);
--      return 0;
- }
- static inline u64 get_delta(u64 t1, u64 t0)
---- a/drivers/cpufreq/cpufreq-dt.c
-+++ b/drivers/cpufreq/cpufreq-dt.c
-@@ -166,10 +166,9 @@ static int cpufreq_offline(struct cpufre
-       return 0;
- }
--static int cpufreq_exit(struct cpufreq_policy *policy)
-+static void cpufreq_exit(struct cpufreq_policy *policy)
- {
-       clk_put(policy->clk);
--      return 0;
- }
- static struct cpufreq_driver dt_cpufreq_driver = {
---- a/drivers/cpufreq/e_powersaver.c
-+++ b/drivers/cpufreq/e_powersaver.c
-@@ -360,14 +360,13 @@ static int eps_cpu_init(struct cpufreq_p
-       return 0;
- }
--static int eps_cpu_exit(struct cpufreq_policy *policy)
-+static void eps_cpu_exit(struct cpufreq_policy *policy)
- {
-       unsigned int cpu = policy->cpu;
-       /* Bye */
-       kfree(eps_cpu[cpu]);
-       eps_cpu[cpu] = NULL;
--      return 0;
- }
- static struct cpufreq_driver eps_driver = {
---- a/drivers/cpufreq/intel_pstate.c
-+++ b/drivers/cpufreq/intel_pstate.c
-@@ -2705,13 +2705,11 @@ static int intel_pstate_cpu_offline(stru
-       return intel_cpufreq_cpu_offline(policy);
- }
--static int intel_pstate_cpu_exit(struct cpufreq_policy *policy)
-+static void intel_pstate_cpu_exit(struct cpufreq_policy *policy)
- {
-       pr_debug("CPU %d exiting\n", policy->cpu);
-       policy->fast_switch_possible = false;
--
--      return 0;
- }
- static int __intel_pstate_cpu_init(struct cpufreq_policy *policy)
-@@ -3041,7 +3039,7 @@ pstate_exit:
-       return ret;
- }
--static int intel_cpufreq_cpu_exit(struct cpufreq_policy *policy)
-+static void intel_cpufreq_cpu_exit(struct cpufreq_policy *policy)
- {
-       struct freq_qos_request *req;
-@@ -3051,7 +3049,7 @@ static int intel_cpufreq_cpu_exit(struct
-       freq_qos_remove_request(req);
-       kfree(req);
--      return intel_pstate_cpu_exit(policy);
-+      intel_pstate_cpu_exit(policy);
- }
- static int intel_cpufreq_suspend(struct cpufreq_policy *policy)
---- a/drivers/cpufreq/mediatek-cpufreq-hw.c
-+++ b/drivers/cpufreq/mediatek-cpufreq-hw.c
-@@ -260,7 +260,7 @@ static int mtk_cpufreq_hw_cpu_init(struc
-       return 0;
- }
--static int mtk_cpufreq_hw_cpu_exit(struct cpufreq_policy *policy)
-+static void mtk_cpufreq_hw_cpu_exit(struct cpufreq_policy *policy)
- {
-       struct mtk_cpufreq_data *data = policy->driver_data;
-       struct resource *res = data->res;
-@@ -270,8 +270,6 @@ static int mtk_cpufreq_hw_cpu_exit(struc
-       writel_relaxed(0x0, data->reg_bases[REG_FREQ_ENABLE]);
-       iounmap(base);
-       release_mem_region(res->start, resource_size(res));
--
--      return 0;
- }
- static void mtk_cpufreq_register_em(struct cpufreq_policy *policy)
---- a/drivers/cpufreq/mediatek-cpufreq.c
-+++ b/drivers/cpufreq/mediatek-cpufreq.c
-@@ -599,13 +599,11 @@ static int mtk_cpufreq_init(struct cpufr
-       return 0;
- }
--static int mtk_cpufreq_exit(struct cpufreq_policy *policy)
-+static void mtk_cpufreq_exit(struct cpufreq_policy *policy)
- {
-       struct mtk_cpu_dvfs_info *info = policy->driver_data;
-       dev_pm_opp_free_cpufreq_table(info->cpu_dev, &policy->freq_table);
--
--      return 0;
- }
- static struct cpufreq_driver mtk_cpufreq_driver = {
---- a/drivers/cpufreq/omap-cpufreq.c
-+++ b/drivers/cpufreq/omap-cpufreq.c
-@@ -135,11 +135,10 @@ static int omap_cpu_init(struct cpufreq_
-       return 0;
- }
--static int omap_cpu_exit(struct cpufreq_policy *policy)
-+static void omap_cpu_exit(struct cpufreq_policy *policy)
- {
-       freq_table_free();
-       clk_put(policy->clk);
--      return 0;
- }
- static struct cpufreq_driver omap_driver = {
---- a/drivers/cpufreq/pasemi-cpufreq.c
-+++ b/drivers/cpufreq/pasemi-cpufreq.c
-@@ -204,21 +204,19 @@ out:
-       return err;
- }
--static int pas_cpufreq_cpu_exit(struct cpufreq_policy *policy)
-+static void pas_cpufreq_cpu_exit(struct cpufreq_policy *policy)
- {
-       /*
-        * We don't support CPU hotplug. Don't unmap after the system
-        * has already made it to a running state.
-        */
-       if (system_state >= SYSTEM_RUNNING)
--              return 0;
-+              return;
-       if (sdcasr_mapbase)
-               iounmap(sdcasr_mapbase);
-       if (sdcpwr_mapbase)
-               iounmap(sdcpwr_mapbase);
--
--      return 0;
- }
- static int pas_cpufreq_target(struct cpufreq_policy *policy,
---- a/drivers/cpufreq/powernow-k6.c
-+++ b/drivers/cpufreq/powernow-k6.c
-@@ -219,7 +219,7 @@ have_busfreq:
- }
--static int powernow_k6_cpu_exit(struct cpufreq_policy *policy)
-+static void powernow_k6_cpu_exit(struct cpufreq_policy *policy)
- {
-       unsigned int i;
-@@ -234,10 +234,9 @@ static int powernow_k6_cpu_exit(struct c
-                       cpufreq_freq_transition_begin(policy, &freqs);
-                       powernow_k6_target(policy, i);
-                       cpufreq_freq_transition_end(policy, &freqs, 0);
--                      break;
-+                      return;
-               }
-       }
--      return 0;
- }
- static unsigned int powernow_k6_get(unsigned int cpu)
---- a/drivers/cpufreq/powernow-k7.c
-+++ b/drivers/cpufreq/powernow-k7.c
-@@ -644,7 +644,7 @@ static int powernow_cpu_init(struct cpuf
-       return 0;
- }
--static int powernow_cpu_exit(struct cpufreq_policy *policy)
-+static void powernow_cpu_exit(struct cpufreq_policy *policy)
- {
- #ifdef CONFIG_X86_POWERNOW_K7_ACPI
-       if (acpi_processor_perf) {
-@@ -655,7 +655,6 @@ static int powernow_cpu_exit(struct cpuf
- #endif
-       kfree(powernow_table);
--      return 0;
- }
- static struct cpufreq_driver powernow_driver = {
---- a/drivers/cpufreq/powernow-k8.c
-+++ b/drivers/cpufreq/powernow-k8.c
-@@ -1089,13 +1089,13 @@ err_out:
-       return -ENODEV;
- }
--static int powernowk8_cpu_exit(struct cpufreq_policy *pol)
-+static void powernowk8_cpu_exit(struct cpufreq_policy *pol)
- {
-       struct powernow_k8_data *data = per_cpu(powernow_data, pol->cpu);
-       int cpu;
-       if (!data)
--              return -EINVAL;
-+              return;
-       powernow_k8_cpu_exit_acpi(data);
-@@ -1104,8 +1104,6 @@ static int powernowk8_cpu_exit(struct cp
-       /* pol->cpus will be empty here, use related_cpus instead. */
-       for_each_cpu(cpu, pol->related_cpus)
-               per_cpu(powernow_data, cpu) = NULL;
--
--      return 0;
- }
- static void query_values_on_cpu(void *_err)
---- a/drivers/cpufreq/powernv-cpufreq.c
-+++ b/drivers/cpufreq/powernv-cpufreq.c
-@@ -874,7 +874,7 @@ static int powernv_cpufreq_cpu_init(stru
-       return 0;
- }
--static int powernv_cpufreq_cpu_exit(struct cpufreq_policy *policy)
-+static void powernv_cpufreq_cpu_exit(struct cpufreq_policy *policy)
- {
-       struct powernv_smp_call_data freq_data;
-       struct global_pstate_info *gpstates = policy->driver_data;
-@@ -886,8 +886,6 @@ static int powernv_cpufreq_cpu_exit(stru
-               del_timer_sync(&gpstates->timer);
-       kfree(policy->driver_data);
--
--      return 0;
- }
- static int powernv_cpufreq_reboot_notifier(struct notifier_block *nb,
---- a/drivers/cpufreq/ppc_cbe_cpufreq.c
-+++ b/drivers/cpufreq/ppc_cbe_cpufreq.c
-@@ -113,10 +113,9 @@ static int cbe_cpufreq_cpu_init(struct c
-       return 0;
- }
--static int cbe_cpufreq_cpu_exit(struct cpufreq_policy *policy)
-+static void cbe_cpufreq_cpu_exit(struct cpufreq_policy *policy)
- {
-       cbe_cpufreq_pmi_policy_exit(policy);
--      return 0;
- }
- static int cbe_cpufreq_target(struct cpufreq_policy *policy,
---- a/drivers/cpufreq/qcom-cpufreq-hw.c
-+++ b/drivers/cpufreq/qcom-cpufreq-hw.c
-@@ -574,7 +574,7 @@ static int qcom_cpufreq_hw_cpu_init(stru
-       return qcom_cpufreq_hw_lmh_init(policy, index);
- }
--static int qcom_cpufreq_hw_cpu_exit(struct cpufreq_policy *policy)
-+static void qcom_cpufreq_hw_cpu_exit(struct cpufreq_policy *policy)
- {
-       struct device *cpu_dev = get_cpu_device(policy->cpu);
-       struct qcom_cpufreq_data *data = policy->driver_data;
-@@ -584,8 +584,6 @@ static int qcom_cpufreq_hw_cpu_exit(stru
-       qcom_cpufreq_hw_lmh_exit(data);
-       kfree(policy->freq_table);
-       kfree(data);
--
--      return 0;
- }
- static void qcom_cpufreq_ready(struct cpufreq_policy *policy)
---- a/drivers/cpufreq/qoriq-cpufreq.c
-+++ b/drivers/cpufreq/qoriq-cpufreq.c
-@@ -225,7 +225,7 @@ err_np:
-       return -ENODEV;
- }
--static int qoriq_cpufreq_cpu_exit(struct cpufreq_policy *policy)
-+static void qoriq_cpufreq_cpu_exit(struct cpufreq_policy *policy)
- {
-       struct cpu_data *data = policy->driver_data;
-@@ -233,8 +233,6 @@ static int qoriq_cpufreq_cpu_exit(struct
-       kfree(data->table);
-       kfree(data);
-       policy->driver_data = NULL;
--
--      return 0;
- }
- static int qoriq_cpufreq_target(struct cpufreq_policy *policy,
---- a/drivers/cpufreq/scmi-cpufreq.c
-+++ b/drivers/cpufreq/scmi-cpufreq.c
-@@ -247,7 +247,7 @@ out_free_priv:
-       return ret;
- }
--static int scmi_cpufreq_exit(struct cpufreq_policy *policy)
-+static void scmi_cpufreq_exit(struct cpufreq_policy *policy)
- {
-       struct scmi_data *priv = policy->driver_data;
-@@ -255,8 +255,6 @@ static int scmi_cpufreq_exit(struct cpuf
-       dev_pm_opp_remove_all_dynamic(priv->cpu_dev);
-       free_cpumask_var(priv->opp_shared_cpus);
-       kfree(priv);
--
--      return 0;
- }
- static void scmi_cpufreq_register_em(struct cpufreq_policy *policy)
---- a/drivers/cpufreq/scpi-cpufreq.c
-+++ b/drivers/cpufreq/scpi-cpufreq.c
-@@ -175,7 +175,7 @@ out_free_opp:
-       return ret;
- }
--static int scpi_cpufreq_exit(struct cpufreq_policy *policy)
-+static void scpi_cpufreq_exit(struct cpufreq_policy *policy)
- {
-       struct scpi_data *priv = policy->driver_data;
-@@ -183,8 +183,6 @@ static int scpi_cpufreq_exit(struct cpuf
-       dev_pm_opp_free_cpufreq_table(priv->cpu_dev, &policy->freq_table);
-       dev_pm_opp_remove_all_dynamic(priv->cpu_dev);
-       kfree(priv);
--
--      return 0;
- }
- static struct cpufreq_driver scpi_cpufreq_driver = {
---- a/drivers/cpufreq/sh-cpufreq.c
-+++ b/drivers/cpufreq/sh-cpufreq.c
-@@ -135,14 +135,12 @@ static int sh_cpufreq_cpu_init(struct cp
-       return 0;
- }
--static int sh_cpufreq_cpu_exit(struct cpufreq_policy *policy)
-+static void sh_cpufreq_cpu_exit(struct cpufreq_policy *policy)
- {
-       unsigned int cpu = policy->cpu;
-       struct clk *cpuclk = &per_cpu(sh_cpuclk, cpu);
-       clk_put(cpuclk);
--
--      return 0;
- }
- static struct cpufreq_driver sh_cpufreq_driver = {
---- a/drivers/cpufreq/sparc-us2e-cpufreq.c
-+++ b/drivers/cpufreq/sparc-us2e-cpufreq.c
-@@ -296,10 +296,9 @@ static int us2e_freq_cpu_init(struct cpu
-       return 0;
- }
--static int us2e_freq_cpu_exit(struct cpufreq_policy *policy)
-+static void us2e_freq_cpu_exit(struct cpufreq_policy *policy)
- {
-       us2e_freq_target(policy, 0);
--      return 0;
- }
- static struct cpufreq_driver cpufreq_us2e_driver = {
---- a/drivers/cpufreq/sparc-us3-cpufreq.c
-+++ b/drivers/cpufreq/sparc-us3-cpufreq.c
-@@ -140,10 +140,9 @@ static int us3_freq_cpu_init(struct cpuf
-       return 0;
- }
--static int us3_freq_cpu_exit(struct cpufreq_policy *policy)
-+static void us3_freq_cpu_exit(struct cpufreq_policy *policy)
- {
-       us3_freq_target(policy, 0);
--      return 0;
- }
- static struct cpufreq_driver cpufreq_us3_driver = {
---- a/drivers/cpufreq/speedstep-centrino.c
-+++ b/drivers/cpufreq/speedstep-centrino.c
-@@ -400,16 +400,12 @@ static int centrino_cpu_init(struct cpuf
-       return 0;
- }
--static int centrino_cpu_exit(struct cpufreq_policy *policy)
-+static void centrino_cpu_exit(struct cpufreq_policy *policy)
- {
-       unsigned int cpu = policy->cpu;
--      if (!per_cpu(centrino_model, cpu))
--              return -ENODEV;
--
--      per_cpu(centrino_model, cpu) = NULL;
--
--      return 0;
-+      if (per_cpu(centrino_model, cpu))
-+              per_cpu(centrino_model, cpu) = NULL;
- }
- /**
---- a/drivers/cpufreq/tegra194-cpufreq.c
-+++ b/drivers/cpufreq/tegra194-cpufreq.c
-@@ -526,14 +526,12 @@ static int tegra194_cpufreq_offline(stru
-       return 0;
- }
--static int tegra194_cpufreq_exit(struct cpufreq_policy *policy)
-+static void tegra194_cpufreq_exit(struct cpufreq_policy *policy)
- {
-       struct device *cpu_dev = get_cpu_device(policy->cpu);
-       dev_pm_opp_remove_all_dynamic(cpu_dev);
-       dev_pm_opp_of_cpumask_remove_table(policy->related_cpus);
--
--      return 0;
- }
- static int tegra194_cpufreq_set_target(struct cpufreq_policy *policy,
---- a/drivers/cpufreq/vexpress-spc-cpufreq.c
-+++ b/drivers/cpufreq/vexpress-spc-cpufreq.c
-@@ -447,7 +447,7 @@ static int ve_spc_cpufreq_init(struct cp
-       return 0;
- }
--static int ve_spc_cpufreq_exit(struct cpufreq_policy *policy)
-+static void ve_spc_cpufreq_exit(struct cpufreq_policy *policy)
- {
-       struct device *cpu_dev;
-@@ -455,11 +455,10 @@ static int ve_spc_cpufreq_exit(struct cp
-       if (!cpu_dev) {
-               pr_err("%s: failed to get cpu%d device\n", __func__,
-                      policy->cpu);
--              return -ENODEV;
-+              return;
-       }
-       put_cluster_clk_and_freq_table(cpu_dev, policy->related_cpus);
--      return 0;
- }
- static struct cpufreq_driver ve_spc_cpufreq_driver = {
---- a/include/linux/cpufreq.h
-+++ b/include/linux/cpufreq.h
-@@ -388,7 +388,7 @@ struct cpufreq_driver {
-       int             (*online)(struct cpufreq_policy *policy);
-       int             (*offline)(struct cpufreq_policy *policy);
--      int             (*exit)(struct cpufreq_policy *policy);
-+      void            (*exit)(struct cpufreq_policy *policy);
-       int             (*suspend)(struct cpufreq_policy *policy);
-       int             (*resume)(struct cpufreq_policy *policy);
diff --git a/queue-6.6/cpufreq-pcc-remove-empty-exit-callback.patch b/queue-6.6/cpufreq-pcc-remove-empty-exit-callback.patch
deleted file mode 100644 (file)
index ada03d9..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-From stable+bounces-276790-greg=kroah.com@vger.kernel.org Thu Jul 16 19:51:32 2026
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 16 Jul 2026 13:45:53 -0400
-Subject: cpufreq: pcc: Remove empty exit() callback
-To: stable@vger.kernel.org
-Cc: Viresh Kumar <viresh.kumar@linaro.org>, "Rafael J. Wysocki" <rafael@kernel.org>, Sasha Levin <sashal@kernel.org>
-Message-ID: <20260716174555.787913-1-sashal@kernel.org>
-
-From: Viresh Kumar <viresh.kumar@linaro.org>
-
-[ Upstream commit dfd3e8b90b3660b706c3031b0f746377c571b324 ]
-
-The exit() callback is optional, remove the empty one.
-
-Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
-Acked-by: Rafael J. Wysocki <rafael@kernel.org>
-Stable-dep-of: bcb8889c4981 ("cpufreq: qcom-cpufreq-hw: Fix possible double free")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/cpufreq/pcc-cpufreq.c |    6 ------
- 1 file changed, 6 deletions(-)
-
---- a/drivers/cpufreq/pcc-cpufreq.c
-+++ b/drivers/cpufreq/pcc-cpufreq.c
-@@ -564,18 +564,12 @@ out:
-       return result;
- }
--static int pcc_cpufreq_cpu_exit(struct cpufreq_policy *policy)
--{
--      return 0;
--}
--
- static struct cpufreq_driver pcc_cpufreq_driver = {
-       .flags = CPUFREQ_CONST_LOOPS,
-       .get = pcc_get_freq,
-       .verify = pcc_cpufreq_verify,
-       .target = pcc_cpufreq_target,
-       .init = pcc_cpufreq_cpu_init,
--      .exit = pcc_cpufreq_cpu_exit,
-       .name = "pcc-cpufreq",
- };
diff --git a/queue-6.6/cpufreq-qcom-cpufreq-hw-fix-possible-double-free.patch b/queue-6.6/cpufreq-qcom-cpufreq-hw-fix-possible-double-free.patch
deleted file mode 100644 (file)
index 059dc23..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-From stable+bounces-276792-greg=kroah.com@vger.kernel.org Thu Jul 16 19:51:28 2026
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 16 Jul 2026 13:45:55 -0400
-Subject: cpufreq: qcom-cpufreq-hw: Fix possible double free
-To: stable@vger.kernel.org
-Cc: Guangshuo Li <lgs201920130244@gmail.com>, Zhongqiu Han <zhongqiu.han@oss.qualcomm.com>, Viresh Kumar <viresh.kumar@linaro.org>, Sasha Levin <sashal@kernel.org>
-Message-ID: <20260716174555.787913-3-sashal@kernel.org>
-
-From: Guangshuo Li <lgs201920130244@gmail.com>
-
-[ Upstream commit bcb8889c4981fdde42d4fd2c29a77d510fe21da2 ]
-
-qcom_cpufreq.data is allocated with devm_kzalloc() in probe() as an
-array of per-domain data. qcom_cpufreq_hw_cpu_init() stores a pointer to
-one element of this array in policy->driver_data.
-
-qcom_cpufreq_hw_cpu_exit() currently calls kfree() on policy->driver_data.
-This is not valid because the memory is devm-managed. For the first
-domain, this can free the devm-managed allocation while the devres entry
-is still active, leading to a possible double free when the platform
-device is later detached. For other domains, the pointer may refer to an
-element inside the array rather than the allocation base.
-
-Remove the kfree(data) call and let devres release qcom_cpufreq.data.
-
-This issue was found by a static analysis tool I am developing.
-
-Fixes: 054a3ef683a1 ("cpufreq: qcom-hw: Allocate qcom_cpufreq_data during probe")
-Cc: stable@vger.kernel.org
-Signed-off-by: Guangshuo Li <lgs201920130244@gmail.com>
-Reviewed-by: Zhongqiu Han <zhongqiu.han@oss.qualcomm.com>
-Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/cpufreq/qcom-cpufreq-hw.c |    1 -
- 1 file changed, 1 deletion(-)
-
---- a/drivers/cpufreq/qcom-cpufreq-hw.c
-+++ b/drivers/cpufreq/qcom-cpufreq-hw.c
-@@ -583,7 +583,6 @@ static void qcom_cpufreq_hw_cpu_exit(str
-       dev_pm_opp_of_cpumask_remove_table(policy->related_cpus);
-       qcom_cpufreq_hw_lmh_exit(data);
-       kfree(policy->freq_table);
--      kfree(data);
- }
- static void qcom_cpufreq_ready(struct cpufreq_policy *policy)
diff --git a/queue-6.6/reset-imx7-correct-polarity-of-mipi-csi-resets-on-i.mx8mq.patch b/queue-6.6/reset-imx7-correct-polarity-of-mipi-csi-resets-on-i.mx8mq.patch
deleted file mode 100644 (file)
index 97c57fc..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-From 71827776667f4e4677a4fa806bcfb24d4b8dd9d7 Mon Sep 17 00:00:00 2001
-From: Robby Cai <robby.cai@nxp.com>
-Date: Fri, 19 Jun 2026 15:31:15 +0800
-Subject: reset: imx7: Correct polarity of MIPI CSI resets on i.MX8MQ
-
-From: Robby Cai <robby.cai@nxp.com>
-
-commit 71827776667f4e4677a4fa806bcfb24d4b8dd9d7 upstream.
-
-On i.MX8MQ, the MIPI CSI reset lines are active-low and not self-clearing.
-Writing '0' asserts reset and it remains asserted until explicitly
-deasserted by software.
-
-This driver previously treated the MIPI CSI reset signals as active-high,
-which led to incorrect reset assert/deassert sequencing. This issue was
-exposed by commit 6d79bb8fd2aa ("media: imx8mq-mipi-csi2: Explicitly
-release reset").
-
-Fix this by reflecting the correct reset polarity and ensuring proper
-reset handling.
-
-Fixes: c979dbf59987 ("reset: imx7: Add support for i.MX8MQ IP block variant")
-Cc: stable@vger.kernel.org # 6d79bb8fd2aa: media: imx8mq-mipi-csi2: Explicitly release reset
-Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
-Signed-off-by: Robby Cai <robby.cai@nxp.com>
-Reviewed-by: Guoniu Zhou <guoniu.zhou@oss.nxp.com>
-Reviewed-by: Frank Li <Frank.Li@nxp.com>
-Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/reset/reset-imx7.c |    6 ++++++
- 1 file changed, 6 insertions(+)
-
---- a/drivers/reset/reset-imx7.c
-+++ b/drivers/reset/reset-imx7.c
-@@ -236,6 +236,12 @@ static int imx8mq_reset_set(struct reset
-       case IMX8MQ_RESET_PCIE_CTRL_APPS_EN:
-       case IMX8MQ_RESET_PCIE2_CTRL_APPS_EN:
-+      case IMX8MQ_RESET_MIPI_CSI1_CORE_RESET:
-+      case IMX8MQ_RESET_MIPI_CSI1_PHY_REF_RESET:
-+      case IMX8MQ_RESET_MIPI_CSI1_ESC_RESET:
-+      case IMX8MQ_RESET_MIPI_CSI2_CORE_RESET:
-+      case IMX8MQ_RESET_MIPI_CSI2_PHY_REF_RESET:
-+      case IMX8MQ_RESET_MIPI_CSI2_ESC_RESET:
-       case IMX8MQ_RESET_MIPI_DSI_PCLK_RESET_N:
-       case IMX8MQ_RESET_MIPI_DSI_ESC_RESET_N:
-       case IMX8MQ_RESET_MIPI_DSI_DPI_RESET_N:
index 316d1eb2c0621574f0a7d4d0b01f00895d575497..66a07c50748dc0f376942d6a2d765f199e430f96 100644 (file)
@@ -1095,7 +1095,6 @@ macsec-fix-promiscuity-refcount-leak-in-macsec_dev_open.patch
 memstick-ms_block-reject-a-card-that-reports-too-many-blocks.patch
 ipvs-fix-more-places-with-wrong-ipv6-transport-offsets.patch
 ipvs-reload-ip-header-after-head-reallocation.patch
-reset-imx7-correct-polarity-of-mipi-csi-resets-on-i.mx8mq.patch
 reset-sunxi-fix-memory-region-leak-on-ioremap-failure.patch
 powerpc-spufs-fix-out-of-bounds-access-in-spufs_mem_mmap_access.patch
 wifi-mac80211-free-ack-status-frame-on-tx-header-build-failure.patch
@@ -1159,9 +1158,6 @@ ksmbd-centralize-ksmbd_conn-final-release-to-plug-transport-leak.patch
 ksmbd-track-the-connection-owning-a-byte-range-lock.patch
 proc-rename-proc_setattr-to-proc_nochmod_setattr.patch
 proc-protect-ptrace_may_access-with-exec_update_lock-fd-links.patch
-cpufreq-pcc-remove-empty-exit-callback.patch
-cpufreq-make-cpufreq_driver-exit-return-void.patch
-cpufreq-qcom-cpufreq-hw-fix-possible-double-free.patch
 writeback-avoid-contention-on-wb-list_lock-when-switching-inodes.patch
 writeback-fix-race-between-cgroup_writeback_umount-and-inode_switch_wbs.patch
 perf-x86-intel-uncore-defer-adl-global-pmon-enable-to-enable_box.patch
diff --git a/queue-7.1/net-ethernet-oa_tc6-mdiobus-parent-initialized-with-.patch b/queue-7.1/net-ethernet-oa_tc6-mdiobus-parent-initialized-with-.patch
deleted file mode 100644 (file)
index 3710bcf..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-From 469b9e0280e0a44b74cc187c0474f2785cf36270 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 11 Jun 2026 14:55:39 -0700
-Subject: net: ethernet: oa_tc6: mdiobus->parent initialized with NULL
-
-From: Selvamani Rajagopal <Selvamani.Rajagopal@onsemi.com>
-
-[ Upstream commit a221d3f7e3f3ea6a3b4bc511cf2a59242daa06e1 ]
-
-As "dev" pointer in oa_tc6 structure is never initialized,
-mbiobus->parent was initialized with NULL.  This change
-fixes it by initializing it with device pointer of spi.
-
-Fixes: 8f9bf857e43b ("net: ethernet: oa_tc6: implement internal PHY initialization")
-Signed-off-by: Selvamani Rajagopal <Selvamani.Rajagopal@onsemi.com>
-Link: https://patch.msgid.link/20260611-level-trigger-v5-2-4533a9e85ce2@onsemi.com
-Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/ethernet/oa_tc6.c |    3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
---- a/drivers/net/ethernet/oa_tc6.c
-+++ b/drivers/net/ethernet/oa_tc6.c
-@@ -107,7 +107,6 @@
- /* Internal structure for MAC-PHY drivers */
- struct oa_tc6 {
--      struct device *dev;
-       struct net_device *netdev;
-       struct phy_device *phydev;
-       struct mii_bus *mdiobus;
-@@ -518,7 +517,7 @@ static int oa_tc6_mdiobus_register(struc
-       tc6->mdiobus->read_c45 = oa_tc6_mdiobus_read_c45;
-       tc6->mdiobus->write_c45 = oa_tc6_mdiobus_write_c45;
-       tc6->mdiobus->name = "oa-tc6-mdiobus";
--      tc6->mdiobus->parent = tc6->dev;
-+      tc6->mdiobus->parent = &tc6->spi->dev;
-       snprintf(tc6->mdiobus->id, ARRAY_SIZE(tc6->mdiobus->id), "%s",
-                dev_name(&tc6->spi->dev));
index 86bad2d4c9591538b597018592b95eb344114d02..a3910c8e14901fb1cf1e3a911608416fa42514ba 100644 (file)
@@ -796,7 +796,6 @@ net-airoha-fix-always-true-condition-in-ppe1-queue-r.patch
 net-ti-icssg-prueth-fix-af_xdp-fill-ring-alloc-and-w.patch
 net-ti-icssg-use-undirected-tx-tag-for-native-xdp-in.patch
 net-ti-icssg-use-undirected-tx-tag-for-xdp-zero-copy.patch
-net-ethernet-oa_tc6-mdiobus-parent-initialized-with-.patch
 net-ethernet-oa_tc6-remove-fcs-size-in-rx-frame.patch
 ionic-fix-check-in-ionic_get_link_ext_stats.patch
 rdma-bnxt_re-initialize-dpi-variable-to-zero.patch
index df9aea5783bd82c016d647db034911c1a02ac465..403283999c3552c3dd0fd8cd8d47e75cdfbc1ec3 100644 (file)
 5.15 b7f0544d86d439cb946515d2ef6a0a75e8626710
 5.15 92c603fa07bc0d6a17345de3ad7954730b8de44b
 5.15 27414ff1b287ea9a2a11675149ec28e05539f3cc
+6.18 2eae90a457baa0048a96ed38ad93090ee38c8b2f
+6.18 5ad28496055858166eb2268344c8fda2c26d3561