All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] timer: fix timer_migration to accept only 0 and 1
@ 2017-04-19 22:24 Myungho Jung
  2017-04-20 12:53 ` Thomas Gleixner
  2017-04-20 13:14 ` [tip:timers/core] timer/sysclt: Restrict timer migration sysctl values to " tip-bot for Myungho Jung
  0 siblings, 2 replies; 6+ messages in thread
From: Myungho Jung @ 2017-04-19 22:24 UTC (permalink / raw)
  To: tglx; +Cc: linux-kernel

Error is not shown by setting invalid value to timer_migration. Valid
values for timer_migration should be restricted to 0 and 1. Testcase for
this bug is ltp/runpwtests06.

Signed-off-by: Myungho Jung <mhjungk@gmail.com>
---
 kernel/sysctl.c     | 2 ++
 kernel/time/timer.c | 2 +-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/kernel/sysctl.c b/kernel/sysctl.c
index 8c8714f..21343d1 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -1176,6 +1176,8 @@ static struct ctl_table kern_table[] = {
 		.maxlen		= sizeof(unsigned int),
 		.mode		= 0644,
 		.proc_handler	= timer_migration_handler,
+		.extra1		= &zero,
+		.extra2		= &one,
 	},
 #endif
 #ifdef CONFIG_BPF_SYSCALL
diff --git a/kernel/time/timer.c b/kernel/time/timer.c
index 1dc0256..cc6b6bd 100644
--- a/kernel/time/timer.c
+++ b/kernel/time/timer.c
@@ -241,7 +241,7 @@ int timer_migration_handler(struct ctl_table *table, int write,
 	int ret;
 
 	mutex_lock(&mutex);
-	ret = proc_dointvec(table, write, buffer, lenp, ppos);
+	ret = proc_dointvec_minmax(table, write, buffer, lenp, ppos);
 	if (!ret && write)
 		timers_update_migration(false);
 	mutex_unlock(&mutex);
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] timer: fix timer_migration to accept only 0 and 1
  2017-04-19 22:24 [PATCH] timer: fix timer_migration to accept only 0 and 1 Myungho Jung
@ 2017-04-20 12:53 ` Thomas Gleixner
  2017-04-20 17:36   ` Myungho Jung
  2017-04-20 13:14 ` [tip:timers/core] timer/sysclt: Restrict timer migration sysctl values to " tip-bot for Myungho Jung
  1 sibling, 1 reply; 6+ messages in thread
From: Thomas Gleixner @ 2017-04-20 12:53 UTC (permalink / raw)
  To: Myungho Jung; +Cc: linux-kernel

On Wed, 19 Apr 2017, Myungho Jung wrote:

> Error is not shown by setting invalid value to timer_migration. Valid
> values for timer_migration should be restricted to 0 and 1. Testcase for
> this bug is ltp/runpwtests06.

While I agree with the change, I disagree with the changelog. Where is the bug?

The timer code checks for timer_migration != 0 resp. == 0. So as long as
the value is != 0 it's enabled, if it's 0 it is disabled.

It's a correctness issue that we treat a sysctl which is basically a
boolean as such. Ideally we'd have: proc_doboolvec() for such cases and
convert all similar sysctls over to that.

Thanks,

	tglx

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [tip:timers/core] timer/sysclt: Restrict timer migration sysctl values to 0 and 1
  2017-04-19 22:24 [PATCH] timer: fix timer_migration to accept only 0 and 1 Myungho Jung
  2017-04-20 12:53 ` Thomas Gleixner
