Skip to content

Commit

Permalink
mm/damon/sysfs: check error from damon_sysfs_update_target()
Browse files Browse the repository at this point in the history
commit b4936b5 upstream.

Patch series "mm/damon/sysfs: fix unhandled return values".

Some of DAMON sysfs interface code is not handling return values from some
functions.  As a result, confusing user input handling or NULL-dereference
is possible.  Check those properly.


This patch (of 3):

damon_sysfs_update_target() returns error code for failures, but its
caller, damon_sysfs_set_targets() is ignoring that.  The update function
seems making no critical change in case of such failures, but the behavior
will look like DAMON sysfs is silently ignoring or only partially
accepting the user input.  Fix it.

Link: https://lkml.kernel.org/r/20231106233408.51159-1-sj@kernel.org
Link: https://lkml.kernel.org/r/20231106233408.51159-2-sj@kernel.org
Fixes: 19467a9 ("mm/damon/sysfs: remove requested targets when online-commit inputs")
Signed-off-by: SeongJae Park <sj@kernel.org>
Cc: <stable@vger.kernel.org>	[5.19+]
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
sjp38 authored and gregkh committed Nov 28, 2023
1 parent b0fc144 commit 08a98c3
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion mm/damon/sysfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -2241,8 +2241,10 @@ static int damon_sysfs_set_targets(struct damon_ctx *ctx,

damon_for_each_target_safe(t, next, ctx) {
if (i < sysfs_targets->nr) {
damon_sysfs_update_target(t, ctx,
err = damon_sysfs_update_target(t, ctx,
sysfs_targets->targets_arr[i]);
if (err)
return err;
} else {
if (damon_target_has_pid(ctx))
put_pid(t->pid);
Expand Down

0 comments on commit 08a98c3

Please sign in to comment.