From: Ilan Peer <ilan.peer(a)intel.com>
[ Upstream commit f81aa834bfa91c827f290b62a245e23c5ad2813c ]
The regulatory domain information was initialized every time the
FW was loaded and the device was restarted. This was unnecessary
and useless as at this stage the wiphy channels information was
not setup yet so while the regulatory domain was set to the wiphy,
the channel information was not updated.
In case that a specific MCC was configured during FW initialization
then following updates with this MCC are ignored, and thus the
wiphy channels information is left with information not matching
the regulatory domain.
This commit moves the regulatory domain initialization to after the
operational firmware is started, i.e., after the wiphy channels were
configured and the regulatory information is needed.
Signed-off-by: Ilan Peer <ilan.peer(a)intel.com>
Reviewed-by: Johannes Berg <johannes.berg(a)intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit(a)intel.com>
Link: https://patch.msgid.link/20250604061200.f138a7382093.I2fd8b3e99be13c2687da4…
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit(a)intel.com>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
---
**YES**
This commit should be backported to stable kernel trees. Here's my
extensive analysis:
## Bug Fix Nature
The commit fixes a real bug where regulatory domain information and
wiphy channel configurations become mismatched. Specifically, from the
commit message:
1. **Timing Issue**: The regulatory domain was being initialized in
`iwl_mld_load_fw()` before wiphy channels were properly configured
2. **Update Failures**: When a specific MCC (Mobile Country Code) was
configured during FW initialization, subsequent updates with the same
MCC would be ignored, leaving channel information inconsistent with
the regulatory domain
## Code Analysis
The changes are minimal and low-risk:
- **Removed from `iwl_mld_load_fw()`**: Lines removing the
`iwl_mld_init_mcc()` call and its error handling
- **Added to `iwl_mld_start_fw()`**: The same call is added after
`iwl_mld_config_fw()`, ensuring proper initialization order
## Comparison with Similar Commits
Most relevant is Similar Commit #4 (marked YES for backporting), which
addressed regulatory domain update issues when firmware starts. That
commit fixed the handling of `MCC_RESP_ILLEGAL` responses to ensure
channel lists were properly updated - a closely related regulatory
compliance issue.
## Stable Kernel Criteria
This commit meets the stable kernel requirements:
1. **Fixes a real bug**: Regulatory domain/channel mismatch is a serious
issue affecting wireless compliance
2. **Small and contained**: Only moves a function call to the correct
initialization sequence
3. **Low regression risk**: No new logic introduced, just reordering
existing initialization
4. **Important functionality**: Regulatory compliance is critical for
legal wireless operation
5. **Clear root cause**: The issue and fix are well-understood and
documented
## Repository Context
From examining the kernel repository, I found that regulatory domain
initialization has been an ongoing concern in iwlwifi, with multiple
fixes addressing timing and synchronization issues. The `lar_regdom_set`
flag is critical for preventing operations (like scans) before
regulatory setup is complete.
The fix ensures that `iwl_mld_init_mcc()` is called after the firmware
is fully configured (`iwl_mld_config_fw()`), which is the proper time
when wiphy channels are set up and ready to receive regulatory updates.
This is precisely the type of bug fix that stable kernels should receive
- it corrects a specific functional issue without introducing
architectural changes or new features.
drivers/net/wireless/intel/iwlwifi/mld/fw.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/net/wireless/intel/iwlwifi/mld/fw.c b/drivers/net/wireless/intel/iwlwifi/mld/fw.c
index 4b083d447ee2f..6be9366bd4b14 100644
--- a/drivers/net/wireless/intel/iwlwifi/mld/fw.c
+++ b/drivers/net/wireless/intel/iwlwifi/mld/fw.c
@@ -339,10 +339,6 @@ int iwl_mld_load_fw(struct iwl_mld *mld)
if (ret)
goto err;
- ret = iwl_mld_init_mcc(mld);
- if (ret)
- goto err;
-
mld->fw_status.running = true;
return 0;
@@ -535,6 +531,10 @@ int iwl_mld_start_fw(struct iwl_mld *mld)
if (ret)
goto error;
+ ret = iwl_mld_init_mcc(mld);
+ if (ret)
+ goto error;
+
return 0;
error:
--
2.39.5
This is the start of the stable review cycle for the 6.14.11 release.
There are 24 patches in this series, all will be posted as a response
to this one. If anyone has any issues with these being applied, please
let me know.
Responses should be made by Mon, 09 Jun 2025 10:07:05 +0000.
Anything received after that time might be too late.
The whole patch series can be found in one patch at:
https://www.kernel.org/pub/linux/kernel/v6.x/stable-review/patch-6.14.11-rc…
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-6.14.y
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Linux 6.14.11-rc1
Aurabindo Pillai <aurabindo.pillai(a)amd.com>
Revert "drm/amd/display: more liberal vmin/vmax update for freesync"
Xu Yang <xu.yang_2(a)nxp.com>
dt-bindings: phy: imx8mq-usb: fix fsl,phy-tx-vboost-level-microvolt property
Lukasz Czechowski <lukasz.czechowski(a)thaumatec.com>
dt-bindings: usb: cypress,hx3: Add support for all variants
David Lechner <dlechner(a)baylibre.com>
dt-bindings: pwm: adi,axi-pwmgen: Fix clocks
Sergey Senozhatsky <senozhatsky(a)chromium.org>
thunderbolt: Do not double dequeue a configuration request
Carlos Llamas <cmllamas(a)google.com>
binder: fix yet another UAF in binder_devices
Dmitry Antipov <dmantipov(a)yandex.ru>
binder: fix use-after-free in binderfs_evict_inode()
Dave Penkler <dpenkler(a)gmail.com>
usb: usbtmc: Fix timeout value in get_stb
Arnd Bergmann <arnd(a)arndb.de>
nvmem: rmem: select CONFIG_CRC32
Dustin Lundquist <dustin(a)null-ptr.net>
serial: jsm: fix NPE during jsm_uart_port_init
Bartosz Golaszewski <bartosz.golaszewski(a)linaro.org>
Bluetooth: hci_qca: move the SoC type check to the right place
Qasim Ijaz <qasdev00(a)gmail.com>
usb: typec: ucsi: fix Clang -Wsign-conversion warning
Charles Yeh <charlesyeh522(a)gmail.com>
USB: serial: pl2303: add new chip PL2303GC-Q20 and PL2303GT-2AB
Hongyu Xie <xiehongyu1(a)kylinos.cn>
usb: storage: Ignore UAS driver for SanDisk 3.2 Gen2 storage device
Jiayi Li <lijiayi(a)kylinos.cn>
usb: quirks: Add NO_LPM quirk for SanDisk Extreme 55AE
Mike Marshall <hubcap(a)omnibond.com>
orangefs: adjust counting code to recover from 665575cf
Alexandre Mergnat <amergnat(a)baylibre.com>
rtc: Fix offset calculation for .start_secs < 0
Alexandre Mergnat <amergnat(a)baylibre.com>
rtc: Make rtc_time64_to_tm() support dates before 1970
Sakari Ailus <sakari.ailus(a)linux.intel.com>
Documentation: ACPI: Use all-string data node references
Gautham R. Shenoy <gautham.shenoy(a)amd.com>
acpi-cpufreq: Fix nominal_freq units to KHz in get_max_boost_ratio()
Pritam Manohar Sutar <pritam.sutar(a)samsung.com>
clk: samsung: correct clock summary for hsi1 block
Gabor Juhos <j4g8y7(a)gmail.com>
pinctrl: armada-37xx: set GPIO output value before setting direction
Gabor Juhos <j4g8y7(a)gmail.com>
pinctrl: armada-37xx: use correct OUTPUT_VAL register for GPIOs > 31
Pan Taixi <pantaixi(a)huaweicloud.com>
tracing: Fix compilation warning on arm32
-------------
Diffstat:
.../bindings/phy/fsl,imx8mq-usb-phy.yaml | 3 +--
.../devicetree/bindings/pwm/adi,axi-pwmgen.yaml | 13 +++++++++--
.../devicetree/bindings/usb/cypress,hx3.yaml | 19 +++++++++++++---
.../acpi/dsd/data-node-references.rst | 26 ++++++++++------------
Documentation/firmware-guide/acpi/dsd/graph.rst | 11 ++++-----
Documentation/firmware-guide/acpi/dsd/leds.rst | 7 +-----
Makefile | 4 ++--
drivers/android/binder.c | 16 +++++++++++--
drivers/android/binder_internal.h | 8 +++++--
drivers/android/binderfs.c | 2 +-
drivers/bluetooth/hci_qca.c | 14 ++++++------
drivers/clk/samsung/clk-exynosautov920.c | 2 +-
drivers/cpufreq/acpi-cpufreq.c | 2 +-
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 16 +++++--------
drivers/nvmem/Kconfig | 1 +
drivers/pinctrl/mvebu/pinctrl-armada-37xx.c | 14 +++++++-----
drivers/rtc/class.c | 2 +-
drivers/rtc/lib.c | 24 +++++++++++++++-----
drivers/thunderbolt/ctl.c | 5 +++++
drivers/tty/serial/jsm/jsm_tty.c | 1 +
drivers/usb/class/usbtmc.c | 4 +++-
drivers/usb/core/quirks.c | 3 +++
drivers/usb/serial/pl2303.c | 2 ++
drivers/usb/storage/unusual_uas.h | 7 ++++++
drivers/usb/typec/ucsi/ucsi.h | 2 +-
fs/orangefs/inode.c | 9 ++++----
kernel/trace/trace.c | 2 +-
27 files changed, 139 insertions(+), 80 deletions(-)
This is the start of the stable review cycle for the 6.12.33 release.
There are 24 patches in this series, all will be posted as a response
to this one. If anyone has any issues with these being applied, please
let me know.
Responses should be made by Mon, 09 Jun 2025 10:07:05 +0000.
Anything received after that time might be too late.
The whole patch series can be found in one patch at:
https://www.kernel.org/pub/linux/kernel/v6.x/stable-review/patch-6.12.33-rc…
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-6.12.y
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Linux 6.12.33-rc1
Aurabindo Pillai <aurabindo.pillai(a)amd.com>
Revert "drm/amd/display: more liberal vmin/vmax update for freesync"
Xu Yang <xu.yang_2(a)nxp.com>
dt-bindings: phy: imx8mq-usb: fix fsl,phy-tx-vboost-level-microvolt property
Lukasz Czechowski <lukasz.czechowski(a)thaumatec.com>
dt-bindings: usb: cypress,hx3: Add support for all variants
Sergey Senozhatsky <senozhatsky(a)chromium.org>
thunderbolt: Do not double dequeue a configuration request
Dave Penkler <dpenkler(a)gmail.com>
usb: usbtmc: Fix timeout value in get_stb
Dustin Lundquist <dustin(a)null-ptr.net>
serial: jsm: fix NPE during jsm_uart_port_init
Bartosz Golaszewski <bartosz.golaszewski(a)linaro.org>
Bluetooth: hci_qca: move the SoC type check to the right place
Qasim Ijaz <qasdev00(a)gmail.com>
usb: typec: ucsi: fix Clang -Wsign-conversion warning
Charles Yeh <charlesyeh522(a)gmail.com>
USB: serial: pl2303: add new chip PL2303GC-Q20 and PL2303GT-2AB
Hongyu Xie <xiehongyu1(a)kylinos.cn>
usb: storage: Ignore UAS driver for SanDisk 3.2 Gen2 storage device
Jiayi Li <lijiayi(a)kylinos.cn>
usb: quirks: Add NO_LPM quirk for SanDisk Extreme 55AE
Jon Hunter <jonathanh(a)nvidia.com>
Revert "cpufreq: tegra186: Share policy per cluster"
Ming Lei <ming.lei(a)redhat.com>
block: fix adding folio to bio
Ajay Agarwal <ajayagarwal(a)google.com>
PCI/ASPM: Disable L1 before disabling L1 PM Substates
Karol Wachowski <karol.wachowski(a)intel.com>
accel/ivpu: Update power island delays
Maciej Falkowski <maciej.falkowski(a)linux.intel.com>
accel/ivpu: Add initial Panther Lake support
Alexandre Mergnat <amergnat(a)baylibre.com>
rtc: Fix offset calculation for .start_secs < 0
Alexandre Mergnat <amergnat(a)baylibre.com>
rtc: Make rtc_time64_to_tm() support dates before 1970
Sakari Ailus <sakari.ailus(a)linux.intel.com>
Documentation: ACPI: Use all-string data node references
Gautham R. Shenoy <gautham.shenoy(a)amd.com>
acpi-cpufreq: Fix nominal_freq units to KHz in get_max_boost_ratio()
Gabor Juhos <j4g8y7(a)gmail.com>
pinctrl: armada-37xx: set GPIO output value before setting direction
Gabor Juhos <j4g8y7(a)gmail.com>
pinctrl: armada-37xx: use correct OUTPUT_VAL register for GPIOs > 31
Chao Yu <chao(a)kernel.org>
f2fs: fix to avoid accessing uninitialized curseg
Pan Taixi <pantaixi(a)huaweicloud.com>
tracing: Fix compilation warning on arm32
-------------
Diffstat:
.../bindings/phy/fsl,imx8mq-usb-phy.yaml | 3 +-
.../devicetree/bindings/usb/cypress,hx3.yaml | 19 ++++-
.../acpi/dsd/data-node-references.rst | 26 +++---
Documentation/firmware-guide/acpi/dsd/graph.rst | 11 +--
Documentation/firmware-guide/acpi/dsd/leds.rst | 7 +-
Makefile | 4 +-
block/bio.c | 11 ++-
drivers/accel/ivpu/ivpu_drv.c | 1 +
drivers/accel/ivpu/ivpu_drv.h | 10 ++-
drivers/accel/ivpu/ivpu_fw.c | 3 +
drivers/accel/ivpu/ivpu_hw_40xx_reg.h | 2 +
drivers/accel/ivpu/ivpu_hw_ip.c | 49 +++++++----
drivers/bluetooth/hci_qca.c | 14 ++--
drivers/cpufreq/acpi-cpufreq.c | 2 +-
drivers/cpufreq/tegra186-cpufreq.c | 7 --
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 16 ++--
drivers/pci/pcie/aspm.c | 94 ++++++++++++----------
drivers/pinctrl/mvebu/pinctrl-armada-37xx.c | 14 ++--
drivers/rtc/class.c | 2 +-
drivers/rtc/lib.c | 24 ++++--
drivers/thunderbolt/ctl.c | 5 ++
drivers/tty/serial/jsm/jsm_tty.c | 1 +
drivers/usb/class/usbtmc.c | 4 +-
drivers/usb/core/quirks.c | 3 +
drivers/usb/serial/pl2303.c | 2 +
drivers/usb/storage/unusual_uas.h | 7 ++
drivers/usb/typec/ucsi/ucsi.h | 2 +-
fs/f2fs/inode.c | 7 ++
fs/f2fs/segment.h | 9 ++-
kernel/trace/trace.c | 2 +-
30 files changed, 218 insertions(+), 143 deletions(-)
From: Will Deacon <will(a)kernel.org>
commit 250f25367b58d8c65a1b060a2dda037eea09a672 upstream.
If kvm_arch_vcpu_create() fails to share the vCPU page with the
hypervisor, we propagate the error back to the ioctl but leave the
vGIC vCPU data initialised. Note only does this leak the corresponding
memory when the vCPU is destroyed but it can also lead to use-after-free
if the redistributor device handling tries to walk into the vCPU.
Add the missing cleanup to kvm_arch_vcpu_create(), ensuring that the
vGIC vCPU structures are destroyed on error.
Cc: <stable(a)vger.kernel.org>
Cc: Marc Zyngier <maz(a)kernel.org>
Cc: Oliver Upton <oliver.upton(a)linux.dev>
Cc: Quentin Perret <qperret(a)google.com>
Signed-off-by: Will Deacon <will(a)kernel.org>
Reviewed-by: Marc Zyngier <maz(a)kernel.org>
Link: https://lore.kernel.org/r/20250314133409.9123-1-will@kernel.org
Signed-off-by: Oliver Upton <oliver.upton(a)linux.dev>
[Denis: minor fix to resolve merge conflict.]
Signed-off-by: Denis Arefev <arefev(a)swemel.ru>
---
Backport fix for CVE-2025-37849
Link: https://nvd.nist.gov/vuln/detail/cve-2025-37849
---
arch/arm64/kvm/arm.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/kvm/arm.c b/arch/arm64/kvm/arm.c
index afe8be2fef88..3adaa3216baf 100644
--- a/arch/arm64/kvm/arm.c
+++ b/arch/arm64/kvm/arm.c
@@ -294,7 +294,12 @@ int kvm_arch_vcpu_create(struct kvm_vcpu *vcpu)
if (err)
return err;
- return create_hyp_mappings(vcpu, vcpu + 1, PAGE_HYP);
+ err = kvm_share_hyp(vcpu, vcpu + 1);
+ if (err)
+ kvm_vgic_vcpu_destroy(vcpu);
+
+ return err;
+
}
void kvm_arch_vcpu_postcreate(struct kvm_vcpu *vcpu)
--
2.43.0
The RK3588 GPU power domain cannot be activated unless the external
power regulator is already on. When GPU support was added to this DT,
we had no way to represent this requirement, so `regulator-always-on`
was added to the `vdd_gpu_s0` regulator in order to ensure stability.
A later patch series (see "Fixes:" commit) resolved this shortcoming,
but that commit left the workaround -- and rendered the comment above
it no longer correct.
Remove the workaround to allow the GPU power regulator to power off, now
that the DT includes the necessary information to power it back on
correctly.
Fixes: f94500eb7328b ("arm64: dts: rockchip: Add GPU power domain regulator dependency for RK3588")
Signed-off-by: Sam Edwards <CFSworks(a)gmail.com>
Cc: <stable(a)vger.kernel.org>
---
Hi friends,
This is a patch from about two weeks ago that I failed to address to all
relevant recipients, so I'm resending it with the recipients of the "Fixes:"
commit included, as I should have done originally.
The original thread had no discussion.
Well wishes,
Sam
---
arch/arm64/boot/dts/rockchip/rk3588-turing-rk1.dtsi | 11 -----------
1 file changed, 11 deletions(-)
diff --git a/arch/arm64/boot/dts/rockchip/rk3588-turing-rk1.dtsi b/arch/arm64/boot/dts/rockchip/rk3588-turing-rk1.dtsi
index 60ad272982ad..6daea8961fdd 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588-turing-rk1.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3588-turing-rk1.dtsi
@@ -398,17 +398,6 @@ rk806_dvs3_null: dvs3-null-pins {
regulators {
vdd_gpu_s0: vdd_gpu_mem_s0: dcdc-reg1 {
- /*
- * RK3588's GPU power domain cannot be enabled
- * without this regulator active, but it
- * doesn't have to be on when the GPU PD is
- * disabled. Because the PD binding does not
- * currently allow us to express this
- * relationship, we have no choice but to do
- * this instead:
- */
- regulator-always-on;
-
regulator-boot-on;
regulator-min-microvolt = <550000>;
regulator-max-microvolt = <950000>;
--
2.48.1
Hello,
Please pull the following upstream patch to 6.15-stable:
8020361d51ee "rtla: Define _GNU_SOURCE in timerlat_bpf.c"
This fixes an rtla bug that was introduced in 6.15 and was expected to
be merged into 6.15, hence it was not tagged with Cc: stable, but did
not make it.
Thanks,
Tomas