---
id: CVE-2025-38355
title: 'drm/xe: Process deferred GGTT node removals on device unwind'
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  drm/xe: Process deferred GGTT node removals on device unwind

  While we are indirectly draining our dedicated workqueue ggtt->wq
  that we use to complete asynchronous rem…
severity: none
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= 919bb54e989c1edef87e9797be125c94c450fc65 <
    1b12f8dabbb8fd7d5a2611dd7bc5982ffbc2e5df
  - >-
    Linux >= 919bb54e989c1edef87e9797be125c94c450fc65 <
    5ab4eba9b26a93605b4f2f2b688d6ba818d7331d
  - >-
    Linux >= 919bb54e989c1edef87e9797be125c94c450fc65 <
    af2b588abe006bd55ddd358c4c3b87523349c475
  - Linux 6.12
ssvc:
  exploitation: none
  automatable: 'no'
  technicalImpact: partial
  timestamp: '2026-11-05T20:55:18.224753Z'
published: '2025-07-25'
updated: '2026-11-05'
sourceUpdated: '2026-11-05T21:02:34.982Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2025-38355'
references:
  - url: 'https://git.kernel.org/stable/c/1b12f8dabbb8fd7d5a2611dd7bc5982ffbc2e5df'
  - url: 'https://git.kernel.org/stable/c/5ab4eba9b26a93605b4f2f2b688d6ba818d7331d'
  - url: 'https://git.kernel.org/stable/c/af2b588abe006bd55ddd358c4c3b87523349c475'
tags:
  - cve.org
epss: 0.00187
epssPercentile: 0.08304
ingestedAt: '2026-11-05T22:38:31.960Z'
---

## Overview

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

drm/xe: Process deferred GGTT node removals on device unwind

While we are indirectly draining our dedicated workqueue ggtt->wq
that we use to complete asynchronous removal of some GGTT nodes,
this happends as part of the managed-drm unwinding (ggtt_fini_early),
which could be later then manage-device unwinding, where we could
already unmap our MMIO/GMS mapping (mmio_fini).

This was recently observed during unsuccessful VF initialization:

 [ ] xe 0000:00:02.1: probe with driver xe failed with error -62
 [ ] xe 0000:00:02.1: DEVRES REL ffff88811e747340 __xe_bo_unpin_map_no_vm (16 bytes)
 [ ] xe 0000:00:02.1: DEVRES REL ffff88811e747540 __xe_bo_unpin_map_no_vm (16 bytes)
 [ ] xe 0000:00:02.1: DEVRES REL ffff88811e747240 __xe_bo_unpin_map_no_vm (16 bytes)
 [ ] xe 0000:00:02.1: DEVRES REL ffff88811e747040 tiles_fini (16 bytes)
 [ ] xe 0000:00:02.1: DEVRES REL ffff88811e746840 mmio_fini (16 bytes)
 [ ] xe 0000:00:02.1: DEVRES REL ffff88811e747f40 xe_bo_pinned_fini (16 bytes)
 [ ] xe 0000:00:02.1: DEVRES REL ffff88811e746b40 devm_drm_dev_init_release (16 bytes)
 [ ] xe 0000:00:02.1: [drm:drm_managed_release] drmres release begin
 [ ] xe 0000:00:02.1: [drm:drm_managed_release] REL ffff88810ef81640 __fini_relay (8 bytes)
 [ ] xe 0000:00:02.1: [drm:drm_managed_release] REL ffff88810ef80d40 guc_ct_fini (8 bytes)
 [ ] xe 0000:00:02.1: [drm:drm_managed_release] REL ffff88810ef80040 __drmm_mutex_release (8 bytes)
 [ ] xe 0000:00:02.1: [drm:drm_managed_release] REL ffff88810ef80140 ggtt_fini_early (8 bytes)

and this was leading to:

 [ ] BUG: unable to handle page fault for address: ffffc900058162a0
 [ ] #PF: supervisor write access in kernel mode
 [ ] #PF: error_code(0x0002) - not-present page
 [ ] Oops: Oops: 0002 [#1] SMP NOPTI
 [ ] Tainted: [W]=WARN
 [ ] Workqueue: xe-ggtt-wq ggtt_node_remove_work_func [xe]
 [ ] RIP: 0010:xe_ggtt_set_pte+0x6d/0x350 [xe]
 [ ] Call Trace:
 [ ]  <TASK>
 [ ]  xe_ggtt_clear+0xb0/0x270 [xe]
 [ ]  ggtt_node_remove+0xbb/0x120 [xe]
 [ ]  ggtt_node_remove_work_func+0x30/0x50 [xe]
 [ ]  process_one_work+0x22b/0x6f0
 [ ]  worker_thread+0x1e8/0x3d

Add managed-device action that will explicitly drain the workqueue
with all pending node removals prior to releasing MMIO/GSM mapping.

(cherry picked from commit 89d2835c3680ab1938e22ad81b1c9f8c686bd391)

## Affected

- `Linux >= 919bb54e989c1edef87e9797be125c94c450fc65 < 1b12f8dabbb8fd7d5a2611dd7bc5982ffbc2e5df`
- `Linux >= 919bb54e989c1edef87e9797be125c94c450fc65 < 5ab4eba9b26a93605b4f2f2b688d6ba818d7331d`
- `Linux >= 919bb54e989c1edef87e9797be125c94c450fc65 < af2b588abe006bd55ddd358c4c3b87523349c475`
- `Linux 6.12`

## Remediation

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