Re: [PATCH 4/7] sysctl: Add missing annotation for start_unregistering()
From: Luis Chamberlain
Date: Thu Apr 02 2020 - 12:06:44 EST
On Tue, Mar 31, 2020 at 09:46:40PM +0100, Jules Irenge wrote:
> Sparse reports a warning at start_unregistering()
>
> warning: context imbalance in start_unregistering()
> - unexpected unlock
>
> The root cause is the missing annotation at start_unregistering()
> Add the missing __must_hold(&sysctl_lock) annotation.
>
> Signed-off-by: Jules Irenge <jbi.octave@xxxxxxxxx>
Acked-by: Luis Chamberlain <mcgrof@xxxxxxxxxx>
Luis
> ---
> fs/proc/proc_sysctl.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/fs/proc/proc_sysctl.c b/fs/proc/proc_sysctl.c
> index c75bb4632ed1..d1b5e2b35564 100644
> --- a/fs/proc/proc_sysctl.c
> +++ b/fs/proc/proc_sysctl.c
> @@ -307,6 +307,7 @@ static void proc_sys_prune_dcache(struct ctl_table_header *head)
>
> /* called under sysctl_lock, will reacquire if has to wait */
> static void start_unregistering(struct ctl_table_header *p)
> + __must_hold(&sysctl_lock)
> {
> /*
> * if p->used is 0, nobody will ever touch that entry again;
> --
> 2.24.1
>