---
id: CVE-2026-98564
title: 'net: dsa: mt7530: leave the MDIO IRQ mappings to regmap-irq'
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  net: dsa: mt7530: leave the MDIO IRQ mappings to regmap-irq

  mt7530_remove_common() disposes the per-PHY interrupt mappings from
  .remove, but the regmap-irq chip that o…
severity: none
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= 254f6b272e3b67bf31c42ee9da62a449d74d1478 <
    2357c682f6eaf639dec88c68b3c0c93a3b802635
  - >-
    Linux >= 254f6b272e3b67bf31c42ee9da62a449d74d1478 <
    f306e465b5a2091cd3fe3dd0feb10cfc94cfb2f8
  - >-
    Linux >= 254f6b272e3b67bf31c42ee9da62a449d74d1478 <
    0d80ba0a204c6a16bd7778b50de578dff107c0fe
  - Linux 6.15
published: '2026-10-18'
updated: '2026-10-18'
sourceUpdated: '2026-10-18T15:18:31.044Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-98564'
references:
  - url: 'https://git.kernel.org/stable/c/2357c682f6eaf639dec88c68b3c0c93a3b802635'
  - url: 'https://git.kernel.org/stable/c/f306e465b5a2091cd3fe3dd0feb10cfc94cfb2f8'
  - url: 'https://git.kernel.org/stable/c/0d80ba0a204c6a16bd7778b50de578dff107c0fe'
tags:
  - cve.org
ingestedAt: '2026-10-18T15:45:12.259Z'
---

## Overview

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

net: dsa: mt7530: leave the MDIO IRQ mappings to regmap-irq

mt7530_remove_common() disposes the per-PHY interrupt mappings from
.remove, but the regmap-irq chip that owns the domain is devm-registered,
so its parent interrupt is only freed once .remove has returned. The
switch's own regmap-irq thread can therefore still dispatch on a mapping
that is already gone: irq_find_mapping() returns 0, irq_to_desc() returns
NULL and handle_nested_irq() locks desc->lock without checking it. The
attached PHYs have not given those interrupts back yet either, which the
kernel warns about a moment before the fault.

regmap_del_irq_chip() disposes the same mappings itself, after freeing the
parent interrupt and before removing the domain, so there is nothing left
for the driver to do here. Until it runs the descriptors stay alive, and a
late dispatch on one of them is harmless: dsa_unregister_switch() has freed
the PHY handlers by then, so handle_nested_irq() finds no action and
returns.

## Affected

- `Linux >= 254f6b272e3b67bf31c42ee9da62a449d74d1478 < 2357c682f6eaf639dec88c68b3c0c93a3b802635`
- `Linux >= 254f6b272e3b67bf31c42ee9da62a449d74d1478 < f306e465b5a2091cd3fe3dd0feb10cfc94cfb2f8`
- `Linux >= 254f6b272e3b67bf31c42ee9da62a449d74d1478 < 0d80ba0a204c6a16bd7778b50de578dff107c0fe`
- `Linux 6.15`

## Remediation

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