CVE-2022-48634

Source
https://nvd.nist.gov/vuln/detail/CVE-2022-48634
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2022-48634.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2022-48634
Downstream
Related
Published
2024-04-28T12:59:19Z
Modified
2025-10-08T06:45:53.143774Z
Severity
  • 5.3 (Medium) CVSS_V3 - CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L CVSS Calculator
Summary
drm/gma500: Fix BUG: sleeping function called from invalid context errors
Details

In the Linux kernel, the following vulnerability has been resolved:

drm/gma500: Fix BUG: sleeping function called from invalid context errors

gmacrtcpageflip() was holding the eventlock spinlock while calling crtcfuncs->modesetbase() which takes wwmutex.

The only reason to hold eventlock is to clear gmacrtc->pageflipevent on modesetbase() errors.

Instead unlock it after setting gmacrtc->pageflipevent and on errors re-take the lock and clear gmacrtc->pageflipevent it it is still set.

This fixes the following WARN/stacktrace:

[ 512.122953] BUG: sleeping function called from invalid context at kernel/locking/mutex.c:870 [ 512.123004] inatomic(): 1, irqsdisabled(): 1, nonblock: 0, pid: 1253, name: gnome-shell [ 512.123031] preemptcount: 1, expected: 0 [ 512.123048] RCU nest depth: 0, expected: 0 [ 512.123066] INFO: lockdep is turned off. [ 512.123080] irq event stamp: 0 [ 512.123094] hardirqs last enabled at (0): [<0000000000000000>] 0x0 [ 512.123134] hardirqs last disabled at (0): [<ffffffff8d0ec28c>] copyprocess+0x9fc/0x1de0 [ 512.123176] softirqs last enabled at (0): [<ffffffff8d0ec28c>] copyprocess+0x9fc/0x1de0 [ 512.123207] softirqs last disabled at (0): [<0000000000000000>] 0x0 [ 512.123233] Preemption disabled at: [ 512.123241] [<0000000000000000>] 0x0 [ 512.123275] CPU: 3 PID: 1253 Comm: gnome-shell Tainted: G W 5.19.0+ #1 [ 512.123304] Hardware name: Packard Bell dot s/SJE01CT, BIOS V1.10 07/23/2013 [ 512.123323] Call Trace: [ 512.123346] <TASK> [ 512.123370] dumpstacklvl+0x5b/0x77 [ 512.123412] _mightresched.cold+0xff/0x13a [ 512.123458] wwmutexlock+0x1e/0xa0 [ 512.123495] psbgempin+0x2c/0x150 [gma500gfx] [ 512.123601] gmapipesetbase+0x76/0x240 [gma500gfx] [ 512.123708] gmacrtcpageflip+0x95/0x130 [gma500gfx] [ 512.123808] drmmodepageflipioctl+0x57d/0x5d0 [ 512.123897] ? drmmodecursor2ioctl+0x10/0x10 [ 512.123936] drmioctlkernel+0xa1/0x150 [ 512.123984] drmioctl+0x21f/0x420 [ 512.124025] ? drmmodecursor2ioctl+0x10/0x10 [ 512.124070] ? rcureadlockbhheld+0xb/0x60 [ 512.124104] ? lockrelease+0x1ef/0x2d0 [ 512.124161] _x64sysioctl+0x8d/0xd0 [ 512.124203] dosyscall64+0x58/0x80 [ 512.124239] ? dosyscall64+0x67/0x80 [ 512.124267] ? tracehardirqsonprepare+0x55/0xe0 [ 512.124300] ? dosyscall64+0x67/0x80 [ 512.124340] ? rcureadlockschedheld+0x10/0x80 [ 512.124377] entrySYSCALL64afterhwframe+0x63/0xcd [ 512.124411] RIP: 0033:0x7fcc4a70740f [ 512.124442] Code: 00 48 89 44 24 18 31 c0 48 8d 44 24 60 c7 04 24 10 00 00 00 48 89 44 24 08 48 8d 44 24 20 48 89 44 24 10 b8 10 00 00 00 0f 05 <89> c2 3d 00 f0 ff ff 77 18 48 8b 44 24 18 64 48 2b 04 25 28 00 00 [ 512.124470] RSP: 002b:00007ffda73f5390 EFLAGS: 00000246 ORIG_RAX: 0000000000000010 [ 512.124503] RAX: ffffffffffffffda RBX: 000055cc9e474500 RCX: 00007fcc4a70740f [ 512.124524] RDX: 00007ffda73f5420 RSI: 00000000c01864b0 RDI: 0000000000000009 [ 512.124544] RBP: 00007ffda73f5420 R08: 000055cc9c0b0cb0 R09: 0000000000000034 [ 512.124564] R10: 0000000000000000 R11: 0000000000000246 R12: 00000000c01864b0 [ 512.124584] R13: 0000000000000009 R14: 000055cc9df484d0 R15: 000055cc9af5d0c0 [ 512.124647] </TASK>

