CVE-2023-53656 PUBLISHED

drivers/perf: hisi: Don't migrate perf to the CPU going to teardown

Assigner: Linux
Reserved: 07.10.2025 Published: 07.10.2025 Updated: 07.10.2025

In the Linux kernel, the following vulnerability has been resolved:

drivers/perf: hisi: Don't migrate perf to the CPU going to teardown

The driver needs to migrate the perf context if the current using CPU going to teardown. By the time calling the cpuhp::teardown() callback the cpu_online_mask() hasn't updated yet and still includes the CPU going to teardown. In current driver's implementation we may migrate the context to the teardown CPU and leads to the below calltrace:

... [ 368.104662][ T932] task:cpuhp/0 state:D stack: 0 pid: 15 ppid: 2 flags:0x00000008 [ 368.113699][ T932] Call trace: [ 368.116834][ T932] __switch_to+0x7c/0xbc [ 368.120924][ T932] __schedule+0x338/0x6f0 [ 368.125098][ T932] schedule+0x50/0xe0 [ 368.128926][ T932] schedule_preempt_disabled+0x18/0x24 [ 368.134229][ T932] __mutex_lock.constprop.0+0x1d4/0x5dc [ 368.139617][ T932] __mutex_lock_slowpath+0x1c/0x30 [ 368.144573][ T932] mutex_lock+0x50/0x60 [ 368.148579][ T932] perf_pmu_migrate_context+0x84/0x2b0 [ 368.153884][ T932] hisi_pcie_pmu_offline_cpu+0x90/0xe0 [hisi_pcie_pmu] [ 368.160579][ T932] cpuhp_invoke_callback+0x2a0/0x650 [ 368.165707][ T932] cpuhp_thread_fun+0xe4/0x190 [ 368.170316][ T932] smpboot_thread_fn+0x15c/0x1a0 [ 368.175099][ T932] kthread+0x108/0x13c [ 368.179012][ T932] ret_from_fork+0x10/0x18 ...

Use function cpumask_any_but() to find one correct active cpu to fixes this issue.

Product Status

Vendor Linux
Product Linux
Versions Default: unaffected
  • affected from 8404b0fbc7fbd42e5c5d28cdedd450e70829c77a to be9c8c9c84b6d25a7b7d39954030aba6f759feb6 (excl.)
  • affected from 8404b0fbc7fbd42e5c5d28cdedd450e70829c77a to f564e543a43d0f1cabac791672c8a6fc78ce12d0 (excl.)
  • affected from 8404b0fbc7fbd42e5c5d28cdedd450e70829c77a to b64569897d86b611befbb895d815280fea94e1ed (excl.)
  • affected from 8404b0fbc7fbd42e5c5d28cdedd450e70829c77a to 7a6a9f1c5a0a875a421db798d4b2ee022dc1ee1a (excl.)
Vendor Linux
Product Linux
Versions Default: affected
  • Version 5.17 is affected
  • unaffected from 0 to 5.17 (excl.)
  • unaffected from 6.1.39 to 6.1.* (incl.)
  • unaffected from 6.3.13 to 6.3.* (incl.)
  • unaffected from 6.4.4 to 6.4.* (incl.)
  • unaffected from 6.5 to * (incl.)

References