CVE-2023-53730

Source
https://nvd.nist.gov/vuln/detail/CVE-2023-53730
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2023-53730.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2023-53730
Downstream
Related
Published
2025-10-22T13:23:58Z
Modified
2025-10-22T22:15:53.491522Z
Summary
blk-iocost: use spin_lock_irqsave in adjust_inuse_and_calc_cost
Details

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

blk-iocost: use spinlockirqsave in adjustinuseandcalccost

adjustinuseandcalccost() use spinlockirq() and IRQ will be enabled when unlock. DEADLOCK might happen if we have held other locks and disabled IRQ before invoking it.

Fix it by using spinlockirqsave() instead, which can keep IRQ state consistent with before when unlock.

================================ WARNING: inconsistent lock state 5.10.0-02758-g8e5f91fd772f #26 Not tainted


inconsistent {IN-HARDIRQ-W} -> {HARDIRQ-ON-W} usage. kworker/2:3/388 [HC0[0]:SC0[0]:HE0:SE1] takes: ffff888118c00c28 (&bfqd->lock){?.-.}-{2:2}, at: spinlockirq ffff888118c00c28 (&bfqd->lock){?.-.}-{2:2}, at: bfqbiomerge+0x141/0x390 {IN-HARDIRQ-W} state was registered at: _lockacquire+0x3d7/0x1070 lockacquire+0x197/0x4a0 _rawspinlockirqsave _rawspinlockirqsave+0x3b/0x60 bfqidleslicetimerbody bfqidleslicetimer+0x53/0x1d0 _runhrtimer+0x477/0xa70 _hrtimerrunqueues+0x1c6/0x2d0 hrtimerinterrupt+0x302/0x9e0 localapictimerinterrupt _sysvecapictimerinterrupt+0xfd/0x420 runsysveconirqstackcond sysvecapictimerinterrupt+0x46/0xa0 asmsysvecapictimerinterrupt+0x12/0x20 irq event stamp: 837522 hardirqs last enabled at (837521): [<ffffffff84b9419d>] _rawspinunlockirqrestore hardirqs last enabled at (837521): [<ffffffff84b9419d>] _rawspinunlockirqrestore+0x3d/0x40 hardirqs last disabled at (837522): [<ffffffff84b93fa3>] _rawspinlockirq hardirqs last disabled at (837522): [<ffffffff84b93fa3>] rawspinlockirq+0x43/0x50 softirqs last enabled at (835852): [<ffffffff84e00558>] _dosoftirq+0x558/0x8ec softirqs last disabled at (835845): [<ffffffff84c010ff>] asmcallirqonstack+0xf/0x20

other info that might help us debug this: Possible unsafe locking scenario:

     CPU0
     ----
lock(&bfqd->lock);
<Interrupt>
  lock(&bfqd->lock);

* DEADLOCK *

3 locks held by kworker/2:3/388: #0: ffff888107af0f38 ((wqcompletion)kthrotld){+.+.}-{0:0}, at: processonework+0x742/0x13f0 #1: ffff8881176bfdd8 ((workcompletion)(&td->dispatchwork)){+.+.}-{0:0}, at: processonework+0x777/0x13f0 #2: ffff888118c00c28 (&bfqd->lock){?.-.}-{2:2}, at: spinlockirq #2: ffff888118c00c28 (&bfqd->lock){?.-.}-{2:2}, at: bfqbio_merge+0x141/0x390

