---
id: CVE-2026-98324
title: |-
  In the Linux kernel, the following vulnerability has been resolved:

  dmaengine: pxa: fix double counting of the hw descriptors

  pxad_alloc_desc() was converted from

          kzalloc(struct_size(sw_desc, hw_desc, nb_hw_desc), GFP_NOWAIT)
  …
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  dmaengine: pxa: fix double counting of the hw descriptors

  pxad_alloc_desc() was converted from

          kzalloc(struct_size(sw_desc, hw_desc, nb_hw_desc), GFP_NOWAIT)
  …
severity: none
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= 69050f8d6d075dc01af7a5f2f550a8067510366f <
    1de93785f32b450e9eae1e4fcfb7d03eb49eb27e
  - >-
    Linux >= 69050f8d6d075dc01af7a5f2f550a8067510366f <
    f6504be006aa4bb4bd26285f410a885c17920d65
  - Linux 7.0
published: '2026-10-06'
updated: '2026-10-06'
sourceUpdated: '2026-10-06T09:18:24.573'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-98324'
references:
  - url: 'https://git.kernel.org/stable/c/1de93785f32b450e9eae1e4fcfb7d03eb49eb27e'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/f6504be006aa4bb4bd26285f410a885c17920d65'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
tags:
  - nvd
  - cve.org
ingestedAt: '2026-10-06T08:50:17.406Z'
---

## Overview

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

dmaengine: pxa: fix double counting of the hw descriptors

pxad_alloc_desc() was converted from

        kzalloc(struct_size(sw_desc, hw_desc, nb_hw_desc), GFP_NOWAIT)

to kzalloc_flex(), which sets the __counted_by() counter sw_desc->nb_desc
itself - but only where the compiler has __builtin_counted_by_ref(), so
from gcc 15.1 or clang 22.1 on. The loop below it still increments
nb_desc, which makes it come out doubled there and correct elsewhere.

nb_desc is what pxad_free_desc() iterates over and what
set_updater_desc() indexes from, so set it explicitly and drop the
increment. The error path has to lower it to the number of descriptors
allocated so far, otherwise pxad_free_desc() would free entries that were
never allocated.

## Remediation

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