f5a0a8bc43
DAMON_SYSFS can receive DAMOS tried regions update request while kdamond is already out of the main loop and before_terminate callback (damon_sysfs_before_terminate() in this case) is not yet called. And damon_sysfs_handle_cmd() can further be finished before the callback is invoked. Then, damon_sysfs_before_terminate() unlocks damon_sysfs_lock, which is not locked by anyone. This happens because the callback function assumes damon_sysfs_cmd_request_callback() should be called before it. Check if the assumption was true before doing the unlock, to avoid this problem. Link: https://lkml.kernel.org/r/20231007200432.3110-1-sj@kernel.org Fixes: f1d13cacabe1 ("mm/damon/sysfs: implement DAMOS tried regions update command") Signed-off-by: SeongJae Park <sj@kernel.org> Cc: <stable@vger.kernel.org> [6.2.x] Signed-off-by: Andrew Morton <akpm@linux-foundation.org> (cherry picked from commit 76b7069bcc89dec33f03eb08abee165d0306b754) Bug: 300502883 Change-Id: I7cd5e00c0d0226dc8d7856d103f88a26307cafce Signed-off-by: cui yangpei <cuiyangpei@xiaomi.com> |
||
---|---|---|
.. | ||
core-test.h | ||
core.c | ||
dbgfs-test.h | ||
dbgfs.c | ||
Kconfig | ||
lru_sort.c | ||
Makefile | ||
modules-common.c | ||
modules-common.h | ||
ops-common.c | ||
ops-common.h | ||
paddr.c | ||
reclaim.c | ||
sysfs-common.c | ||
sysfs-common.h | ||
sysfs-schemes.c | ||
sysfs.c | ||
vaddr-test.h | ||
vaddr.c |