Description
In the Linux kernel, the following vulnerability has been resolved: drm/amd/display: Fix division by zero in setup_dsc_config When slice_height is 0, the division by slice_height in the calculation of the number of slices will cause a division by zero driver crash. This leaves the kernel in a state that requires a reboot. This patch adds a check to avoid the division by zero. The stack trace below is for the 6.8.4 Kernel. I reproduced the issue on a Z16 Gen 2 Lenovo Thinkpad with a Apple Studio Display monitor connected via Thunderbolt. The amdgpu driver crashed with this exception when I rebooted the system with the monitor connected. kernel: ? die (arch/x86/kernel/dumpstack.c:421 arch/x86/kernel/dumpstack.c:434 arch/x86/kernel/dumpstack.c:447) kernel: ? do_trap (arch/x86/kernel/traps.c:113 arch/x86/kernel/traps.c:154) kernel: ? setup_dsc_config (drivers/gpu/drm/amd/amdgpu/../display/dc/dsc/dc_dsc.c:1053) amdgpu kernel: ? do_error_trap (./arch/x86/include/asm/traps.h:58 arch/x86/kernel/traps.c:175) kernel: ? setup_dsc_config (drivers/gpu/drm/amd/amdgpu/../display/dc/dsc/dc_dsc.c:1053) amdgpu kernel: ? exc_divide_error (arch/x86/kernel/traps.c:194 (discriminator 2)) kernel: ? setup_dsc_config (drivers/gpu/drm/amd/amdgpu/../display/dc/dsc/dc_dsc.c:1053) amdgpu kernel: ? asm_exc_divide_error (./arch/x86/include/asm/idtentry.h:548) kernel: ? setup_dsc_config (drivers/gpu/drm/amd/amdgpu/../display/dc/dsc/dc_dsc.c:1053) amdgpu kernel: dc_dsc_compute_config (drivers/gpu/drm/amd/amdgpu/../display/dc/dsc/dc_dsc.c:1109) amdgpu After applying this patch, the driver no longer crashes when the monitor is connected and the system is rebooted. I believe this is the same issue reported for 3113.
Product status
4562236b3bc0a28aeb6ee93b2d8a849a4c4e1c7c (git) before a32c8f951c8a456c1c251e1dcdf21787f8066445
4562236b3bc0a28aeb6ee93b2d8a849a4c4e1c7c (git) before 91402e0e5de9124a3108db7a14163fcf9a6d322f
4562236b3bc0a28aeb6ee93b2d8a849a4c4e1c7c (git) before 7e4f50dfc98c49b3dc6875a35c3112522fb25639
4562236b3bc0a28aeb6ee93b2d8a849a4c4e1c7c (git) before f187fcbbb8f8bf10c6687f0beae22509369f7563
4562236b3bc0a28aeb6ee93b2d8a849a4c4e1c7c (git) before 308de6be0c9c7ba36915c0d398e771725c0ea911
4562236b3bc0a28aeb6ee93b2d8a849a4c4e1c7c (git) before 130afc8a886183a94cf6eab7d24f300014ff87ba
4.15
Any version before 4.15
5.15.160 (semver)
6.1.92 (semver)
6.6.32 (semver)
6.8.11 (semver)
6.9.2 (semver)
6.10 (original_commit_for_fix)
References
git.kernel.org/...c/a32c8f951c8a456c1c251e1dcdf21787f8066445
git.kernel.org/...c/91402e0e5de9124a3108db7a14163fcf9a6d322f
git.kernel.org/...c/7e4f50dfc98c49b3dc6875a35c3112522fb25639
git.kernel.org/...c/f187fcbbb8f8bf10c6687f0beae22509369f7563
git.kernel.org/...c/308de6be0c9c7ba36915c0d398e771725c0ea911
git.kernel.org/...c/130afc8a886183a94cf6eab7d24f300014ff87ba
git.kernel.org/...c/a32c8f951c8a456c1c251e1dcdf21787f8066445
git.kernel.org/...c/91402e0e5de9124a3108db7a14163fcf9a6d322f
git.kernel.org/...c/7e4f50dfc98c49b3dc6875a35c3112522fb25639
git.kernel.org/...c/f187fcbbb8f8bf10c6687f0beae22509369f7563
git.kernel.org/...c/308de6be0c9c7ba36915c0d398e771725c0ea911
git.kernel.org/...c/130afc8a886183a94cf6eab7d24f300014ff87ba