References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
f76c22ce8fbbd03394eb9e2cd8c490d9ad2a116c
Fixed
c5812807e416618477d1bb0049727ce8bb8292fd
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
f76c22ce8fbbd03394eb9e2cd8c490d9ad2a116c
Fixed
e5ae504c8623476e13032670f1a6d6344d53ec9b
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
f76c22ce8fbbd03394eb9e2cd8c490d9ad2a116c
Fixed
a6ed7624bf4d0a32f2631e74828bca7b7bf15afd
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
f76c22ce8fbbd03394eb9e2cd8c490d9ad2a116c
Fixed
63e37a79f7bd939314997e29c2f5a9f0ef184281

Affected versions

v5.*

v5.10
v5.10-rc1
v5.10-rc2
v5.10-rc3
v5.10-rc4
v5.10-rc5
v5.10-rc6
v5.10-rc7
v5.10.1
v5.10.10
v5.10.100
v5.10.101
v5.10.102
v5.10.103
v5.10.104
v5.10.105
v5.10.106
v5.10.107
v5.10.108
v5.10.109
v5.10.11
v5.10.110
v5.10.111
v5.10.112
v5.10.113
v5.10.114
v5.10.115
v5.10.116
v5.10.117
v5.10.118
v5.10.119
v5.10.12
v5.10.120
v5.10.121
v5.10.122
v5.10.123
v5.10.124
v5.10.125
v5.10.126
v5.10.127
v5.10.128
v5.10.129
v5.10.13
v5.10.130
v5.10.131
v5.10.132
v5.10.133
v5.10.134
v5.10.135
v5.10.136
v5.10.137
v5.10.138
v5.10.139
v5.10.14
v5.10.140
v5.10.141
v5.10.142
v5.10.143
v5.10.144
v5.10.145
v5.10.15
v5.10.16
v5.10.17
v5.10.18
v5.10.19
v5.10.2
v5.10.20
v5.10.21
v5.10.22
v5.10.23
v5.10.24
v5.10.25
v5.10.26
v5.10.27
v5.10.28
v5.10.29
v5.10.3
v5.10.30
v5.10.31
v5.10.32
v5.10.33
v5.10.34
v5.10.35
v5.10.36
v5.10.37
v5.10.38
v5.10.39
v5.10.4
v5.10.40
v5.10.41
v5.10.42
v5.10.43
v5.10.44
v5.10.45
v5.10.46
v5.10.47
v5.10.48
v5.10.49
v5.10.5
v5.10.50
v5.10.51
v5.10.52
v5.10.53
v5.10.54
v5.10.55
v5.10.56
v5.10.57
v5.10.58
v5.10.59
v5.10.6
v5.10.60
v5.10.61
v5.10.62
v5.10.63
v5.10.64
v5.10.65
v5.10.66
v5.10.67
v5.10.68
v5.10.69
v5.10.7
v5.10.70
v5.10.71
v5.10.72
v5.10.73
v5.10.74
v5.10.75
v5.10.76
v5.10.77
v5.10.78
v5.10.79
v5.10.8
v5.10.80
v5.10.81
v5.10.82
v5.10.83
v5.10.84
v5.10.85
v5.10.86
v5.10.87
v5.10.88
v5.10.89
v5.10.9
v5.10.90
v5.10.91
v5.10.92
v5.10.93
v5.10.94
v5.10.95
v5.10.96
v5.10.97
v5.10.98
v5.10.99
v5.11
v5.11-rc1
v5.11-rc2
v5.11-rc3
v5.11-rc4
v5.11-rc5
v5.11-rc6
v5.11-rc7
v5.12
v5.12-rc1
v5.12-rc1-dontuse
v5.12-rc2
v5.12-rc3
v5.12-rc4
v5.12-rc5
v5.12-rc6
v5.12-rc7
v5.12-rc8
v5.13
v5.13-rc1
v5.13-rc2
v5.13-rc3
v5.13-rc4
v5.13-rc5
v5.13-rc6
v5.13-rc7
v5.14
v5.14-rc1
v5.14-rc2
v5.14-rc3
v5.14-rc4
v5.14-rc5
v5.14-rc6
v5.14-rc7
v5.15
v5.15-rc1
v5.15-rc2
v5.15-rc3
v5.15-rc4
v5.15-rc5
v5.15-rc6
v5.15-rc7
v5.15.1
v5.15.10
v5.15.11
v5.15.12
v5.15.13
v5.15.14
v5.15.15
v5.15.16
v5.15.17
v5.15.18
v5.15.19
v5.15.2
v5.15.20
v5.15.21
v5.15.22
v5.15.23
v5.15.24
v5.15.25
v5.15.26
v5.15.27
v5.15.28
v5.15.29
v5.15.3
v5.15.30
v5.15.31
v5.15.32
v5.15.33
v5.15.34
v5.15.35
v5.15.36
v5.15.37
v5.15.38
v5.15.39
v5.15.4
v5.15.40
v5.15.41
v5.15.42
v5.15.43
v5.15.44
v5.15.45
v5.15.46
v5.15.47
v5.15.48
v5.15.49
v5.15.5
v5.15.50
v5.15.51
v5.15.52
v5.15.53
v5.15.54
v5.15.55
v5.15.56
v5.15.57
v5.15.58
v5.15.59
v5.15.6
v5.15.60
v5.15.61
v5.15.62
v5.15.63
v5.15.64
v5.15.65
v5.15.66
v5.15.67
v5.15.68
v5.15.69
v5.15.7
v5.15.70
v5.15.8
v5.15.9
v5.16
v5.16-rc1
v5.16-rc2
v5.16-rc3
v5.16-rc4
v5.16-rc5
v5.16-rc6
v5.16-rc7
v5.16-rc8
v5.17
v5.17-rc1
v5.17-rc2
v5.17-rc3
v5.17-rc4
v5.17-rc5
v5.17-rc6
v5.17-rc7
v5.17-rc8
v5.18
v5.18-rc1
v5.18-rc2
v5.18-rc3
v5.18-rc4
v5.18-rc5
v5.18-rc6
v5.18-rc7
v5.19
v5.19-rc1
v5.19-rc2
v5.19-rc3
v5.19-rc4
v5.19-rc5
v5.19-rc6
v5.19-rc7
v5.19-rc8
v5.19.1
v5.19.10
v5.19.11
v5.19.2
v5.19.3
v5.19.4
v5.19.5
v5.19.6
v5.19.7
v5.19.8
v5.19.9
v5.4
v5.4-rc5
v5.4-rc6
v5.4-rc7
v5.4-rc8
v5.5
v5.5-rc1
v5.5-rc2
v5.5-rc3
v5.5-rc4
v5.5-rc5
v5.5-rc6
v5.5-rc7
v5.6
v5.6-rc1
v5.6-rc2
v5.6-rc3
v5.6-rc4
v5.6-rc5
v5.6-rc6
v5.6-rc7
v5.7
v5.7-rc1
v5.7-rc2
v5.7-rc3
v5.7-rc4
v5.7-rc5
v5.7-rc6
v5.7-rc7
v5.8
v5.8-rc1
v5.8-rc2
v5.8-rc3
v5.8-rc4
v5.8-rc5
v5.8-rc6
v5.8-rc7
v5.9
v5.9-rc1
v5.9-rc2
v5.9-rc3
v5.9-rc4
v5.9-rc5
v5.9-rc6
v5.9-rc7
v5.9-rc8

