В ядре Linux устранена следующая уязвимость:
Отменить «drm/amdgpu: исправить утечку отображения апертуры»
Демонтаж Девреса - это LIFO. Узел апертуры Девреса зарегистрирован после
узел устройства DRM, поэтому devres_release_all() отменяет отображение апертуры перед
обратный вызов освобождения устройства DRM запускает amdgpu_device_fini_sw(). ИП
Обратные вызовы sw_fini (например, vcn_v4_0_sw_fini) записывают в fw_shared через
указатель, полученный из aper_base_kaddr, вызывающий ошибку страницы ядра на
сбой/откат зонда:
ОШИБКА: невозможно обработать ошибку страницы...
PMD 0
RIP: vcn_v4_0_sw_fini+0x7b/0x170 [amdgpu]
Отслеживание вызова:
amdgpu_device_fini_sw
amdgpu_driver_release_kms
devm_drm_dev_init_release
devres_release_all
Это отменяет фиксацию d871e99879cb5fd1fa798b006b4888887e63a17a.
(вишня выбрана из коммита 336e0cd576817ac64a4b394ca2b3680029f3e37f)
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: Revert "drm/amdgpu: fix aperture mapping leak" devres teardown is LIFO. The aperture devres node was registered after the DRM device node, so devres_release_all() unmaps the aperture before the DRM device release callback fires amdgpu_device_fini_sw(). IP sw_fini callbacks (e.g. vcn_v4_0_sw_fini) write to fw_shared through a pointer derived from aper_base_kaddr, causing a kernel page fault on probe failure / rollback: BUG: unable to handle page fault ... PMD 0 RIP: vcn_v4_0_sw_fini+0x7b/0x170 [amdgpu] Call Trace: amdgpu_device_fini_sw amdgpu_driver_release_kms devm_drm_dev_init_release devres_release_all This reverts commit d871e99879cb5fd1fa798b006b4888887e63a17a. (cherry picked from commit 336e0cd576817ac64a4b394ca2b3680029f3e37f)