Linux: drm/bridge: samsung-dsim: fix TE GPIO lifetime for host attach
What fixes it
- 77a43e00c57486a5212ef22d4665cafad62a5d4bLinuxCVE List
- 5759bbef951c39d264ac0f47daa4137d01403aeaLinuxCVE List
- 9b796251c3cca45a33a5c859c6818c58aa982277LinuxCVE List
A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.
Description
In the Linux kernel, the following vulnerability has been resolved:
drm/bridge: samsung-dsim: fix TE GPIO lifetime for host attach
When the Exynos DSI driver was generalized into samsung-dsim, the TE GPIO acquisition was switched from gpiod_get_optional() to devm_gpiod_get_optional() while keeping the matching gpiod_put() calls. That combination is wrong for a managed descriptor.
However, dropping the puts and keeping the managed get is also wrong: samsung_dsim_register_te_irq() runs from the DSI host attach callback, and host detach/reattach can happen without destroying the device that owns the managed action. A second attach would then request the GPIO again without having released it.
Switch back to a non-managed gpiod_get_optional() and keep the explicit gpiod_put() on the request_irq() error path and in samsung_dsim_unregister_te_irq().
[Luca: remove unnecessary comment]
Text from CVE List
Affected versions 12
- Linuxaffected: e7447128ca4a250374d6721ee98e3e3cf99551a6 before 77a43e00c57486a5212ef22d4665cafad62a5d4bCVE List
- Linuxaffected: e7447128ca4a250374d6721ee98e3e3cf99551a6 before 5759bbef951c39d264ac0f47daa4137d01403aeaCVE List
- Linuxaffected: e7447128ca4a250374d6721ee98e3e3cf99551a6 before ebffd70e4877bb7554974cf975a27872f2bb225fCVE List
- Linuxaffected: e7447128ca4a250374d6721ee98e3e3cf99551a6 before 9b796251c3cca45a33a5c859c6818c58aa982277CVE List
- Linuxaffected: e7447128ca4a250374d6721ee98e3e3cf99551a6 before ada667890773e033d2f40dc94176e3beb930b516CVE List
- Linuxaffected: 6.4CVE List
- Linuxunaffected: all versions before 6.4CVE List
- Linuxunaffected: 6.6.158 through 6.6.*CVE List
- Linuxunaffected: 6.12.112 through 6.12.*CVE List
- Linuxunaffected: 6.18.55 through 6.18.*CVE List
- Linuxunaffected: 7.2.9 through 7.2.*CVE List
- Linuxunaffected: 7.3CVE List
References 5
- git.kernel.org/stable/c/77a43e00c57486a5212ef22d4665cafad62a5d4bReferencevia CVE List
- git.kernel.org/stable/c/5759bbef951c39d264ac0f47daa4137d01403aeaReferencevia CVE List
- git.kernel.org/stable/c/ebffd70e4877bb7554974cf975a27872f2bb225fReferencevia CVE List
- git.kernel.org/stable/c/9b796251c3cca45a33a5c859c6818c58aa982277Referencevia CVE List
- git.kernel.org/stable/c/ada667890773e033d2f40dc94176e3beb930b516Referencevia CVE List