int340X/processor_thermal_device: Fix proc_thermal_rapl_remove()
Passing 0 to cpuhp_remove_state() triggers the BUG_ON() in
__cpuhp_remove_state_cpuslocked() and the argument passed to
powercap_unregister_control_type() is expected to be a valid
pointer, so avoid calling these functions with incorrect
arguments from proc_thermal_rapl_remove().
Fixes: 555c45fe0d
("int340X/processor_thermal_device: add support for MMIO RAPL")
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Zhang Rui <rui.zhang@intel.com>
This commit is contained in:
parent
f76cb066ed
commit
c528adefd6
|
@ -487,6 +487,7 @@ static int proc_thermal_rapl_add(struct pci_dev *pdev,
|
|||
rapl_mmio_cpu_online, rapl_mmio_cpu_down_prep);
|
||||
if (ret < 0) {
|
||||
powercap_unregister_control_type(rapl_mmio_priv.control_type);
|
||||
rapl_mmio_priv.control_type = NULL;
|
||||
return ret;
|
||||
}
|
||||
rapl_mmio_priv.pcap_rapl_online = ret;
|
||||
|
@ -496,6 +497,9 @@ static int proc_thermal_rapl_add(struct pci_dev *pdev,
|
|||
|
||||
static void proc_thermal_rapl_remove(void)
|
||||
{
|
||||
if (IS_ERR_OR_NULL(rapl_mmio_priv.control_type))
|
||||
return;
|
||||
|
||||
cpuhp_remove_state(rapl_mmio_priv.pcap_rapl_online);
|
||||
powercap_unregister_control_type(rapl_mmio_priv.control_type);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user