Description
In the Linux kernel, the following vulnerability has been resolved: cpufreq/amd-pstate: handle missing policy in dynamic EPP callbacks cpufreq_cpu_get() returns NULL when no cpufreq policy is associated with the requested CPU, for example because the CPU is offline or the policy has already been torn down. Both amd_pstate_power_supply_notifier() and amd_pstate_profile_set() acquire a policy via cpufreq_cpu_get() and then pass that pointer to amd_pstate_get_balanced_epp() and amd_pstate_set_epp(), which dereference it unconditionally. A racing CPU hotplug or driver teardown can therefore lead to a NULL pointer dereference on either of these dynamic EPP paths. The third cpufreq_cpu_get() caller in this file, amd_pstate_verify(), already handles the NULL case. Bring the two new callers in line with that pattern: return NOTIFY_OK from the power-supply notifier (matching the other "nothing to do" exits) and -ENODEV from amd_pstate_profile_set() (the usual cpufreq error for a missing CPU policy). Found by code inspection; not tested on hardware.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
471d6659925aa0dcb4ab2520fa5ee3f49dfeab22 to < 70c8c8b50d80f681f50ddcc66a9400dd87508913affectede30ca6dd5345c5b8ba05f346a8e81105352fe571 to < f4ade8d224756ab69f108204dde6777bac4664e4affectede30ca6dd5345c5b8ba05f346a8e81105352fe571 to < 39c0cf62fc7851a17782e7efe8dfb2948739c681affected
Linux Linux
Default version status: affected
7.1affected0 to < 7.1unaffected7.2.6 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected