Skip to content
Heist/ feed
Back to feed
HighFix available

dmaengine: xilinx_dma: Fix channel idle state management in AXIDMA and MCDMA interrupt handlers

Type: advisorySources: OSV

In the Linux kernel, the following vulnerability has been resolved: dmaengine: xilinx_dma: Fix channel idle state management in AXIDMA and MCDMA interrupt handlers Fix a race condition in AXIDMA and MCDMA irq handlers where the channel could be incorrectly marked as idle and attempt spurious transfers when descriptors are still being processed. The issue occurs when: 1. Multiple descriptors are queued and active. 2. An interrupt fires after completing some descriptors. 3. xilinx_dma_complete_descriptor() moves completed descriptors to done_list. 4. Channel is marked idle and start_transfer() is called even though active_list still contains unprocessed descriptors. 5. This leads to premature transfer attempts and potential descriptor corruption or missed completions. Only mark the channel as idle and start new transfers when the active list is actually empty, ensuring proper channel state management and avoiding spurious transfer attempts.

Products
Kernel
Affected versions
Not specified
Fixed versions
5.10.270, 5.15.221, 6.1.188, 6.12.110, 6.18.52, 6.6.157, 7.2.6
CVEs
CVE-2026-93170
Confirmed fixed CVEs
Not specified
Updated in this feed
4 Nov 2026, 15:07 UTC · Revision 1

Source evidence

dmaengine: xilinx_dma: Fix channel idle state management in AXIDMA and MCDMA interrupt handlers

core-osv · Original source

Published 17 Sept 2026, 16:12 UTC

In the Linux kernel, the following vulnerability has been resolved: dmaengine: xilinx_dma: Fix channel idle state management in AXIDMA and MCDMA interrupt handlers Fix a race condition in AXIDMA and MCDMA irq handlers where the channel could be incorrectly marked as idle and attempt spurious transfers when descriptors are still being processed. The issue occurs when: 1. Multiple descriptors are queued and active. 2. An interrupt fires after completing some descriptors. 3. xilinx_dma_complete_descriptor() moves completed descriptors to done_list. 4. Channel is marked idle and start_transfer() is called even though active_list still contains unprocessed descriptors. 5. This leads to premature transfer attempts and potential descriptor corruption or missed completions. Only mark the channel as idle and start new transfers when the active list is actually empty, ensuring proper channel state management and avoiding spurious transfer attempts.

osv:CVE-2026-93170

Kernel

Fixed versions: 5.10.270, 5.15.221, 6.1.188, 6.6.157, 6.12.110, 6.18.52, 7.2.6

Complete source record
{
  "id": "ac5245f5354d076014087a38bc2fe6cb92fd563521c7c3060279c18e08f88d47",
  "url": "https://osv.dev/vulnerability/CVE-2026-93170",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "dmaengine: xilinx_dma: Fix channel idle state management in AXIDMA and MCDMA interrupt handlers",
    "summary": "In the Linux kernel, the following vulnerability has been resolved: dmaengine: xilinx_dma: Fix channel idle state management in AXIDMA and MCDMA interrupt handlers Fix a race condition in AXIDMA and MCDMA irq handlers where the channel could be incorrectly marked as idle and attempt spurious transfers when descriptors are still being processed. The issue occurs when: 1. Multiple descriptors are queued and active. 2. An interrupt fires after completing some descriptors. 3. xilinx_dma_complete_descriptor() moves completed descriptors to done_list. 4. Channel is marked idle and start_transfer() is called even though active_list still contains unprocessed descriptors. 5. This leads to premature transfer attempts and potential descriptor corruption or missed completions. Only mark the channel as idle and start new transfers when the active list is actually empty, ensuring proper channel state management and avoiding spurious transfer attempts.",
    "evidence": "osv:CVE-2026-93170",
    "products": [
      {
        "name": {
          "value": "Kernel",
          "evidence": "/affected/1/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "5.10.270",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "5.15.221",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.1.188",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.6.157",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.12.110",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.18.52",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "7.2.6",
            "evidence": "/affected/1/ranges"
          }
        ],
        "affected_versions": []
      }
    ],
    "severity": "high",
    "structured": {
      "id": "CVE-2026-93170",
      "aliases": [
        "CVE-2026-93170"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "type": "GIT",
              "events": [
                {
                  "introduced": "c0bba3a99f0709c24c2c7ada7cb098966b1d791f"
                },
                {
                  "fixed": "7f4b989d7d87381927b98d64492f8dcf979f57ab"
                },
                {
                  "fixed": "5459e02707b27a964ae72e028d3ff72a3b687c4a"
                },
                {
                  "fixed": "425630e9eea1f9f8912b8c6abf01e0dab1e27917"
                },
                {
                  "fixed": "fdaf297ab275c6efecac5e87669c31bc89b74297"
                },
                {
                  "fixed": "c27d16fd2358b2fc3e1ffaca03afd11dc28630ea"
                },
                {
                  "fixed": "ec927657524be4438447944a58173c7baf7f2384"
                },
                {
                  "fixed": "c3e943490ced0b9ad475844eda7661f6a9bcfb4a"
                },
                {
                  "fixed": "0b6d055edb55ecadadf54e930c2b4fab76fa9a5a"
                }
              ]
            }
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-93170.json"
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "4.7.0"
                },
                {
                  "fixed": "5.10.270"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "5.11.0"
                },
                {
                  "fixed": "5.15.221"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "5.16.0"
                },
                {
                  "fixed": "6.1.188"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.2.0"
                },
                {
                  "fixed": "6.6.157"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.7.0"
                },
                {
                  "fixed": "6.12.110"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.13.0"
                },
                {
                  "fixed": "6.18.52"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.19.0"
                },
                {
                  "fixed": "7.2.6"
                }
              ]
            }
          ],
          "package": {
            "name": "Kernel",
            "ecosystem": "Linux"
          },
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-93170.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:36.645829164Z",
      "provider": "osv",
      "references": [
        "https://git.kernel.org/stable/c/0b6d055edb55ecadadf54e930c2b4fab76fa9a5a",
        "https://git.kernel.org/stable/c/425630e9eea1f9f8912b8c6abf01e0dab1e27917",
        "https://git.kernel.org/stable/c/5459e02707b27a964ae72e028d3ff72a3b687c4a",
        "https://git.kernel.org/stable/c/7f4b989d7d87381927b98d64492f8dcf979f57ab",
        "https://git.kernel.org/stable/c/c27d16fd2358b2fc3e1ffaca03afd11dc28630ea",
        "https://git.kernel.org/stable/c/c3e943490ced0b9ad475844eda7661f6a9bcfb4a",
        "https://git.kernel.org/stable/c/ec927657524be4438447944a58173c7baf7f2384",
        "https://git.kernel.org/stable/c/fdaf297ab275c6efecac5e87669c31bc89b74297",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/93xxx/CVE-2026-93170.json",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-93170",
        "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
      ],
      "provider_metadata": {
        "cna_assigner": "Linux",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/93xxx/CVE-2026-93170.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-93170",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 503984,
  "published_at": "2026-09-17T16:12:01.249+00:00"
}