[PATCH v4 0/5] md: fix uaf for sync_thread

From: Yu Kuai
Date: Sun Apr 02 2023 - 05:13:21 EST


From: Yu Kuai <yukuai3@xxxxxxxxxx>

Changes in v4:
- remove patch 2 from v3
- fix sparse errors and warnings from v3, in order to do that, all access
to md_thread need to be modified, patch 2-4 is splited to avoid a huge
patch.

Changes in v3:
- remove patch 3 from v2
- use rcu instead of a new lock

Changes in v2:
- fix a compile error for md-cluster in patch 2
- replace spin_lock/unlock with spin_lock/unlock_irq in patch 5
- don't wake up inside the new lock in md wakeup_thread in patch 5

Yu Kuai (5):
md: pass a md_thread pointer to md_register_thread()
md: factor out a helper to wake up md_thread directly
md: add a helper to access md_thread() directly
dm-raid: remove useless checking in raid_message()
md: protect md_thread with rcu

drivers/md/dm-raid.c | 4 +-
drivers/md/md-bitmap.c | 28 +++++++---
drivers/md/md-cluster.c | 11 ++--
drivers/md/md-multipath.c | 6 +--
drivers/md/md.c | 108 ++++++++++++++++++++------------------
drivers/md/md.h | 21 +++++---
drivers/md/raid1.c | 9 ++--
drivers/md/raid1.h | 2 +-
drivers/md/raid10.c | 21 ++++----
drivers/md/raid10.h | 2 +-
drivers/md/raid5-cache.c | 14 ++---
drivers/md/raid5.c | 19 +++----
drivers/md/raid5.h | 2 +-
13 files changed, 132 insertions(+), 115 deletions(-)

--
2.39.2