]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - include/linux/time.h
Merge git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-kgdb
[linux-2.6-omap-h63xx.git] / include / linux / time.h
index 2091a19f1655aab8e5130256f83af4103efa9e3f..d32ef0ad4c0aaf8964d94abe215c5dbf4dde8aaf 100644 (file)
@@ -174,6 +174,10 @@ static inline void timespec_add_ns(struct timespec *a, u64 ns)
 {
        ns += a->tv_nsec;
        while(unlikely(ns >= NSEC_PER_SEC)) {
+               /* The following asm() prevents the compiler from
+                * optimising this loop into a modulo operation.  */
+               asm("" : "+r"(ns));
+
                ns -= NSEC_PER_SEC;
                a->tv_sec++;
        }