---
id: CVE-2026-72409
title: 'net: mvneta: re-enable percpu interrupt on resume'
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  net: mvneta: re-enable percpu interrupt on resume

  On Marvell MPIC platforms (Armada 370/XP/38x), mvneta uses a percpu
  IRQ disable/enable scheme for NAPI: the ISR (mvne…
severity: high
cvss: 7.5
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'
cvssSource: cna
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= 12bb03b436dad56692e9a103ed26156156bef5d2 <
    bf88cd3b649bc3e638f1e8a77649581852747a68
  - >-
    Linux >= 12bb03b436dad56692e9a103ed26156156bef5d2 <
    8c7a489aa71d2693752b2e794a68bf672d16c829
  - >-
    Linux >= 12bb03b436dad56692e9a103ed26156156bef5d2 <
    82c13027ed283b856017adee970dbfdffce5c6b8
  - >-
    Linux >= 12bb03b436dad56692e9a103ed26156156bef5d2 <
    be626ac1faadd49c2cead9f9cd06ba8752d81563
  - >-
    Linux >= 12bb03b436dad56692e9a103ed26156156bef5d2 <
    1cc312dc8bc78fa24c80d5bc193dbf5b57a99cc6
  - >-
    Linux >= 12bb03b436dad56692e9a103ed26156156bef5d2 <
    b84dd48f9da1eb132bdc06a944423cd5a1641ef1
  - >-
    Linux >= 12bb03b436dad56692e9a103ed26156156bef5d2 <
    5bdb33ff6e58bdc43632e98b30723eb65352d671
  - >-
    Linux >= 12bb03b436dad56692e9a103ed26156156bef5d2 <
    fd398d6480987e4c84fff0aaab6b9d6642a93343
  - Linux 4.4
ssvc:
  exploitation: none
  automatable: 'yes'
  technicalImpact: partial
  timestamp: '2026-10-16T18:49:13.017025Z'
published: '2026-08-15'
updated: '2026-10-16'
sourceUpdated: '2026-10-16T18:55:22.213Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-72409'
references:
  - url: 'https://git.kernel.org/stable/c/bf88cd3b649bc3e638f1e8a77649581852747a68'
  - url: 'https://git.kernel.org/stable/c/8c7a489aa71d2693752b2e794a68bf672d16c829'
  - url: 'https://git.kernel.org/stable/c/82c13027ed283b856017adee970dbfdffce5c6b8'
  - url: 'https://git.kernel.org/stable/c/be626ac1faadd49c2cead9f9cd06ba8752d81563'
  - url: 'https://git.kernel.org/stable/c/1cc312dc8bc78fa24c80d5bc193dbf5b57a99cc6'
  - url: 'https://git.kernel.org/stable/c/b84dd48f9da1eb132bdc06a944423cd5a1641ef1'
  - url: 'https://git.kernel.org/stable/c/5bdb33ff6e58bdc43632e98b30723eb65352d671'
  - url: 'https://git.kernel.org/stable/c/fd398d6480987e4c84fff0aaab6b9d6642a93343'
tags:
  - cve.org
epss: 0.00716
epssPercentile: 0.52839
ingestedAt: '2026-10-16T19:46:24.399Z'
---

## Overview

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

net: mvneta: re-enable percpu interrupt on resume

On Marvell MPIC platforms (Armada 370/XP/38x), mvneta uses a percpu
IRQ disable/enable scheme for NAPI: the ISR (mvneta_percpu_isr) calls
disable_percpu_irq() to mask the MPIC per-CPU interrupt and schedules
NAPI poll, which calls enable_percpu_irq() on completion to unmask.

If suspend occurs while NAPI poll is pending (between
disable_percpu_irq in the ISR and enable_percpu_irq in poll
completion), the interrupt is never re-enabled:

  1. mvneta_percpu_isr: disable_percpu_irq() + napi_schedule()
     => MPIC masked, percpu_enabled cpumask bit cleared
  2. NAPI poll does not complete before suspend proceeds
     (on PREEMPT_RT this is highly likely since softirqs run in
     ksoftirqd which gets frozen; on non-RT it can happen when
     softirq processing is deferred to ksoftirqd)
  3. mvneta_stop_dev => napi_disable(): cancels the pending poll
     without executing the completion path
  4. suspend_device_irqs => IRQCHIP_MASK_ON_SUSPEND: masks MPIC
     (already masked, but records IRQS_SUSPENDED)
  5. Resume: mpic_resume checks irq_percpu_is_enabled() => false
     (bit was cleared in step 1) => skips unmask
  6. mvneta_start_dev only restores device-level INTR_NEW_MASK,
     does not touch the MPIC per-CPU mask

Result: MPIC per-CPU interrupt stays masked permanently. The NIC
generates interrupts (INTR_NEW_CAUSE != 0) but the CPU never
receives them, causing complete loss of network connectivity.

Fix by calling on_each_cpu(mvneta_percpu_enable) in the resume path
to unconditionally unmask the MPIC per-CPU interrupt regardless of
pre-suspend state.

## Affected

- `Linux >= 12bb03b436dad56692e9a103ed26156156bef5d2 < bf88cd3b649bc3e638f1e8a77649581852747a68`
- `Linux >= 12bb03b436dad56692e9a103ed26156156bef5d2 < 8c7a489aa71d2693752b2e794a68bf672d16c829`
- `Linux >= 12bb03b436dad56692e9a103ed26156156bef5d2 < 82c13027ed283b856017adee970dbfdffce5c6b8`
- `Linux >= 12bb03b436dad56692e9a103ed26156156bef5d2 < be626ac1faadd49c2cead9f9cd06ba8752d81563`
- `Linux >= 12bb03b436dad56692e9a103ed26156156bef5d2 < 1cc312dc8bc78fa24c80d5bc193dbf5b57a99cc6`
- `Linux >= 12bb03b436dad56692e9a103ed26156156bef5d2 < b84dd48f9da1eb132bdc06a944423cd5a1641ef1`
- `Linux >= 12bb03b436dad56692e9a103ed26156156bef5d2 < 5bdb33ff6e58bdc43632e98b30723eb65352d671`
- `Linux >= 12bb03b436dad56692e9a103ed26156156bef5d2 < fd398d6480987e4c84fff0aaab6b9d6642a93343`
- `Linux 4.4`

## Remediation

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