Re: [PATCH] writeback: fix call of incorrect macro

From: Jan Kara
Date: Thu Jan 26 2023 - 08:54:15 EST


On Thu 19-01-23 13:44:43, Maxim Korotkov wrote:
> the variable 'history' is of type u16, it may be an error
> that the hweight32 macro was used for it
> I guess macro hweight16 should be used
>
> Found by Linux Verification Center (linuxtesting.org) with SVACE.
>
> Fixes: 2a81490811d0 ("writeback: implement foreign cgroup inode detection")
> Signed-off-by: Maxim Korotkov <korotkov.maxim.s@xxxxxxxxx>

Looks good to me, although it is mostly a theoretical issue - I don't see
how hweight32 could do any harm here. Anyway, feel free to add:

Reviewed-by: Jan Kara <jack@xxxxxxx>

Honza

> ---
> fs/fs-writeback.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c
> index 6fba5a52127b..fc16123b2405 100644
> --- a/fs/fs-writeback.c
> +++ b/fs/fs-writeback.c
> @@ -829,7 +829,7 @@ void wbc_detach_inode(struct writeback_control *wbc)
> * is okay. The main goal is avoiding keeping an inode on
> * the wrong wb for an extended period of time.
> */
> - if (hweight32(history) > WB_FRN_HIST_THR_SLOTS)
> + if (hweight16(history) > WB_FRN_HIST_THR_SLOTS)
> inode_switch_wbs(inode, max_id);
> }
>
> --
> 2.37.2
>
--
Jan Kara <jack@xxxxxxxx>
SUSE Labs, CR