---
id: "CVE-2026-99089"
kind: "vulnerability"
aliases: ["CVE-2026-99089"]
title: "Linux kernel: Samsung I2S clock imbalance triggers a boot warning"
severity: "unknown"
cvss: null
epss: null
exploited: false
status: "open"
category: "runtime"
products: []
ecosystems: []
tags: ["audio", "exynos5250", "linux-kernel", "runtime", "samsung-soc"]
not_affected_if: ["no-samsung-i2s-driver"]
published_at: "2026-10-26T15:16:47+00:00"
first_seen_at: "2026-10-26T16:02:26+00:00"
updated_at: "2026-10-26T16:04:11+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-99089", "first_seen_at": "2026-10-26T16:02:26+00:00"}]
---

# Linux kernel: Samsung I2S clock imbalance triggers a boot warning

The Samsung I2S audio driver enables its bus clock unevenly, so the first runtime suspend after probe disables a clock that was never enabled. On Exynos5250 Arndale boards this logs a kernel warning during boot.

_Summary, check and fix written by a model from the sources; labelled as such._

## Timeline

- 2026-10-26T16:02:26+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-99089

## From the sources

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

ASoC: samsung: i2s: enable op_clk in probe to balance runtime PM

The probe function puts the device into the runtime PM active state with
only the "iis" bus clock enabled, but it also sets priv->op_clk to the
parent of the RCLK_SRC mux without enabling it. The runtime PM suspend
callback disables both clocks, so the first runtime suspend after probe
disables op_clk once more than it was enabled.

On Exynos5250 Arndale both clocks resolve to the same EXYNOS_I2S_BUS gate,
so this triggers the following warning during boot:

 WARNING: drivers/clk/clk.c:1270 at clk_core_disable+0xe4/0x23c, CPU#0: kworker/u8:3/45
 i2s_bus already disabled
 ...
 Workqueue: pm pm_runtime_work
 Call trace:
  ...
  clk_core_disable from clk_disable+0x28/0x34
  clk_disable from i2s_runtime_suspend+0x58/0x68 [snd_soc_i2s]
  i2s_runtime_suspend [snd_soc_i2s] from genpd_runtime_suspend+0xc4/0x298
  genpd_runtime_suspend from __rpm_callback+0x48/0x18c
  __rpm_callback from rpm_callback+0x4c/0x50
  rpm_callback from rpm_suspend+0xf4/0x718
  rpm_suspend from pm_runtime_work+0x9c/0xa0
  ...

Fix this by enabling op_clk in probe right after getting it, so the clock
state matches the runtime PM active state, and by disabling it in remove.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
