linux-stable/drivers
Rafael J. Wysocki 3e25a8efd2 cpufreq: intel_pstate: Check turbo_is_disabled() in store_no_turbo()
[ Upstream commit 350cbb5d2f ]

After recent changes in intel_pstate, global.turbo_disabled is only set
at the initialization time and never changed.  However, it turns out
that on some systems the "turbo disabled" bit in MSR_IA32_MISC_ENABLE,
the initial state of which is reflected by global.turbo_disabled, can be
flipped later and there should be a way to take that into account (other
than checking that MSR every time the driver runs which is costly and
useless overhead on the vast majority of systems).

For this purpose, notice that before the changes in question,
store_no_turbo() contained a turbo_is_disabled() check that was used
for updating global.turbo_disabled if the "turbo disabled" bit in
MSR_IA32_MISC_ENABLE had been flipped and that functionality can be
restored.  Then, users will be able to reset global.turbo_disabled
by writing 0 to no_turbo which used to work before on systems with
flipping "turbo disabled" bit.

This guarantees the driver state to remain in sync, but READ_ONCE()
annotations need to be added in two places where global.turbo_disabled
is accessed locklessly, so modify the driver to make that happen.

Fixes: 0940f1a801 ("cpufreq: intel_pstate: Do not update global.turbo_disabled after initialization")
Closes: https://lore.kernel.org/linux-pm/bf3ebf1571a4788e97daf861eb493c12d42639a3.camel@xry111.site
Suggested-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Reported-by: Xi Ruoyao <xry111@xry111.site>
Tested-by: Xi Ruoyao <xry111@xry111.site>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2025-09-09 18:54:25 +02:00
..
accessibility
acpi ACPI/IORT: Fix memory leak in iort_rmr_alloc_sids() 2025-09-09 18:54:16 +02:00
amba
android
ata ata: Fix SATA_MOBILE_LPM_POLICY description in Kconfig 2025-08-28 16:26:12 +02:00
atm atm: atmtcp: Prevent arbitrary write in atmtcp_recv_control(). 2025-09-04 15:26:27 +02:00
auxdisplay
base
bcma
block
bluetooth
bus bus: mhi: host: Detect events pointing to unexpected TREs 2025-08-28 16:26:05 +02:00
cdrom
char ipmi: Fix strcpy source and destination the same 2025-08-28 16:26:02 +02:00
clk
clocksource
comedi comedi: Fix use of uninitialized memory in do_insn_ioctl() and do_insnlist_ioctl() 2025-08-28 16:26:14 +02:00
connector
counter
cpufreq cpufreq: intel_pstate: Check turbo_is_disabled() in store_no_turbo() 2025-09-09 18:54:25 +02:00
cpuidle
crypto crypto: qat - fix ring to service map for QAT GEN4 2025-08-28 16:26:12 +02:00
cxl
dax
dca
devfreq
dio
dma dmaengine: mediatek: Fix a flag reuse error in mtk_cqdma_tx_status() 2025-09-09 18:54:24 +02:00
dma-buf
edac
eisa
extcon
firewire
firmware
fpga fpga: zynq_fpga: Fix the wrong usage of dma_map_sgtable() 2025-08-28 16:26:14 +02:00
fsi
gnss
gpio
gpu drm/amd/amdgpu: Fix missing error return on kzalloc failure 2025-09-09 18:54:23 +02:00
greybus
hid HID: mcp2221: Handle reads greater than 60 bytes 2025-09-04 15:26:31 +02:00
hsi
hte
hv
hwmon hwmon: mlxreg-fan: Prevent fans from getting stuck at 0 RPM 2025-09-09 18:54:22 +02:00
hwspinlock
hwtracing
i2c i2c: designware: Fix an error handling path in i2c_dw_pci_probe() 2025-09-09 18:54:19 +02:00
i3c i3c: master: Initialize ret in i3c_i2c_notifier_call() 2025-08-28 16:26:01 +02:00
idle
iio iio: light: opt3001: fix deadlock due to concurrent flag access 2025-09-09 18:54:19 +02:00
infiniband RDMA/bnxt_re: Fix to initialize the PBL array 2025-08-28 16:26:17 +02:00
input
interconnect
iommu iommu/amd: Avoid stack buffer overflow from kernel cmdline 2025-08-28 16:26:17 +02:00
ipack
irqchip
isdn mISDN: Fix memory leak in dsp_hwec_enable() 2025-09-09 18:54:14 +02:00
leds
macintosh
mailbox
mcb
md dm-table: fix checking for rq stackable devices 2025-08-28 16:26:01 +02:00
media media: venus: Fix OOB read due to missing payload bound check 2025-08-28 16:26:11 +02:00
memory
memstick memstick: Fix deadlock by moving removing flag earlier 2025-08-28 16:26:13 +02:00
message
mfd
misc misc: rtsx: usb: Ensure mmc child device is active when card is present 2025-08-28 16:26:03 +02:00
mmc mmc: sdhci-pci-gli: GL9763e: Mask the replay timer timeout of AER 2025-08-28 16:26:16 +02:00
most most: core: Drop device reference after usage in get_channel() 2025-08-28 16:26:14 +02:00
mtd mtd: rawnand: renesas: Add missing check after DMA map 2025-08-28 16:26:07 +02:00
mux
net vmxnet3: update MTU after device quiesce 2025-09-09 18:54:20 +02:00
nfc
ntb
nubus
nvdimm
nvme
nvmem
of
opp
parisc
parport
pci PCI/MSI: Add an option to write MSIX ENTRY_DATA before any reads 2025-09-09 18:54:18 +02:00
pcmcia pcmcia: Add error handling for add_interval() in do_validate_mem() 2025-09-09 18:54:22 +02:00
peci
perf
phy
pinctrl pinctrl: STMFX: add missing HAS_IOMEM dependency 2025-09-04 15:26:24 +02:00
platform platform/chrome: cros_ec: Unregister notifier in cros_ec_unregister() 2025-08-28 16:26:11 +02:00
pnp
power
powercap
pps
ps3
ptp
pwm pwm: mediatek: Fix duty and period setting 2025-08-28 16:26:07 +02:00
rapidio
ras
regulator
remoteproc
reset
rpmsg
rtc rtc: ds1307: remove clear of oscillator stop flag (OSF) in probe 2025-08-28 16:26:03 +02:00
s390 s390/sclp: Fix SCCB present check 2025-08-28 16:26:13 +02:00
sbus
scsi scsi: lpfc: Fix buffer free/clear order in deferred receive path 2025-09-09 18:54:17 +02:00
sh
siox
slimbus
soc soc: qcom: mdt_loader: Ensure we don't read past the ELF header 2025-08-28 16:26:15 +02:00
soundwire
spi spi: tegra114: Use value to check for invalid delays 2025-09-09 18:54:24 +02:00
spmi
ssb
staging media: imx: fix a potential memory leak in imx_media_csc_scaler_device_init() 2025-08-28 16:26:08 +02:00
target scsi: target: core: Generate correct identifiers for PR OUT transport IDs 2025-08-28 16:26:02 +02:00
tc
tee tee: optee: ffa: fix a typo of "optee_ffa_api_is_compatible" 2025-09-09 18:54:13 +02:00
thermal
thunderbolt thunderbolt: Fix copy+paste error in match_service_id() 2025-08-28 16:26:04 +02:00
tty vt: defkeymap: Map keycodes above 127 to K_HOLE 2025-08-28 16:26:05 +02:00
ufs scsi: ufs: exynos: Fix programming of HCI_UTRL_NEXUS_TYPE 2025-08-28 16:26:15 +02:00
uio
usb usb: dwc3: Remove WARN_ON for device endpoint command timeouts 2025-08-28 16:26:15 +02:00
vdpa
vfio vfio/mlx5: fix possible overflow in tracking max message size 2025-08-28 16:26:02 +02:00
vhost vhost/net: Protect ubufs with rcu read lock in vhost_net_ubuf_put() 2025-09-04 15:26:26 +02:00
video Revert "vgacon: Add check for vc_origin address range in vgacon_scroll()" 2025-08-28 16:26:05 +02:00
virt
virtio
vlynq
w1
watchdog
xen
zorro
Kconfig
Makefile