---
id: CVE-2026-64241
title: 'gpio: rockchip: teardown bugs and resource leaks'
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  gpio: rockchip: teardown bugs and resource leaks

  Address several teardown issues and resource leaks in the driver's remove
  path and error handling:

  1. Debounce clock …
severity: none
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= 936ee2675eee1faca0dcdfa79165c7990422e0fc <
    77b6ff33c8f5642f7e7c1ca691857218683264fd
  - >-
    Linux >= 936ee2675eee1faca0dcdfa79165c7990422e0fc <
    cdc603ce3118232712ba443dd8b414d8f25ca467
  - >-
    Linux >= 936ee2675eee1faca0dcdfa79165c7990422e0fc <
    7f945f7f10f442270518dfd768d230227c495fcf
  - >-
    Linux >= 936ee2675eee1faca0dcdfa79165c7990422e0fc <
    6be81e77e1748665d7ddab9128ff1d35eb75b87d
  - >-
    Linux >= 936ee2675eee1faca0dcdfa79165c7990422e0fc <
    9500077678230e36d22bf16d2b9539c13e59a801
  - Linux 5.15
published: '2026-07-24'
updated: '2026-10-21'
sourceUpdated: '2026-10-21T12:43:12.330Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-64241'
references:
  - url: 'https://git.kernel.org/stable/c/77b6ff33c8f5642f7e7c1ca691857218683264fd'
  - url: 'https://git.kernel.org/stable/c/cdc603ce3118232712ba443dd8b414d8f25ca467'
  - url: 'https://git.kernel.org/stable/c/7f945f7f10f442270518dfd768d230227c495fcf'
  - url: 'https://git.kernel.org/stable/c/6be81e77e1748665d7ddab9128ff1d35eb75b87d'
  - url: 'https://git.kernel.org/stable/c/9500077678230e36d22bf16d2b9539c13e59a801'
tags:
  - cve.org
epss: 0.00114
epssPercentile: 0.01376
ingestedAt: '2026-10-21T12:48:53.609Z'
---

## Overview

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

gpio: rockchip: teardown bugs and resource leaks

Address several teardown issues and resource leaks in the driver's remove
path and error handling:

1. Debounce clock reference leak: The debounce clock (bank->db_clk) is
   obtained using of_clk_get() which increments the clock's reference
   count, but clk_put() is never called. Register a devm action to
   cleanly release it on unbind. Note that of_clk_get(..., 1) remains
   necessary over devm_clk_get() because the DT binding does not define
   clock-names, precluding name-based lookup.

2. Unregistered chained IRQ handler: The chained IRQ handler is not
   disconnected in remove(). If a stray interrupt fires after the driver
   is removed, the kernel attempts to execute a stale handler, leading
   to a panic. Fix this by clearing the handler in remove().

3. IRQ domain leak: The linear IRQ domain and its generic chips are
   allocated manually during probe but never removed. Remove the IRQ
   domain during driver teardown to free the associated generic chips
   and mappings.

[Bartosz: don't emit an error message on devres allocation failure]

## Affected

- `Linux >= 936ee2675eee1faca0dcdfa79165c7990422e0fc < 77b6ff33c8f5642f7e7c1ca691857218683264fd`
- `Linux >= 936ee2675eee1faca0dcdfa79165c7990422e0fc < cdc603ce3118232712ba443dd8b414d8f25ca467`
- `Linux >= 936ee2675eee1faca0dcdfa79165c7990422e0fc < 7f945f7f10f442270518dfd768d230227c495fcf`
- `Linux >= 936ee2675eee1faca0dcdfa79165c7990422e0fc < 6be81e77e1748665d7ddab9128ff1d35eb75b87d`
- `Linux >= 936ee2675eee1faca0dcdfa79165c7990422e0fc < 9500077678230e36d22bf16d2b9539c13e59a801`
- `Linux 5.15`

## Remediation

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