@ 2017-04-20 13:14 ` tip-bot for Myungho Jung
  1 sibling, 0 replies; 6+ messages in thread
From: tip-bot for Myungho Jung @ 2017-04-20 13:14 UTC (permalink / raw)
  To: linux-tip-commits; +Cc: linux-kernel, tglx, hpa, mingo, mhjungk

Commit-ID:  b94bf594cf8ed67cdd0439e70fa939783471597a
Gitweb:     http://git.kernel.org/tip/b94bf594cf8ed67cdd0439e70fa939783471597a
Author:     Myungho Jung <mhjungk@gmail.com>
AuthorDate: Wed, 19 Apr 2017 15:24:50 -0700
Committer:  Thomas Gleixner <tglx@linutronix.de>
CommitDate: Thu, 20 Apr 2017 14:56:59 +0200

timer/sysclt: Restrict timer migration sysctl values to 0 and 1

timer_migration sysctl acts as a boolean switch, so the allowed values
should be restricted to 0 and 1.

Add the necessary extra fields to the sysctl table entry to enforce that.

[ tglx: Rewrote changelog ]

Signed-off-by: Myungho Jung <mhjungk@gmail.com>
Link: http://lkml.kernel.org/r/1492640690-3550-1-git-send-email-mhjungk@gmail.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>

---
 kernel/sysctl.c     | 2 ++
 kernel/time/timer.c | 2 +-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/kernel/sysctl.c b/kernel/sysctl.c
index acf0a5a..0863769 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -1176,6 +1176,8 @@ static struct ctl_table kern_table[] = {
 		.maxlen		= sizeof(unsigned int),
 		.mode		= 0644,
 		.proc_handler	= timer_migration_handler,
+		.extra1		= &zero,
+		.extra2		= &one,
 	},
 #endif
 #ifdef CONFIG_BPF_SYSCALL
diff --git a/kernel/time/timer.c b/kernel/time/timer.c
index 1dc0256..cc6b6bd 100644
--- a/kernel/time/timer.c
+++ b/kernel/time/timer.c
@@ -241,7 +241,7 @@ int timer_migration_handler(struct ctl_table *table, int write,
 	int ret;
 
 	mutex_lock(&mutex);
-	ret = proc_dointvec(table, write, buffer, lenp, ppos);
+	ret = proc_dointvec_minmax(table, write, buffer, lenp, ppos);
 	if (!ret && write)
 		timers_update_migration(false);
 	mutex_unlock(&mutex);

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] timer: fix timer_migration to accept only 0 and 1
  2017-04-20 12:53 ` Thomas Gleixner
@ 2017-04-20 17:36   ` Myungho Jung
  2017-04-20 17:45     ` Thomas Gleixner
  0 siblings, 1 reply; 6+ messages in thread
From: Myungho Jung @ 2017-04-20 17:36 UTC (permalink / raw)
  To: Thomas Gleixner; +Cc: linux-kernel

On Thu, Apr 20, 2017 at 02:53:26PM +0200, Thomas Gleixner wrote:
> On Wed, 19 Apr 2017, Myungho Jung wrote:
> 
> > Error is not shown by setting invalid value to timer_migration. Valid
> > values for timer_migration should be restricted to 0 and 1. Testcase for
> > this bug is ltp/runpwtests06.
> 
> While I agree with the change, I disagree with the changelog. Where is the bug?
> 
> The timer code checks for timer_migration != 0 resp. == 0. So as long as
> the value is != 0 it's enabled, if it's 0 it is disabled.
> 
> It's a correctness issue that we treat a sysctl which is basically a
> boolean as such. Ideally we'd have: proc_doboolvec() for such cases and
> convert all similar sysctls over to that.
> 
> Thanks,
> 
> 	tglx
I understood. I'll resubmit the patch after fixing log.

Thanks,
Myungho

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] timer: fix timer_migration to accept only 0 and 1
  2017-04-20 17:36   ` Myungho Jung
@ 2017-04-20 17:45     ` Thomas Gleixner
  2017-04-20 18:08       ` Myungho Jung
  0 siblings, 1 reply; 6+ messages in thread
From: Thomas Gleixner @ 2017-04-20 17:45 UTC (permalink / raw)
  To: Myungho Jung; +Cc: linux-kernel

On Thu, 20 Apr 2017, Myungho Jung wrote:
> I understood. I'll resubmit the patch after fixing log.

I recommend to check your inbox first.

Thanks,

	tglx

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] timer: fix timer_migration to accept only 0 and 1
  2017-04-20 17:45     ` Thomas Gleixner
@ 2017-04-20 18:08       ` Myungho Jung
  0 siblings, 0 replies; 6+ messages in thread
From: Myungho Jung @ 2017-04-20 18:08 UTC (permalink / raw)
  To: Thomas Gleixner; +Cc: linux-kernel

On Thu, Apr 20, 2017 at 07:45:49PM +0200, Thomas Gleixner wrote:
> On Thu, 20 Apr 2017, Myungho Jung wrote:
> > I understood. I'll resubmit the patch after fixing log.
> 
> I recommend to check your inbox first.
> 
> Thanks,
> 
> 	tglx
Yes, I confirmed a message from tip-bot. I'll refer to it.

Thanks,
Myungho

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2017-04-20 18:08 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-04-19 22:24 [PATCH] timer: fix timer_migration to accept only 0 and 1 Myungho Jung
2017-04-20 12:53 ` Thomas Gleixner
2017-04-20 17:36   ` Myungho Jung
2017-04-20 17:45     ` Thomas Gleixner
2017-04-20 18:08       ` Myungho Jung
2017-04-20 13:14 ` [tip:timers/core] timer/sysclt: Restrict timer migration sysctl values to " tip-bot for Myungho Jung

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.