Home

Description

In the Linux kernel, the following vulnerability has been resolved: md/raid10: prevent soft lockup while flush writes Currently, there is no limit for raid1/raid10 plugged bio. While flushing writes, raid1 has cond_resched() while raid10 doesn't, and too many writes can cause soft lockup. Follow up soft lockup can be triggered easily with writeback test for raid10 with ramdisks: watchdog: BUG: soft lockup - CPU#10 stuck for 27s! [md0_raid10:1293] Call Trace: <TASK> call_rcu+0x16/0x20 put_object+0x41/0x80 __delete_object+0x50/0x90 delete_object_full+0x2b/0x40 kmemleak_free+0x46/0xa0 slab_free_freelist_hook.constprop.0+0xed/0x1a0 kmem_cache_free+0xfd/0x300 mempool_free_slab+0x1f/0x30 mempool_free+0x3a/0x100 bio_free+0x59/0x80 bio_put+0xcf/0x2c0 free_r10bio+0xbf/0xf0 raid_end_bio_io+0x78/0xb0 one_write_done+0x8a/0xa0 raid10_end_write_request+0x1b4/0x430 bio_endio+0x175/0x320 brd_submit_bio+0x3b9/0x9b7 [brd] __submit_bio+0x69/0xe0 submit_bio_noacct_nocheck+0x1e6/0x5a0 submit_bio_noacct+0x38c/0x7e0 flush_pending_writes+0xf0/0x240 raid10d+0xac/0x1ed0 Fix the problem by adding cond_resched() to raid10 like what raid1 did. Note that unlimited plugged bio still need to be optimized, for example, in the case of lots of dirty pages writeback, this will take lots of memory and io will spend a long time in plug, hence io latency is bad.

PUBLISHED Reserved 2025-05-02 | Published 2025-09-15 | Updated 2025-09-15 | Assigner Linux

Product status

Default status
unaffected

1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (git) before f45b2fa7678ab385299de345f7e85d05caea386b
affected

1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (git) before 00ecb6fa67c0f772290c5ea5ae8b46eefd503b83
affected

1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (git) before d0345f7c7dbc5d42e4e6f1db99c1c1879d7b0eb5
affected

1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (git) before 634daf6b2c81015cc5e28bf694a6a94a50c641cd
affected

1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (git) before 84a578961b2566e475bfa8740beaf0abcc781a6f
affected

1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (git) before 1d467e10507167eb6dc2c281a87675b731955d86
affected

1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (git) before fbf50184190d55f8717bd29aa9530c399be96f30
affected

1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (git) before 010444623e7f4da6b4a4dd603a7da7469981e293
affected

Default status
affected

4.14.322 (semver)
unaffected

4.19.291 (semver)
unaffected

5.4.251 (semver)
unaffected

5.10.188 (semver)
unaffected

5.15.150 (semver)
unaffected

6.1.83 (semver)
unaffected

6.4.7 (semver)
unaffected

6.5 (original_commit_for_fix)
unaffected

References

git.kernel.org/...c/f45b2fa7678ab385299de345f7e85d05caea386b

git.kernel.org/...c/00ecb6fa67c0f772290c5ea5ae8b46eefd503b83

git.kernel.org/...c/d0345f7c7dbc5d42e4e6f1db99c1c1879d7b0eb5

git.kernel.org/...c/634daf6b2c81015cc5e28bf694a6a94a50c641cd

git.kernel.org/...c/84a578961b2566e475bfa8740beaf0abcc781a6f

git.kernel.org/...c/1d467e10507167eb6dc2c281a87675b731955d86

git.kernel.org/...c/fbf50184190d55f8717bd29aa9530c399be96f30

git.kernel.org/...c/010444623e7f4da6b4a4dd603a7da7469981e293

cve.org (CVE-2023-53151)

nvd.nist.gov (CVE-2023-53151)

Download JSON