CVE-2026-98106
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
drm/pagemap: Zapobiegaj podwójnej migracji stron urządzenia
Folio prywatne urządzenia migrowane do pamięci systemowej w wyniku błędu procesora
pozostają dostępne poprzez ścieżkę wykluczenia surowego PFN do czasu migracji
finalizacja usuwa odniesienie do źródła.
Jeśli w tym oknie eksmisja wybierze to samo prywatne folio na urządzeniu,
może podjąć ponowną próbę migracji folio. Druga migracja może wyjechać
nienaładowane folio na liście LRU, powodujące wykonanie folio_lruvec_lock_irqsave()
ponawiaj próby w nieskończoność, co zakończy się miękkim zawieszeniem i przeciągnięciem RCU.
Oznacz pomyślnie migrowane folio prywatne na urządzeniu, używając małego bitu
ich dane strefy_device_data przed zakończeniem migracji. W obu przypadkach wystąpił błąd procesora
a ścieżki migracji raw-PFN pomijają folio prywatne na urządzeniu, które to zawierają
flaga.
Zamaskuj flagę podczas pobierania wskaźnika drm_pagemap_zdd i zachowaj
go w przypadku podziału folio prywatnego urządzenia. Utrzymywanie stanu fizycznego
folio unika także uzależnienia od adresu wirtualnego, który może ulec zmianie przed a
występuje usterka.
wersja 2:
- Zastąp wycofaną tablicę XArray PFN osadzoną bitmapą. (Mateusz Brost)
- Zaznacz każdą stronę bazową objętą migrowanym folio, aby zachować emeryturę
ważne, jeśli folio zostanie później podzielone.
v3:
- Zamiast tego przechowuj migrowany stan w niewielkiej części danych_urządzenia_strefy
dodanie śledzenia zasięgu wirtualnego i mapy bitowej do ZDD. (Mateusz Brost)
- Zamaskuj flagę podczas odzyskiwania ZDD i zachowaj ją podczas podziału
folio.
- Usuń istniejące poprawki już uwzględnione w serii Matthew Brosta:
https://patchwork.freedesktop.org/series/171651/
v4:
- Przesuwaj się o rozmiar folio tylko w przypadku wpisów migracji oznaczonych symbolem
MIGRATE_PFN_COMPOUND. (Sashiko)
v5:
- Uprość aktualizacje flag ZDD i iterację folio. (Mateusz Brost)
- Pomiń wycofane folio prywatne urządzenia w ścieżce błędów procesora. (Mateusz Brost)
- Zachowaj bity flag podczas pobierania nowego odniesienia ZDD dla podzielonych folio.
v6:
— Przywróć kroki uwzględniające MIGRATE_PFN_COMPOUND, aby migracja nie była złożona
wpisy są przetwarzane pojedynczo. (Sashiko)
- Usuń istniejące poprawki już uwzględnione w serii Matthew Brosta:
https://patchwork.freedesktop.org/series/171651/
Blokadę zaobserwowano w następujący sposób:
[10109.860465] watchdog: BŁĄD: miękka blokada - CPU#9 utknął na 26s! [pracownik/u65:5:6557]
[10109.860524] Zanieczyszczony: [S]=CPU_OUT_OF_SPEC, [O]=OOT_MODULE
[10109.860524] Nazwa sprzętu: Nazwa produktu systemu ASUS/PRIME Z790-P WIFI, BIOS 0812 24.02.2023
[10109.860525] Kolejka robocza: xe_page_fault_work_queue xe_pagefault_queue_work [xe]
[10109.860644] RIP: 0010:_raw_spin_unlock_irqrestore+0x57/0x80
[10109.860655] Śledzenie połączeń:
[10109.860655] <ZADANIE>
[10109.860657] folio_lruvec_lock_irqsave+0x216/0x220
[10109.860661] ? __pfx_lru_add+0x10/0x10
[10109.860665] folio_batch_move_lru+0xc8/0x450
[10109.860670] ? blokada_nabycia+0xc4/0x2d0
[10109.860674] ? __folio_batch_add_and_move+0x60/0x2e0
[10109.860677] ? folio_migrate_mapping+0xa6/0x110
[10109.860679] ? folio_migrate_flags+0x13b/0x1b0
[10109.860681] ? __pfx_lru_add+0x10/0x10
[10109.860683] __folio_batch_add_and_move+0xe7/0x2e0
[10109.860685] ? dma_iova_try_alloc+0xb0/0x140
[10109.860689] folio_add_lru+0x64/0x80
[10109.860691] __migrate_device_finalize+0x12c/0x270
[10109.860695] migruj_urządzenie_finalize+0x10/0x20
[10109.860698] drm_pagemap_evict_to_ram+0x185/0x370 [drm_gpusvm_helper]
[10109.860704] ? drm_pagemap_evict_to_ram+0x96/0x370 [drm_gpusvm_helper]
[10109.860709] xe_svm_bo_evict+0x15/0x20 [xe]
[10109.860819] ? xe_svm_bo_evict+0x15/0x20 [xe]
[10109.860921] xe_bo_move+0x107e/0x1570 [xe]
[10109.860992] ? xe_ttm_tt_create+0x168/0x340 [xe]
[10109.861059] ? __up_read+0x98/0x2b0
[10109.861061] ? lock_is_held_type+0xa3/0x130
[10109.861067] ttm_bo_handle_move_mem+0xe8/0x1e0 [ttm]
[10109.861075] ttm_bo_evict+0x141/0x1c0 [ttm]
[10109.861081] ttm_bo_evict_cb+0x9f/0x100 [ttm]
[10109.861086] ttm_lru_walk_for_evict+0x84/0x190 [ttm]
[10109.861091] ? xe_ttm_vram_mgr_new+0x258/0x3a0 [xe]
[10109.861198] ttm_bo_alloc_resource+0x219/0
---obcięty---
>_ Referencje
Dane podatności pochodzą z oficjalnych źródeł (CVE® List / NVD). Opisy po polsku są tłumaczone automatycznie i mogą zawierać nieścisłości – na stronie rekordu można wyświetlić wersję angielską.
This product uses the NVD API but is not endorsed or certified by the NVD.
Copyright © 1999–2026, The MITRE Corporation. CVE is a registered trademark and the CVE logo is a registered trademark of The MITRE Corporation.
CVE Usage: MITRE hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Common Vulnerabilities and Exposures (CVE®). Any copy you make for such purposes is authorized provided that you reproduce MITRE's copyright designation and this license in any such copy. ALL DOCUMENTS AND THE INFORMATION CONTAINED THEREIN PROVIDED BY MITRE ARE PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND.
NVD Terms of Use / CVE® Terms of Use / nvd.nist.gov / cve.org