Back

MEDIUM

iommu/vt-d: Clean up si_domain in the init_dmars() error path

Published Oct 4, 2025

Description

A splat from kmem_cache_destroy() was seen with a kernel prior to commit ee2653bbe89d ("iommu/vt-d: Remove domain and devinfo mempool") when there was a failure in init_dmars(), because the iommu_domain cache still had objects. While the mempool code is now gone, there still is a leak of the si_domain memory if init_dmars() fails. So clean up si_domain in the init_dmars() error path.

Affected products

Remediation

Red Hat statement

The init_dmars function performs IOMMU initialization and allocates the si_domain (shared identity domain) for devices that can bypass IOMMU translation. When initialization fails partway through, the error path returns without cleaning up the si_domain allocation. Since this is a boot-time initialization function, the leak occurs once per failed initialization attempt. While the leak was originally detected through kmem_cache errors, even after mempool removal the underlying memory leak persists. The issue requires conditions that cause IOMMU initialization to fail, which can occur due to hardware issues, misconfigurations, or resource constraints during boot.

Metrics

Weaknesses (1)

References (12)

Change history (0)

No recorded changes yet.

Sources
CVE.org / MITRE
Status PUBLISHED
Assigner Linux
Published Oct 4, 2025
Updated May 11, 2026
Reserved Oct 4, 2025
NVD
Status Analyzed
Modified Jun 17, 2026
Red Hat
Severity Low
Public date Oct 4, 2025