In the Linux kernel, the following vulnerability has been resolved:
dm crypt: add cond_resched() to dmcrypt_write()
The loop in dmcrypt_write may be running for unbounded amount of time, thus we need cond_resched() in it.
This commit fixes the following warning:
[ 3391.153255][ C12] watchdog: BUG: soft lockup - CPU#12 stuck for 23s! [dmcrypt_write/2:2897] ... [ 3391.387210][ C12] Call trace: [ 3391.390338][ C12] blk_attempt_bio_merge.part.6+0x38/0x158 [ 3391.395970][ C12] blk_attempt_plug_merge+0xc0/0x1b0 [ 3391.401085][ C12] blk_mq_submit_bio+0x398/0x550 [ 3391.405856][ C12] submit_bio_noacct+0x308/0x380 [ 3391.410630][ C12] dmcrypt_write+0x1e4/0x208 [dm_crypt] [ 3391.416005][ C12] kthread+0x130/0x138 [ 3391.419911][ C12] ret_from_fork+0x10/0x18
| Software | From | Fixed in |
|---|---|---|
| linux / linux_kernel | 4.0 | 4.14.312 |
| linux / linux_kernel | 4.15 | 4.19.280 |
| linux / linux_kernel | 4.20 | 5.4.240 |
| linux / linux_kernel | 5.5 | 5.10.177 |
| linux / linux_kernel | 5.11 | 5.15.105 |
| linux / linux_kernel | 5.16 | 6.1.22 |
| linux / linux_kernel | 6.2 | 6.2.9 |
| linux / linux_kernel | 6.3-rc1 | 6.3-rc1.x |
| linux / linux_kernel | 6.3-rc2 | 6.3-rc2.x |
| linux / linux_kernel | 6.3-rc3 | 6.3-rc3.x |