In the Linux kernel, the following vulnerability has been resolved:
drivers/perf: hisi: use cpuhpstateremoveinstancenocalls() for hisihns3pmu uninit process
When tearing down a 'hisi_hns3' PMU, we mistakenly run the CPU hotplug callbacks after the device has been unregistered, leading to fireworks when we try to execute empty function callbacks within the driver:
| Unable to handle kernel NULL pointer dereference at virtual address 0000000000000000 | CPU: 0 PID: 15 Comm: cpuhp/0 Tainted: G W O 5.12.0-rc4+ #1 | Hardware name: , BIOS KpxxxFPGA 1P B600 V143 04/22/2021 | pstate: 80400009 (Nzcv daif +PAN -UAO -TCO BTYPE=--) | pc : perfpmumigratecontext+0x98/0x38c | lr : perfpmumigratecontext+0x94/0x38c | | Call trace: | perfpmumigratecontext+0x98/0x38c | hisihns3pmuofflinecpu+0x104/0x12c [hisihns3_pmu]
Use cpuhpstateremoveinstancenocalls() instead of cpuhpstateremove_instance() so that the notifiers don't execute after the PMU device has been unregistered.
[will: Rewrote commit message]