stack backtrace: CPU: 2 PID: 388 Comm: kworker/2:3 Not tainted 5.10.0-02758-g8e5f91fd772f #26 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.14.0-0-g155821a1990b-prebuilt.qemu.org 04/01/2014 Workqueue: kthrotld blkthrotldispatchworkfn Call Trace: _dumpstack lib/dumpstack.c:77 [inline] dumpstack+0x107/0x167 printusagebug validstate marklockirq.cold+0x32/0x3a marklock+0x693/0xbc0 markheldlocks+0x9e/0xe0 _tracehardirqsoncaller lockdephardirqsonprepare.part.0+0x151/0x360 tracehardirqson+0x5b/0x180 _rawspinunlockirq _rawspinunlockirq+0x24/0x40 spinunlockirq adjustinuseandcalccost+0x4fb/0x970 iocrqosmerge+0x277/0x740 _rqqosmerge+0x62/0xb0 rqqosmerge bioattemptbackmerge+0x12c/0x4a0 blkmqschedtrymerge+0x1b6/0x4d0 bfqbiomerge+0x24a/0x390 _blkmqschedbiomerge+0xa6/0x460 blkmqschedbiomerge blkmqsubmitbio+0x2e7/0x1ee0 _submitbionoacctmq+0x175/0x3b0 submitbionoacct+0x1fb/0x270 blkthrotldispatchworkfn+0x1ef/0x2b0 processonework+0x83e/0x13f0 processscheduledworks workerthread+0x7e3/0xd80 kthread+0x353/0x470 retfrom_fork+0x1f/0x30

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
b0853ab4a238c54b8f97ca7dde1ae156e2bbd5e4
Fixed
8563b58a4360e648ce18f0e98a75a4be51667431
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
b0853ab4a238c54b8f97ca7dde1ae156e2bbd5e4
Fixed
eb120c0aff5ceab9c9c46b87f302465bbf2bbaed
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
b0853ab4a238c54b8f97ca7dde1ae156e2bbd5e4
Fixed
8ceeb3fc86a83700bb1585c189006080a47e8506
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
b0853ab4a238c54b8f97ca7dde1ae156e2bbd5e4
Fixed
9279a1b74ad98039d5d44d26b9e7a9cfe655b6d3
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
b0853ab4a238c54b8f97ca7dde1ae156e2bbd5e4
Fixed
3376c4fe2db4aea2dc721a27a999c41fdb45b54f
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
b0853ab4a238c54b8f97ca7dde1ae156e2bbd5e4
Fixed
8d211554679d0b23702bd32ba04aeac0c1c4f660

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.146
v5.10.147
v5.10.148
v5.10.149
v5.10.15
v5.10.150
v5.10.151
v5.10.152
v5.10.153
v5.10.154
v5.10.155
v5.10.156
v5.10.157
v5.10.158
v5.10.159
v5.10.16
v5.10.160
v5.10.161
v5.10.162
v5.10.163
v5.10.164
v5.10.165
v5.10.166
v5.10.167
v5.10.168
v5.10.169
v5.10.17
v5.10.170
v5.10.171
v5.10.172
v5.10.173
v5.10.174
v5.10.175
v5.10.176
v5.10.177
v5.10.178
v5.10.179
v5.10.18
v5.10.180
v5.10.181
v5.10.182
v5.10.183
v5.10.184
v5.10.185
v5.10.186
v5.10.187
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.100
v5.15.101
v5.15.102
v5.15.103
v5.15.104
v5.15.105
v5.15.106
v5.15.107
v5.15.108
v5.15.109
v5.15.11
v5.15.110
v5.15.111
v5.15.112
v5.15.113
v5.15.114
v5.15.115
v5.15.116
v5.15.117
v5.15.118
v5.15.119
v5.15.12
v5.15.120
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.71
v5.15.72
v5.15.73
v5.15.74
v5.15.75
v5.15.76
v5.15.77
v5.15.78
v5.15.79
v5.15.8
v5.15.80
v5.15.81
v5.15.82
v5.15.83
v5.15.84
v5.15.85
v5.15.86
v5.15.87
v5.15.88
v5.15.89
v5.15.9
v5.15.90
v5.15.91
v5.15.92
v5.15.93
v5.15.94
v5.15.95
v5.15.96
v5.15.97
v5.15.98
v5.15.99
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.9
v5.9-rc4
v5.9-rc5
v5.9-rc6
v5.9-rc7
v5.9-rc8

v6.*

v6.0
v6.0-rc1
v6.0-rc2
v6.0-rc3
v6.0-rc4
v6.0-rc5
v6.0-rc6
v6.0-rc7
v6.1
v6.1-rc1
v6.1-rc2
v6.1-rc3
v6.1-rc4
v6.1-rc5
v6.1-rc6
v6.1-rc7
v6.1-rc8
v6.1.1
v6.1.10
v6.1.11
v6.1.12
v6.1.13
v6.1.14
v6.1.15
v6.1.16
v6.1.17
v6.1.18
v6.1.19
v6.1.2
v6.1.20
v6.1.21
v6.1.22
v6.1.23
v6.1.24
v6.1.25
v6.1.26
v6.1.27
v6.1.28
v6.1.29
v6.1.3
v6.1.30
v6.1.31
v6.1.32
v6.1.33
v6.1.34
v6.1.35
v6.1.36
v6.1.37
v6.1.38
v6.1.4
v6.1.5
v6.1.6
v6.1.7
v6.1.8
v6.1.9
v6.2
v6.2-rc1
v6.2-rc2
v6.2-rc3
v6.2-rc4
v6.2-rc5
v6.2-rc6
v6.2-rc7
v6.2-rc8
v6.3
v6.3-rc1
v6.3-rc2
v6.3-rc3
v6.3-rc4
v6.3-rc5
v6.3-rc6
v6.3-rc7
v6.3.1
v6.3.10
v6.3.11
v6.3.12
v6.3.2
v6.3.3
v6.3.4
v6.3.5
v6.3.6
v6.3.7
v6.3.8
v6.3.9
v6.4
v6.4-rc1
v6.4-rc2
v6.4-rc3
v6.4-rc4
v6.4-rc5
v6.4-rc6
v6.4-rc7
v6.4.1
v6.4.2
v6.4.3

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
5.10.0
Fixed
5.10.188
Type
ECOSYSTEM
Events
Introduced
5.11.0
Fixed
5.15.121
Type
ECOSYSTEM
Events
Introduced
5.16.0
Fixed
6.1.39
Type
ECOSYSTEM
Events
Introduced
6.2.0
Fixed
6.3.13
Type
ECOSYSTEM
Events
Introduced
6.4.0
Fixed
6.4.4