diff options
| author | Matthew Rosato <[email protected]> | 2025-08-27 21:08:27 +0000 |
|---|---|---|
| committer | Joerg Roedel <[email protected]> | 2025-09-05 13:11:07 +0000 |
| commit | b3506e9bcc777ed6af2ab631c86a9990ed97b474 (patch) | |
| tree | d6cf84e51c98226e73a87d1edc913e6362c180d0 /drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c | |
| parent | iommu/amd: Fix ivrs_base memleak in early_amd_iommu_init() (diff) | |
| download | kernel-b3506e9bcc777ed6af2ab631c86a9990ed97b474.tar.gz kernel-b3506e9bcc777ed6af2ab631c86a9990ed97b474.zip | |
iommu/s390: Fix memory corruption when using identity domain
zpci_get_iommu_ctrs() returns counter information to be reported as part
of device statistics; these counters are stored as part of the s390_domain.
The problem, however, is that the identity domain is not backed by an
s390_domain and so the conversion via to_s390_domain() yields a bad address
that is zero'd initially and read on-demand later via a sysfs read.
These counters aren't necessary for the identity domain; just return NULL
in this case.
This issue was discovered via KASAN with reports that look like:
BUG: KASAN: global-out-of-bounds in zpci_fmb_enable_device
when using the identity domain for a device on s390.
Cc: [email protected]
Fixes: 64af12c6ec3a ("iommu/s390: implement iommu passthrough via identity domain")
Reported-by: Cam Miller <[email protected]>
Signed-off-by: Matthew Rosato <[email protected]>
Tested-by: Cam Miller <[email protected]>
Reviewed-by: Farhan Ali <[email protected]>
Reviewed-by: Niklas Schnelle <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Joerg Roedel <[email protected]>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c')
0 files changed, 0 insertions, 0 deletions
