Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cd64647f authored by Li Zefan's avatar Li Zefan Committed by Ingo Molnar
Browse files

hung_task: Change sysctl_hung_task_check_count to 'int'



As 'sysctl_hung_task_check_count' is 'unsigned long' when this
value is assigned to max_count in check_hung_uninterruptible_tasks(),
it's truncated to 'int' type.

This causes a minor artifact: if we write 2^32 to sysctl.hung_task_check_count,
hung task detection will be effectively disabled.

With this fix, it will still truncate the user input to 32 bits, but
reading sysctl.hung_task_check_count reflects the actual truncated value.

Signed-off-by: default avatarLi Zefan <lizefan@huawei.com>
Acked-by: default avatarIngo Molnar <mingo@kernel.org>
Link: http://lkml.kernel.org/r/523FFF4E.9050401@huawei.com


Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
parent d8524ae9
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -2,8 +2,8 @@
#define _SCHED_SYSCTL_H

#ifdef CONFIG_DETECT_HUNG_TASK
extern int	     sysctl_hung_task_check_count;
extern unsigned int  sysctl_hung_task_panic;
extern unsigned long sysctl_hung_task_check_count;
extern unsigned long sysctl_hung_task_timeout_secs;
extern unsigned long sysctl_hung_task_warnings;
extern int proc_dohung_task_timeout_secs(struct ctl_table *table, int write,
+1 −1
Original line number Diff line number Diff line
@@ -20,7 +20,7 @@
/*
 * The number of tasks checked:
 */
unsigned long __read_mostly sysctl_hung_task_check_count = PID_MAX_LIMIT;
int __read_mostly sysctl_hung_task_check_count = PID_MAX_LIMIT;

/*
 * Limit number of tasks checked in a batch.
+3 −2
Original line number Diff line number Diff line
@@ -962,9 +962,10 @@ static struct ctl_table kern_table[] = {
	{
		.procname	= "hung_task_check_count",
		.data		= &sysctl_hung_task_check_count,
		.maxlen		= sizeof(unsigned long),
		.maxlen		= sizeof(int),
		.mode		= 0644,
		.proc_handler	= proc_doulongvec_minmax,
		.proc_handler	= proc_dointvec_minmax,
		.extra1		= &zero,
	},
	{
		.procname	= "hung_task_timeout_secs",