mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [patch 2/2] timerfd extend clockid support
@ 2009-02-08 23:23 Davide Libenzi
  2009-02-09  9:28 ` Michael Kerrisk
  0 siblings, 1 reply; 9+ messages in thread
From: Davide Libenzi @ 2009-02-08 23:23 UTC (permalink / raw)
  To: Linux Kernel Mailing List; +Cc: Michael Kerrisk, Thomas Gleixner, Andrew Morton

The following patch extends timerfd clockid support to cover the ones 
supported by timer_create(). 
It exports the invalid_clockid() function outside posix-timers.c to allow 
timerfd to properly check input parameters.
Andrew, this is (eventually) .30 material, and do not take the patch 
until you have Thomas sign off.
Thomas, timerfd uses core hrtimer functions for its tasks. By extending 
the clockid support, I assume that the clockids other than CLOCK_MONOTONIC 
and CLOCK_REALTIME, behaves the same from a hrtimer caller POV. Right?



Signed-off-by: Davide Libenzi <davidel@xmailserver.org>


- Davide


---
 fs/timerfd.c                 |    3 +--
 include/linux/posix-timers.h |    1 +
 kernel/posix-timers.c        |    2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

Index: linux-2.6.mod/fs/timerfd.c
===================================================================
--- linux-2.6.mod.orig/fs/timerfd.c	2009-02-08 15:02:06.000000000 -0800
+++ linux-2.6.mod/fs/timerfd.c	2009-02-08 15:03:43.000000000 -0800
@@ -187,8 +187,7 @@ SYSCALL_DEFINE2(timerfd_create, int, clo
 	BUILD_BUG_ON(TFD_NONBLOCK != O_NONBLOCK);
 
 	if ((flags & ~TFD_CREATE_FLAGS) ||
-	    (clockid != CLOCK_MONOTONIC &&
-	     clockid != CLOCK_REALTIME))
+	    invalid_clockid(clockid))
 		return -EINVAL;
 
 	ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
Index: linux-2.6.mod/include/linux/posix-timers.h
===================================================================
--- linux-2.6.mod.orig/include/linux/posix-timers.h	2009-02-08 15:02:06.000000000 -0800
+++ linux-2.6.mod/include/linux/posix-timers.h	2009-02-08 15:02:53.000000000 -0800
@@ -84,6 +84,7 @@ struct k_clock {
 			   struct itimerspec * cur_setting);
 };
 
+int invalid_clockid(const clockid_t which_clock);
 void register_posix_clock(const clockid_t clock_id, struct k_clock *new_clock);
 
 /* error handlers for timer_create, nanosleep and settime */
Index: linux-2.6.mod/kernel/posix-timers.c
===================================================================
--- linux-2.6.mod.orig/kernel/posix-timers.c	2009-02-08 15:02:06.000000000 -0800
+++ linux-2.6.mod/kernel/posix-timers.c	2009-02-08 15:02:53.000000000 -0800
@@ -205,7 +205,7 @@ static int no_timer_create(struct k_itim
 /*
  * Return nonzero if we know a priori this clockid_t value is bogus.
  */
-static inline int invalid_clockid(const clockid_t which_clock)
+int invalid_clockid(const clockid_t which_clock)
 {
 	if (which_clock < 0)	/* CPU clock, posix_cpu_* will check it */
 		return 0;

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

end of thread, other threads:[~2009-02-09 23:25 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-02-08 23:23 [patch 2/2] timerfd extend clockid support Davide Libenzi
2009-02-09  9:28 ` Michael Kerrisk
2009-02-09 17:42   ` Davide Libenzi
2009-02-09 19:28     ` Michael Kerrisk
2009-02-09 20:10       ` Davide Libenzi
2009-02-09 23:01         ` Michael Kerrisk
2009-02-09 23:03         ` Michael Kerrisk
2009-02-09 23:23           ` Davide Libenzi
2009-02-09 23:25             ` Michael Kerrisk

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®