---
id: CVE-2026-64162
title: 'idpf: fix read_dev_clk_lock spinlock init in idpf_ptp_init()'
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  idpf: fix read_dev_clk_lock spinlock init in idpf_ptp_init()

  In idpf_ptp_init(), read_dev_clk_lock is initialized after
  ptp_schedule_worker() had already been called (…
severity: critical
cvss: 9.8
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H'
cvssSource: cna
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= 5cb8805d2366b20ee4d7afff586d8acf17649330 <
    eb5991d4c8ba2e8153dfcda3e66a9608377b7dce
  - >-
    Linux >= 5cb8805d2366b20ee4d7afff586d8acf17649330 <
    3122d70b7c0101d897fb795658a7b93f854935f2
  - >-
    Linux >= 5cb8805d2366b20ee4d7afff586d8acf17649330 <
    da4f76b6a84ede14a71282ef841768299ead0221
  - Linux 6.16
ssvc:
  exploitation: none
  automatable: 'yes'
  technicalImpact: total
  timestamp: '2026-10-16T15:37:07.013851Z'
published: '2026-07-19'
updated: '2026-10-16'
sourceUpdated: '2026-10-16T15:42:25.140Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-64162'
references:
  - url: 'https://git.kernel.org/stable/c/eb5991d4c8ba2e8153dfcda3e66a9608377b7dce'
  - url: 'https://git.kernel.org/stable/c/3122d70b7c0101d897fb795658a7b93f854935f2'
  - url: 'https://git.kernel.org/stable/c/da4f76b6a84ede14a71282ef841768299ead0221'
tags:
  - cve.org
epss: 0.00347
epssPercentile: 0.26728
ingestedAt: '2026-10-16T17:24:46.807Z'
---

## Overview

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

idpf: fix read_dev_clk_lock spinlock init in idpf_ptp_init()

In idpf_ptp_init(), read_dev_clk_lock is initialized after
ptp_schedule_worker() had already been called (and after
idpf_ptp_settime64() could reach the lock). The PTP aux worker
fires immediately upon scheduling and can call into
idpf_ptp_read_src_clk_reg_direct(), which takes
spin_lock(&ptp->read_dev_clk_lock) on an uninitialized lock, triggering
the lockdep "non-static key" warning:

[12973.796587] idpf 0000:83:00.0: Device HW Reset initiated
[12974.094507] INFO: trying to register non-static key.
...
[12974.097208] Call Trace:
[12974.097213]  <TASK>
[12974.097218]  dump_stack_lvl+0x93/0xe0
[12974.097234]  register_lock_class+0x4c4/0x4e0
[12974.097249]  ? __lock_acquire+0x427/0x2290
[12974.097259]  __lock_acquire+0x98/0x2290
[12974.097272]  lock_acquire+0xc6/0x310
[12974.097281]  ? idpf_ptp_read_src_clk_reg+0xb7/0x150 [idpf]
[12974.097311]  ? lockdep_hardirqs_on_prepare+0xde/0x190
[12974.097318]  ? finish_task_switch.isra.0+0xd2/0x350
[12974.097330]  ? __pfx_ptp_aux_kworker+0x10/0x10 [ptp]
[12974.097343]  _raw_spin_lock+0x30/0x40
[12974.097353]  ? idpf_ptp_read_src_clk_reg+0xb7/0x150 [idpf]
[12974.097373]  idpf_ptp_read_src_clk_reg+0xb7/0x150 [idpf]
[12974.097391]  ? kthread_worker_fn+0x88/0x3d0
[12974.097404]  ? kthread_worker_fn+0x4e/0x3d0
[12974.097411]  idpf_ptp_update_cached_phctime+0x26/0x120 [idpf]
[12974.097428]  ? _raw_spin_unlock_irq+0x28/0x50
[12974.097436]  idpf_ptp_do_aux_work+0x15/0x20 [idpf]
[12974.097454]  ptp_aux_kworker+0x20/0x40 [ptp]
[12974.097464]  kthread_worker_fn+0xd5/0x3d0
[12974.097474]  ? __pfx_kthread_worker_fn+0x10/0x10
[12974.097482]  kthread+0xf4/0x130
[12974.097489]  ? __pfx_kthread+0x10/0x10
[12974.097498]  ret_from_fork+0x32c/0x410
[12974.097512]  ? __pfx_kthread+0x10/0x10
[12974.097519]  ret_from_fork_asm+0x1a/0x30
[12974.097540]  </TASK>

Move the call to spin_lock_init() up a bit to make sure read_dev_clk_lock
is not touched before it's been initialized.

## Affected

- `Linux >= 5cb8805d2366b20ee4d7afff586d8acf17649330 < eb5991d4c8ba2e8153dfcda3e66a9608377b7dce`
- `Linux >= 5cb8805d2366b20ee4d7afff586d8acf17649330 < 3122d70b7c0101d897fb795658a7b93f854935f2`
- `Linux >= 5cb8805d2366b20ee4d7afff586d8acf17649330 < da4f76b6a84ede14a71282ef841768299ead0221`
- `Linux 6.16`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
