linux-mainline/mm/damon
SeongJae Park 76b7069bcc mm/damon/sysfs: check DAMOS regions update progress from before_terminate()
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: f1d13cacab ("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>
2023-10-18 12:12:41 -07:00
..
core-test.h mm/damon/core-test: add a unit test for __damos_filter_out() 2023-08-21 13:37:35 -07:00
core.c merge mm-hotfixes-stable into mm-stable to pick up depended-upon changes 2023-08-21 14:26:20 -07:00
dbgfs-test.h
dbgfs.c
Kconfig
lru_sort.c
Makefile
modules-common.c
modules-common.h
ops-common.c damon: use pmdp_get instead of drectly dereferencing pmd 2023-08-21 13:37:30 -07:00
ops-common.h mm/damon/ops-common: atomically test and clear young on ptes and pmds 2023-06-09 16:25:55 -07:00
paddr.c damon: use pmdp_get instead of drectly dereferencing pmd 2023-08-21 13:37:30 -07:00
reclaim.c
sysfs-common.c
sysfs-common.h mm/damon/sysfs: implement a command for updating only schemes tried total bytes 2023-08-21 13:37:34 -07:00
sysfs-schemes.c mm/damon/sysfs-schemes: support target damos filter 2023-08-21 13:37:37 -07:00
sysfs.c mm/damon/sysfs: check DAMOS regions update progress from before_terminate() 2023-10-18 12:12:41 -07:00
vaddr-test.h mm/damon/vaddr-test: fix memory leak in damon_do_test_apply_three_regions() 2023-09-29 17:20:47 -07:00
vaddr.c mm: hugetlb: add huge page size param to set_huge_pte_at() 2023-09-29 17:20:47 -07:00