When the ctl_table_header object is judged to be valid, the scheduling check is performed again. Signed-off-by: Li zeming <zeming@xxxxxxxxxxxx> --- fs/proc/proc_sysctl.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/fs/proc/proc_sysctl.c b/fs/proc/proc_sysctl.c index 50ba9e4fb284..36921e2ebeb0 100644 --- a/fs/proc/proc_sysctl.c +++ b/fs/proc/proc_sysctl.c @@ -1729,11 +1729,10 @@ static void drop_sysctl_table(struct ctl_table_header *header) void unregister_sysctl_table(struct ctl_table_header * header) { int nr_subheaders; - might_sleep(); - if (header == NULL) return; + might_sleep(); nr_subheaders = count_subheaders(header->ctl_table_arg); if (unlikely(nr_subheaders > 1)) { struct ctl_table_header **subheaders; -- 2.18.2