[MIPS] Change libgcc-style functions from lib-y to obj-y
[linux-drm-fsl-dcu.git] / kernel / itimer.c
index 307c6a632ef6baa7ff0cec46273293d4cc84afc6..3205e8e114fa361eff4a1698c9a3ec2bbf4e730f 100644 (file)
@@ -7,7 +7,6 @@
 /* These are all the functions necessary to implement itimers */
 
 #include <linux/mm.h>
-#include <linux/smp_lock.h>
 #include <linux/interrupt.h>
 #include <linux/syscalls.h>
 #include <linux/time.h>
@@ -138,60 +137,12 @@ enum hrtimer_restart it_real_fn(struct hrtimer *timer)
        return HRTIMER_NORESTART;
 }
 
-/*
- * We do not care about correctness. We just sanitize the values so
- * the ktime_t operations which expect normalized values do not
- * break. This converts negative values to long timeouts similar to
- * the code in kernel versions < 2.6.16
- *
- * Print a limited number of warning messages when an invalid timeval
- * is detected.
- */
-static void fixup_timeval(struct timeval *tv, int interval)
-{
-       static int warnlimit = 10;
-       unsigned long tmp;
-
-       if (warnlimit > 0) {
-               warnlimit--;
-               printk(KERN_WARNING
-                      "setitimer: %s (pid = %d) provided "
-                      "invalid timeval %s: tv_sec = %ld tv_usec = %ld\n",
-                      current->comm, current->pid,
-                      interval ? "it_interval" : "it_value",
-                      tv->tv_sec, (long) tv->tv_usec);
-       }
-
-       tmp = tv->tv_usec;
-       if (tmp >= USEC_PER_SEC) {
-               tv->tv_usec = tmp % USEC_PER_SEC;
-               tv->tv_sec += tmp / USEC_PER_SEC;
-       }
-
-       tmp = tv->tv_sec;
-       if (tmp > LONG_MAX)
-               tv->tv_sec = LONG_MAX;
-}
-
 /*
  * Returns true if the timeval is in canonical form
  */
 #define timeval_valid(t) \
        (((t)->tv_sec >= 0) && (((unsigned long) (t)->tv_usec) < USEC_PER_SEC))
 
-/*
- * Check for invalid timevals, sanitize them and print a limited
- * number of warnings.
- */
-static void check_itimerval(struct itimerval *value) {
-
-       if (unlikely(!timeval_valid(&value->it_value)))
-               fixup_timeval(&value->it_value, 0);
-
-       if (unlikely(!timeval_valid(&value->it_interval)))
-               fixup_timeval(&value->it_interval, 1);
-}
-
 int do_setitimer(int which, struct itimerval *value, struct itimerval *ovalue)
 {
        struct task_struct *tsk = current;
@@ -201,15 +152,10 @@ int do_setitimer(int which, struct itimerval *value, struct itimerval *ovalue)
 
        /*
         * Validate the timevals in value.
-        *
-        * Note: Although the spec requires that invalid values shall
-        * return -EINVAL, we just fixup the value and print a limited
-        * number of warnings in order not to break users of this
-        * historical misfeature.
-        *
-        * Scheduled for replacement in March 2007
         */
-       check_itimerval(value);
+       if (!timeval_valid(&value->it_value) ||
+           !timeval_valid(&value->it_interval))
+               return -EINVAL;
 
        switch (which) {
        case ITIMER_REAL: