In the Linux kernel, the following vulnerability has been resolved:
drm/vc4: Fix deadlock on DSI device attach error
DSI device attach to DSI host will be done with host device's lock held.
Un-registering host in "device attach" error path (ex: probe retry) will result in deadlock with below call trace and non operational DSI display.
Startup Call trace: [ 35.043036] rtmutexslowlock.constprop.21+0x184/0x1b8 [ 35.043048] mutexlocknested+0x7c/0xc8 [ 35.043060] devicedel+0x4c/0x3e8 [ 35.043075] deviceunregister+0x20/0x40 [ 35.043082] mipidsiremovedevicefn+0x18/0x28 [ 35.043093] deviceforeachchild+0x68/0xb0 [ 35.043105] mipidsihostunregister+0x40/0x90 [ 35.043115] vc4dsihostattach+0xf0/0x120 [vc4] [ 35.043199] mipidsiattach+0x30/0x48 [ 35.043209] tc358762probe+0x128/0x164 [tc358762] [ 35.043225] mipidsidrvprobe+0x28/0x38 [ 35.043234] reallyprobe+0xc0/0x318 [ 35.043244] _driverprobedevice+0x80/0xe8 [ 35.043254] driverprobedevice+0xb8/0x118 [ 35.043263] _deviceattachdriver+0x98/0xe8 [ 35.043273] busforeachdrv+0x84/0xd8 [ 35.043281] _deviceattach+0xf0/0x150 [ 35.043290] deviceinitialprobe+0x1c/0x28 [ 35.043300] busprobedevice+0xa4/0xb0 [ 35.043308] deferredprobeworkfunc+0xa0/0xe0 [ 35.043318] processonework+0x254/0x700 [ 35.043330] workerthread+0x4c/0x448 [ 35.043339] kthread+0x19c/0x1a8 [ 35.043348] retfrom_fork+0x10/0x20
Shutdown Call trace: [ 365.565417] Call trace: [ 365.565423] _switchto+0x148/0x200 [ 365.565452] _schedule+0x340/0x9c8 [ 365.565467] schedule+0x48/0x110 [ 365.565479] scheduletimeout+0x3b0/0x448 [ 365.565496] waitforcompletion+0xac/0x138 [ 365.565509] _flushwork+0x218/0x4e0 [ 365.565523] flushwork+0x1c/0x28 [ 365.565536] waitfordeviceprobe+0x68/0x158 [ 365.565550] deviceshutdown+0x24/0x348 [ 365.565561] kernelrestartprepare+0x40/0x50 [ 365.565578] kernelrestart+0x20/0x70 [ 365.565591] _dosysreboot+0x10c/0x220 [ 365.565605] _arm64sysreboot+0x2c/0x38 [ 365.565619] invokesyscall+0x4c/0x110 [ 365.565634] el0svccommon.constprop.3+0xfc/0x120 [ 365.565648] doel0svc+0x2c/0x90 [ 365.565661] el0svc+0x4c/0xf0 [ 365.565671] el0t64synchandler+0x90/0xb8 [ 365.565682] el0t64_sync+0x180/0x184
[
{
"id": "CVE-2022-48826-01d98dff",
"signature_version": "v1",
"digest": {
"length": 1084.0,
"function_hash": "9685567320448277356351254362024139465"
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@dddd832f35096fbc5004e3a7e58fb4d2cefb8deb",
"target": {
"file": "drivers/gpu/drm/vc4/vc4_dsi.c",
"function": "vc4_dsi_host_attach"
}
},
{
"id": "CVE-2022-48826-107f6377",
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"112129910715108132554475604801140365360",
"78417052006678875621581293529294724500",
"79953861177120377650500436653956681379",
"8751942183750565943545310844412421578",
"107654795650177527841904583953527302471",
"8662608411537776796951829247884739406",
"16271109345174223136542641785750712286",
"57457017746896949440188586639665464705",
"94534030695989543632563667178560279335",
"186751423715846985758276782787271306439",
"52679289906913760892833483748799127539",
"88690810253427537334686102042736830066",
"298309710089421685517862719156785954907",
"305834375343020640936402026248918309297",
"283786705786083982090165876751328805831",
"63817994655049493427459382998547625341",
"191655707164803460616835982977285754972",
"228956198465637650957791782800555430360",
"147476497786354172659478050738387946119",
"319134568262193888396579849781284419068",
"300222502148687494856270716877033030214",
"33165293619289261512448271075988683628"
]
},
"deprecated": false,
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@dddd832f35096fbc5004e3a7e58fb4d2cefb8deb",
"target": {
"file": "drivers/gpu/drm/vc4/vc4_dsi.c"
}
},
{
"id": "CVE-2022-48826-2192a92c",
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"112129910715108132554475604801140365360",
"78417052006678875621581293529294724500",
"79953861177120377650500436653956681379",
"8751942183750565943545310844412421578",
"107654795650177527841904583953527302471",
"8662608411537776796951829247884739406",
"16271109345174223136542641785750712286",
"57457017746896949440188586639665464705",
"94534030695989543632563667178560279335",
"186751423715846985758276782787271306439",
"52679289906913760892833483748799127539",
"88690810253427537334686102042736830066",
"298309710089421685517862719156785954907",
"305834375343020640936402026248918309297",
"283786705786083982090165876751328805831",
"63817994655049493427459382998547625341",
"191655707164803460616835982977285754972",
"228956198465637650957791782800555430360",
"147476497786354172659478050738387946119",
"319134568262193888396579849781284419068",
"300222502148687494856270716877033030214",
"33165293619289261512448271075988683628"
]
},
"deprecated": false,
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@0a3d12ab5097b1d045e693412e6b366b7e82031b",
"target": {
"file": "drivers/gpu/drm/vc4/vc4_dsi.c"
}
},
{
"id": "CVE-2022-48826-4b186899",
"signature_version": "v1",
"digest": {
"length": 70.0,
"function_hash": "273026268871247218587667110329140305627"
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@dddd832f35096fbc5004e3a7e58fb4d2cefb8deb",
"target": {
"file": "drivers/gpu/drm/vc4/vc4_dsi.c",
"function": "vc4_dsi_host_detach"
}
},
{
"id": "CVE-2022-48826-56521fd2",
"signature_version": "v1",
"digest": {
"length": 70.0,
"function_hash": "273026268871247218587667110329140305627"
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@770d1ba9a8201ce9bee0946eb03746449b6f3b80",
"target": {
"file": "drivers/gpu/drm/vc4/vc4_dsi.c",
"function": "vc4_dsi_host_detach"
}
},
{
"id": "CVE-2022-48826-579c8af0",
"signature_version": "v1",
"digest": {
"length": 197.0,
"function_hash": "168799076773179347951677387700350572051"
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@770d1ba9a8201ce9bee0946eb03746449b6f3b80",
"target": {
"file": "drivers/gpu/drm/vc4/vc4_dsi.c",
"function": "vc4_dsi_dev_remove"
}
},
{
"id": "CVE-2022-48826-65f30a7e",
"signature_version": "v1",
"digest": {
"length": 1084.0,
"function_hash": "9685567320448277356351254362024139465"
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@770d1ba9a8201ce9bee0946eb03746449b6f3b80",
"target": {
"file": "drivers/gpu/drm/vc4/vc4_dsi.c",
"function": "vc4_dsi_host_attach"
}
},
{
"id": "CVE-2022-48826-973e9d63",
"signature_version": "v1",
"digest": {
"length": 197.0,
"function_hash": "168799076773179347951677387700350572051"
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@0a3d12ab5097b1d045e693412e6b366b7e82031b",
"target": {
"file": "drivers/gpu/drm/vc4/vc4_dsi.c",
"function": "vc4_dsi_dev_remove"
}
},
{
"id": "CVE-2022-48826-99fd5fd5",
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"112129910715108132554475604801140365360",
"78417052006678875621581293529294724500",
"79953861177120377650500436653956681379",
"8751942183750565943545310844412421578",
"107654795650177527841904583953527302471",
"8662608411537776796951829247884739406",
"16271109345174223136542641785750712286",
"57457017746896949440188586639665464705",
"94534030695989543632563667178560279335",
"186751423715846985758276782787271306439",
"52679289906913760892833483748799127539",
"88690810253427537334686102042736830066",
"298309710089421685517862719156785954907",
"305834375343020640936402026248918309297",
"283786705786083982090165876751328805831",
"63817994655049493427459382998547625341",
"191655707164803460616835982977285754972",
"228956198465637650957791782800555430360",
"147476497786354172659478050738387946119",
"319134568262193888396579849781284419068",
"300222502148687494856270716877033030214",
"33165293619289261512448271075988683628"
]
},
"deprecated": false,
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@770d1ba9a8201ce9bee0946eb03746449b6f3b80",
"target": {
"file": "drivers/gpu/drm/vc4/vc4_dsi.c"
}
},
{
"id": "CVE-2022-48826-9fd20564",
"signature_version": "v1",
"digest": {
"length": 70.0,
"function_hash": "273026268871247218587667110329140305627"
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@0a3d12ab5097b1d045e693412e6b366b7e82031b",
"target": {
"file": "drivers/gpu/drm/vc4/vc4_dsi.c",
"function": "vc4_dsi_host_detach"
}
},
{
"id": "CVE-2022-48826-adbe0614",
"signature_version": "v1",
"digest": {
"length": 197.0,
"function_hash": "168799076773179347951677387700350572051"
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@dddd832f35096fbc5004e3a7e58fb4d2cefb8deb",
"target": {
"file": "drivers/gpu/drm/vc4/vc4_dsi.c",
"function": "vc4_dsi_dev_remove"
}
},
{
"id": "CVE-2022-48826-d52efeef",
"signature_version": "v1",
"digest": {
"length": 1084.0,
"function_hash": "9685567320448277356351254362024139465"
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@0a3d12ab5097b1d045e693412e6b366b7e82031b",
"target": {
"file": "drivers/gpu/drm/vc4/vc4_dsi.c",
"function": "vc4_dsi_host_attach"
}
}
]