In the Linux kernel, the following vulnerability has been resolved:
drm/v3d: Disable preemption while updating GPU stats
We forgot to disable preemption around the writeseqcountbegin/end() pair while updating GPU stats:
[ ] WARNING: CPU: 2 PID: 12 at include/linux/seqlock.h:221 _seqpropassert.isra.0+0x128/0x150 [v3d] [ ] Workqueue: v3dbin drmschedrunjobwork [gpusched] <...snip...> [ ] Call trace: [ ] _seqpropassert.isra.0+0x128/0x150 [v3d] [ ] v3djobstartstats.isra.0+0x90/0x218 [v3d] [ ] v3dbinjobrun+0x23c/0x388 [v3d] [ ] drmschedrunjobwork+0x520/0x6d0 [gpusched] [ ] processonework+0x62c/0xb48 [ ] workerthread+0x468/0x5b0 [ ] kthread+0x1c4/0x1e0 [ ] retfromfork+0x10/0x20
Fix it.
[
{
"id": "CVE-2024-46699-1fdcefd3",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@1e93467ef20308da5a94cde548ee17d523e8ba7b",
"deprecated": false,
"signature_version": "v1",
"target": {
"function": "v3d_job_update_stats",
"file": "drivers/gpu/drm/v3d/v3d_sched.c"
},
"digest": {
"length": 290.0,
"function_hash": "130213478285180172477098723374915462256"
},
"signature_type": "Function"
},
{
"id": "CVE-2024-46699-611271ba",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@1e93467ef20308da5a94cde548ee17d523e8ba7b",
"deprecated": false,
"signature_version": "v1",
"target": {
"function": "v3d_job_start_stats",
"file": "drivers/gpu/drm/v3d/v3d_sched.c"
},
"digest": {
"length": 411.0,
"function_hash": "112231179539625137628397784537948446352"
},
"signature_type": "Function"
},
{
"id": "CVE-2024-46699-7ae69a43",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@9d824c7fce58f59982228aa85b0376b113cdfa35",
"deprecated": false,
"signature_version": "v1",
"target": {
"function": "v3d_job_update_stats",
"file": "drivers/gpu/drm/v3d/v3d_sched.c"
},
"digest": {
"length": 290.0,
"function_hash": "130213478285180172477098723374915462256"
},
"signature_type": "Function"
},
{
"id": "CVE-2024-46699-8a855716",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@9d824c7fce58f59982228aa85b0376b113cdfa35",
"deprecated": false,
"signature_version": "v1",
"target": {
"function": "v3d_job_start_stats",
"file": "drivers/gpu/drm/v3d/v3d_sched.c"
},
"digest": {
"length": 411.0,
"function_hash": "112231179539625137628397784537948446352"
},
"signature_type": "Function"
},
{
"id": "CVE-2024-46699-b1154b88",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@9d824c7fce58f59982228aa85b0376b113cdfa35",
"deprecated": false,
"signature_version": "v1",
"target": {
"file": "drivers/gpu/drm/v3d/v3d_sched.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"177059701983376240267621654062231431192",
"314942205911342669004992265314890446976",
"72106026158899969988521444873486201863",
"152247493783356918075862916378344545908",
"253549829217446014972918263833611373816",
"251426224861159114398916776394404415360",
"290980490389413353261908805243429371437",
"194373596267781397118352011852732339779",
"60008181240072434208346187444987045209",
"285993628899749655859935381071817007608",
"37450717202051519884111486050827855386",
"15419234252622515341538088332295499352"
]
},
"signature_type": "Line"
},
{
"id": "CVE-2024-46699-cb4089bc",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@1e93467ef20308da5a94cde548ee17d523e8ba7b",
"deprecated": false,
"signature_version": "v1",
"target": {
"file": "drivers/gpu/drm/v3d/v3d_sched.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"177059701983376240267621654062231431192",
"314942205911342669004992265314890446976",
"72106026158899969988521444873486201863",
"152247493783356918075862916378344545908",
"253549829217446014972918263833611373816",
"251426224861159114398916776394404415360",
"290980490389413353261908805243429371437",
"194373596267781397118352011852732339779",
"60008181240072434208346187444987045209",
"285993628899749655859935381071817007608",
"37450717202051519884111486050827855386",
"15419234252622515341538088332295499352"
]
},
"signature_type": "Line"
}
]