v6.*

v6.0-rc1

Database specific

{
    "vanir_signatures": [
        {
            "signature_type": "Function",
            "target": {
                "file": "drivers/gpu/drm/gma500/gma_display.c",
                "function": "gma_crtc_page_flip"
            },
            "digest": {
                "function_hash": "133231589083785085387079770339147885013",
                "length": 855.0
            },
            "signature_version": "v1",
            "deprecated": false,
            "id": "CVE-2022-48634-1fe34965",
            "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e5ae504c8623476e13032670f1a6d6344d53ec9b"
        },
        {
            "signature_type": "Line",
            "target": {
                "file": "drivers/gpu/drm/gma500/gma_display.c"
            },
            "digest": {
                "line_hashes": [
                    "326440798024638431266732621414268041968",
                    "338757558822754854895352904672238490332",
                    "261636347292756436578229651529971811582",
                    "66674566450220555016804516126918483046",
                    "66881723990388709066266615872338351867",
                    "276246483805205850372409357029020122528",
                    "147754690285036704551226725959645938020",
                    "262282139772735274220797524788513791494",
                    "233145116548514954000555965837520107624",
                    "88344231342979707582315202554909704925"
                ],
                "threshold": 0.9
            },
            "signature_version": "v1",
            "deprecated": false,
            "id": "CVE-2022-48634-2927b681",
            "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a6ed7624bf4d0a32f2631e74828bca7b7bf15afd"
        },
        {
            "signature_type": "Function",
            "target": {
                "file": "drivers/gpu/drm/gma500/gma_display.c",
                "function": "gma_crtc_page_flip"
            },
            "digest": {
                "function_hash": "133231589083785085387079770339147885013",
                "length": 855.0
            },
            "signature_version": "v1",
            "deprecated": false,
            "id": "CVE-2022-48634-5d969822",
            "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@63e37a79f7bd939314997e29c2f5a9f0ef184281"
        },
        {
            "signature_type": "Function",
            "target": {
                "file": "drivers/gpu/drm/gma500/gma_display.c",
                "function": "gma_crtc_page_flip"
            },
            "digest": {
                "function_hash": "133231589083785085387079770339147885013",
                "length": 855.0
            },
            "signature_version": "v1",
            "deprecated": false,
            "id": "CVE-2022-48634-81ac6055",
            "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a6ed7624bf4d0a32f2631e74828bca7b7bf15afd"
        },
        {
            "signature_type": "Function",
            "target": {
                "file": "drivers/gpu/drm/gma500/gma_display.c",
                "function": "gma_crtc_page_flip"
            },
            "digest": {
                "function_hash": "133231589083785085387079770339147885013",
                "length": 855.0
            },
            "signature_version": "v1",
            "deprecated": false,
            "id": "CVE-2022-48634-81e0aeb4",
            "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c5812807e416618477d1bb0049727ce8bb8292fd"
        },
        {
            "signature_type": "Line",
            "target": {
                "file": "drivers/gpu/drm/gma500/gma_display.c"
            },
            "digest": {
                "line_hashes": [
                    "326440798024638431266732621414268041968",
                    "338757558822754854895352904672238490332",
                    "261636347292756436578229651529971811582",
                    "66674566450220555016804516126918483046",
                    "66881723990388709066266615872338351867",
                    "276246483805205850372409357029020122528",
                    "147754690285036704551226725959645938020",
                    "262282139772735274220797524788513791494",
                    "233145116548514954000555965837520107624",
                    "88344231342979707582315202554909704925"
                ],
                "threshold": 0.9
            },
            "signature_version": "v1",
            "deprecated": false,
            "id": "CVE-2022-48634-b9aaae8d",
            "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e5ae504c8623476e13032670f1a6d6344d53ec9b"
        },
        {
            "signature_type": "Line",
            "target": {
                "file": "drivers/gpu/drm/gma500/gma_display.c"
            },
            "digest": {
                "line_hashes": [
                    "326440798024638431266732621414268041968",
                    "338757558822754854895352904672238490332",
                    "261636347292756436578229651529971811582",
                    "66674566450220555016804516126918483046",
                    "66881723990388709066266615872338351867",
                    "276246483805205850372409357029020122528",
                    "147754690285036704551226725959645938020",
                    "262282139772735274220797524788513791494",
                    "233145116548514954000555965837520107624",
                    "88344231342979707582315202554909704925"
                ],
                "threshold": 0.9
            },
            "signature_version": "v1",
            "deprecated": false,
            "id": "CVE-2022-48634-cd02a991",
            "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@63e37a79f7bd939314997e29c2f5a9f0ef184281"
        },
        {
            "signature_type": "Line",
            "target": {
                "file": "drivers/gpu/drm/gma500/gma_display.c"
            },
            "digest": {
                "line_hashes": [
                    "326440798024638431266732621414268041968",
                    "338757558822754854895352904672238490332",
                    "261636347292756436578229651529971811582",
                    "66674566450220555016804516126918483046",
                    "66881723990388709066266615872338351867",
                    "276246483805205850372409357029020122528",
                    "147754690285036704551226725959645938020",
                    "262282139772735274220797524788513791494",
                    "233145116548514954000555965837520107624",
                    "88344231342979707582315202554909704925"
                ],
                "threshold": 0.9
            },
            "signature_version": "v1",
            "deprecated": false,
            "id": "CVE-2022-48634-dbe7c8ca",
            "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c5812807e416618477d1bb0049727ce8bb8292fd"
        }
    ]
}

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
5.6.0
Fixed
5.10.146
Type
ECOSYSTEM
Events
Introduced
5.11.0
Fixed
5.15.71
Type
ECOSYSTEM
Events
Introduced
5.16.0
Fixed
5.19.12