122 lines
6.9 KiB
JSON
122 lines
6.9 KiB
JSON
{
|
|
"dataType": "CVE_RECORD",
|
|
"dataVersion": "5.2",
|
|
"cveMetadata": {
|
|
"cveId": "CVE-2026-98310",
|
|
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
|
|
"state": "PUBLISHED",
|
|
"assignerShortName": "Linux",
|
|
"dateReserved": "2026-09-25T10:25:14.338Z",
|
|
"datePublished": "2026-10-06T08:46:06.767Z",
|
|
"dateUpdated": "2026-10-19T09:17:20.846Z"
|
|
},
|
|
"containers": {
|
|
"cna": {
|
|
"providerMetadata": {
|
|
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
|
|
"shortName": "Linux",
|
|
"dateUpdated": "2026-10-19T09:17:20.846Z"
|
|
},
|
|
"descriptions": [
|
|
{
|
|
"lang": "en",
|
|
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/xe/shrinker: Take a runtime PM ref before shrinking non-system memory\n\n__xe_shrinker_walk() walks the SYSTEM and TT LRUs without a runtime PM\nreference. Shrinking a bo outside system memory invalidates its GPU\nmappings, which needs the device resumed, so while it is runtime\nsuspended the page table zap trips an assert and the TLB invalidation\nreturns -ENODEV:\n\n WARNING: drivers/gpu/drm/xe/xe_bo.c:770 at xe_bo_move_notify+0x1fc/0x450 [xe]\n xe_bo_shrink+0x20f/0x2b0 [xe]\n __xe_shrinker_walk+0x174/0x410 [xe]\n xe_shrinker_scan+0x10c/0x1e0 [xe]\n do_shrink_slab+0x176/0x7e0\n drop_caches_sysctl_handler+0x9c/0xf0\n\nTake a reference before walking a memory type other than XE_PL_SYSTEM\nand stop there if it cannot be acquired. Reuse the shrinker's existing\nacquire path, which resumes the device directly where reclaim allows\nthat and otherwise queues the PM worker for a later scan. Stop the walk\nonce the scan target is met, so a satisfied scan does not wake the\ndevice. System memory is still reclaimed while the device is suspended.\n\nGate this on xe_device_is_l2_flush_optimized(), the same condition under\nwhich xe_bo_trigger_rebind() issues the invalidation for a non-fault-mode\nvm, so reclaim is unaffected elsewhere. The System CCS copy already has\nits own reference in xe_bo_shrink().\n\nOnly a non-fault-mode vm can reach this, since a fault-mode vm requires\nLR mode and that holds a runtime PM reference for the vm's lifetime.\n\nReproduced with igt@xe_madvise@dontneed-before-exec while the GPU is\nruntime suspended.\n\nv2: simplify needs_rpm check. (Matt)\n retarget Fixes tag since the issue occurs with the non-fault-mode\n path added by 4e7ebff69aed.\nv3: handle this in xe_shrinker.c instead of xe_bo.c (Thomas)\nv4: stop the walk once the scan target is met. (Sashiko)\nv5: rebase on the freed page accounting fix. (Sashiko)\nv6: reuse the shrinker acquire path so runtime pm can be resumed\n directly instead of always queueing a worker. (Thomas)\nv7: replace xe_pm_runtime_put() with xe_shrinker_runtime_pm_put(). (Thomas)\n\n(cherry picked from commit 628f92b28bf4c371c10207daf6fc4caee0c0db2e)"
|
|
}
|
|
],
|
|
"affected": [
|
|
{
|
|
"product": "Linux",
|
|
"vendor": "Linux",
|
|
"defaultStatus": "unaffected",
|
|
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
|
|
"programFiles": [
|
|
"drivers/gpu/drm/xe/xe_shrinker.c"
|
|
],
|
|
"versions": [
|
|
{
|
|
"version": "4e7ebff69aed345f65f590a17b3119c0cb5eadde",
|
|
"lessThan": "b7f4d2588b1342bb190c04b3d7a32560f206c74c",
|
|
"status": "affected",
|
|
"versionType": "git"
|
|
},
|
|
{
|
|
"version": "4e7ebff69aed345f65f590a17b3119c0cb5eadde",
|
|
"lessThan": "985862be16c7e4da808c51f393d631fb60c0be5c",
|
|
"status": "affected",
|
|
"versionType": "git"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"product": "Linux",
|
|
"vendor": "Linux",
|
|
"defaultStatus": "affected",
|
|
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
|
|
"programFiles": [
|
|
"drivers/gpu/drm/xe/xe_shrinker.c"
|
|
],
|
|
"versions": [
|
|
{
|
|
"version": "7.1",
|
|
"status": "affected"
|
|
},
|
|
{
|
|
"version": "0",
|
|
"lessThan": "7.1",
|
|
"status": "unaffected",
|
|
"versionType": "semver"
|
|
},
|
|
{
|
|
"version": "7.2.8",
|
|
"lessThanOrEqual": "7.2.*",
|
|
"status": "unaffected",
|
|
"versionType": "semver"
|
|
},
|
|
{
|
|
"version": "7.3",
|
|
"lessThanOrEqual": "*",
|
|
"status": "unaffected",
|
|
"versionType": "original_commit_for_fix"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"cpeApplicability": [
|
|
{
|
|
"nodes": [
|
|
{
|
|
"operator": "OR",
|
|
"negate": false,
|
|
"cpeMatch": [
|
|
{
|
|
"vulnerable": true,
|
|
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
|
|
"versionStartIncluding": "7.1",
|
|
"versionEndExcluding": "7.2.8"
|
|
},
|
|
{
|
|
"vulnerable": true,
|
|
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
|
|
"versionStartIncluding": "7.1",
|
|
"versionEndExcluding": "7.3"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"references": [
|
|
{
|
|
"url": "https://git.kernel.org/stable/c/b7f4d2588b1342bb190c04b3d7a32560f206c74c"
|
|
},
|
|
{
|
|
"url": "https://git.kernel.org/stable/c/985862be16c7e4da808c51f393d631fb60c0be5c"
|
|
}
|
|
],
|
|
"title": "drm/xe/shrinker: Take a runtime PM ref before shrinking non-system memory",
|
|
"x_generator": {
|
|
"engine": "bippy-1.2.0"
|
|
}
|
|
}
|
|
}
|
|
} |