---
id: CVE-2026-98825
title: 'rtc: mpfs: fix unchecked devm_clk_get() error pointer in probe()'
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  rtc: mpfs: fix unchecked devm_clk_get() error pointer in probe()

  devm_clk_get(&pdev->dev, "rtcref")'s return value was passed straight
  into clk_get_rate() without chec…
severity: none
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= 0b31d703598dc1993867597bbd45e87d824fc427 <
    74dc7c52946e3d47c40edd0875adb7cc15937066
  - >-
    Linux >= 0b31d703598dc1993867597bbd45e87d824fc427 <
    cfd70c9b19846c524f2b6195a7484bdf22071ccf
  - >-
    Linux >= 0b31d703598dc1993867597bbd45e87d824fc427 <
    8a03f8422fa08eed335c51bccb612a3d81739ff2
  - >-
    Linux >= 0b31d703598dc1993867597bbd45e87d824fc427 <
    ac41b05d15db3134e839148290d67415ee0bdb58
  - Linux 6.0
published: '2026-10-18'
updated: '2026-10-18'
sourceUpdated: '2026-10-18T15:49:17.605Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-98825'
references:
  - url: 'https://git.kernel.org/stable/c/74dc7c52946e3d47c40edd0875adb7cc15937066'
  - url: 'https://git.kernel.org/stable/c/cfd70c9b19846c524f2b6195a7484bdf22071ccf'
  - url: 'https://git.kernel.org/stable/c/8a03f8422fa08eed335c51bccb612a3d81739ff2'
  - url: 'https://git.kernel.org/stable/c/ac41b05d15db3134e839148290d67415ee0bdb58'
tags:
  - cve.org
ingestedAt: '2026-10-18T16:47:32.473Z'
---

## Overview

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

rtc: mpfs: fix unchecked devm_clk_get() error pointer in probe()

devm_clk_get(&pdev->dev, "rtcref")'s return value was passed straight
into clk_get_rate() without checking it for an error first, unlike the
"rtc" clock a few lines above which is correctly checked with
IS_ERR(). clk_get_rate() only guards against a NULL clk, not an error
pointer:

	if (!clk)
		return 0;
	...
	rate = clk_core_get_rate_recalc(clk->core);

so if devm_clk_get() ever returns an error pointer here (for example
ERR_PTR(-EPROBE_DEFER), which is the normal, expected outcome if the
clkcfg clock-provider this RTC depends on has not registered its
clocks yet by the time this driver probes), clk_get_rate() dereferences
that error pointer instead of returning 0, crashing instead of letting
probe defer.

Capture the clock in the existing 'clk' local and check it with
IS_ERR() before calling clk_get_rate(), matching the handling already
used for the "rtc" clock in this same function.

## Affected

- `Linux >= 0b31d703598dc1993867597bbd45e87d824fc427 < 74dc7c52946e3d47c40edd0875adb7cc15937066`
- `Linux >= 0b31d703598dc1993867597bbd45e87d824fc427 < cfd70c9b19846c524f2b6195a7484bdf22071ccf`
- `Linux >= 0b31d703598dc1993867597bbd45e87d824fc427 < 8a03f8422fa08eed335c51bccb612a3d81739ff2`
- `Linux >= 0b31d703598dc1993867597bbd45e87d824fc427 < ac41b05d15db3134e839148290d67415ee0bdb58`
- `Linux 6.0`

## Remediation

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