[PATCH 5/11] UML - GENERIC_TIME support

2007-09-19 Thread Jeff Dike
Enable CONFIG_GENERIC_TIME.

As a side-effect of this, the UML implementations of do_gettimeofday
and do_settimeofday go away, as these are provided by generic code.
set_time also goes away since it was only used by do_settimeofday.

Signed-off-by: Jeff Dike <[EMAIL PROTECTED]>
---
 arch/um/Kconfig|5 +
 arch/um/kernel/ksyms.c |3 ---
 arch/um/kernel/time.c  |   40 
 3 files changed, 5 insertions(+), 43 deletions(-)

Index: linux-2.6.20/arch/um/Kconfig
===
--- linux-2.6.20.orig/arch/um/Kconfig   2007-09-19 12:24:52.0 -0400
+++ linux-2.6.20/arch/um/Kconfig2007-09-19 12:25:06.0 -0400
@@ -55,6 +55,10 @@ config GENERIC_BUG
default y
depends on BUG
 
+config GENERIC_TIME
+   bool
+   default y
+
 # Used in kernel/irq/manage.c and include/linux/irq.h
 config IRQ_RELEASE_METHOD
bool
@@ -75,6 +79,7 @@ config STATIC_LINK
 
 source "arch/um/Kconfig.arch"
 source "mm/Kconfig"
+source "kernel/time/Kconfig"
 
 config LD_SCRIPT_STATIC
bool
Index: linux-2.6.20/arch/um/kernel/ksyms.c
===
--- linux-2.6.20.orig/arch/um/kernel/ksyms.c2007-09-19 12:24:52.0 
-0400
+++ linux-2.6.20/arch/um/kernel/ksyms.c 2007-09-19 12:25:06.0 -0400
@@ -67,9 +67,6 @@ EXPORT_SYMBOL(run_helper);
 EXPORT_SYMBOL(start_thread);
 EXPORT_SYMBOL(dump_thread);
 
-EXPORT_SYMBOL(do_gettimeofday);
-EXPORT_SYMBOL(do_settimeofday);
-
 #ifdef CONFIG_SMP
 
 /* required for SMP */
Index: linux-2.6.20/arch/um/kernel/time.c
===
--- linux-2.6.20.orig/arch/um/kernel/time.c 2007-09-19 12:25:06.0 
-0400
+++ linux-2.6.20/arch/um/kernel/time.c  2007-09-19 12:25:06.0 -0400
@@ -123,46 +123,6 @@ void time_init(void)
late_time_init = register_timer;
 }
 
-void do_gettimeofday(struct timeval *tv)
-{
-#ifdef CONFIG_UML_REAL_TIME_CLOCK
-   unsigned long long nsecs = get_time();
-#else
-   unsigned long long nsecs = (unsigned long long) xtime.tv_sec * BILLION +
-   xtime.tv_nsec;
-#endif
-   tv->tv_sec = nsecs / NSEC_PER_SEC;
-   /*
-* Careful about calculations here - this was originally done as
-* (nsecs - tv->tv_sec * NSEC_PER_SEC) / NSEC_PER_USEC
-* which gave bogus (> 100) values.  Dunno why, suspect gcc
-* (4.0.0) miscompiled it, or there's a subtle 64/32-bit conversion
-* problem that I missed.
-*/
-   nsecs -= tv->tv_sec * NSEC_PER_SEC;
-   tv->tv_usec = (unsigned long) nsecs / NSEC_PER_USEC;
-}
-
-static inline void set_time(unsigned long long nsecs)
-{
-   unsigned long long now;
-   unsigned long flags;
-
-   spin_lock_irqsave(_spinlock, flags);
-   now = os_nsecs();
-   local_offset = nsecs - now;
-   spin_unlock_irqrestore(_spinlock, flags);
-
-   clock_was_set();
-}
-
-int do_settimeofday(struct timespec *tv)
-{
-   set_time((unsigned long long) tv->tv_sec * NSEC_PER_SEC + tv->tv_nsec);
-
-   return 0;
-}
-
 void timer_handler(int sig, struct uml_pt_regs *regs)
 {
if (current_thread->cpu == 0)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH 5/11] UML - GENERIC_TIME support

2007-09-19 Thread Jeff Dike
Enable CONFIG_GENERIC_TIME.

As a side-effect of this, the UML implementations of do_gettimeofday
and do_settimeofday go away, as these are provided by generic code.
set_time also goes away since it was only used by do_settimeofday.

Signed-off-by: Jeff Dike [EMAIL PROTECTED]
---
 arch/um/Kconfig|5 +
 arch/um/kernel/ksyms.c |3 ---
 arch/um/kernel/time.c  |   40 
 3 files changed, 5 insertions(+), 43 deletions(-)

Index: linux-2.6.20/arch/um/Kconfig
===
--- linux-2.6.20.orig/arch/um/Kconfig   2007-09-19 12:24:52.0 -0400
+++ linux-2.6.20/arch/um/Kconfig2007-09-19 12:25:06.0 -0400
@@ -55,6 +55,10 @@ config GENERIC_BUG
default y
depends on BUG
 
+config GENERIC_TIME
+   bool
+   default y
+
 # Used in kernel/irq/manage.c and include/linux/irq.h
 config IRQ_RELEASE_METHOD
bool
@@ -75,6 +79,7 @@ config STATIC_LINK
 
 source arch/um/Kconfig.arch
 source mm/Kconfig
+source kernel/time/Kconfig
 
 config LD_SCRIPT_STATIC
bool
Index: linux-2.6.20/arch/um/kernel/ksyms.c
===
--- linux-2.6.20.orig/arch/um/kernel/ksyms.c2007-09-19 12:24:52.0 
-0400
+++ linux-2.6.20/arch/um/kernel/ksyms.c 2007-09-19 12:25:06.0 -0400
@@ -67,9 +67,6 @@ EXPORT_SYMBOL(run_helper);
 EXPORT_SYMBOL(start_thread);
 EXPORT_SYMBOL(dump_thread);
 
-EXPORT_SYMBOL(do_gettimeofday);
-EXPORT_SYMBOL(do_settimeofday);
-
 #ifdef CONFIG_SMP
 
 /* required for SMP */
Index: linux-2.6.20/arch/um/kernel/time.c
===
--- linux-2.6.20.orig/arch/um/kernel/time.c 2007-09-19 12:25:06.0 
-0400
+++ linux-2.6.20/arch/um/kernel/time.c  2007-09-19 12:25:06.0 -0400
@@ -123,46 +123,6 @@ void time_init(void)
late_time_init = register_timer;
 }
 
-void do_gettimeofday(struct timeval *tv)
-{
-#ifdef CONFIG_UML_REAL_TIME_CLOCK
-   unsigned long long nsecs = get_time();
-#else
-   unsigned long long nsecs = (unsigned long long) xtime.tv_sec * BILLION +
-   xtime.tv_nsec;
-#endif
-   tv-tv_sec = nsecs / NSEC_PER_SEC;
-   /*
-* Careful about calculations here - this was originally done as
-* (nsecs - tv-tv_sec * NSEC_PER_SEC) / NSEC_PER_USEC
-* which gave bogus ( 100) values.  Dunno why, suspect gcc
-* (4.0.0) miscompiled it, or there's a subtle 64/32-bit conversion
-* problem that I missed.
-*/
-   nsecs -= tv-tv_sec * NSEC_PER_SEC;
-   tv-tv_usec = (unsigned long) nsecs / NSEC_PER_USEC;
-}
-
-static inline void set_time(unsigned long long nsecs)
-{
-   unsigned long long now;
-   unsigned long flags;
-
-   spin_lock_irqsave(timer_spinlock, flags);
-   now = os_nsecs();
-   local_offset = nsecs - now;
-   spin_unlock_irqrestore(timer_spinlock, flags);
-
-   clock_was_set();
-}
-
-int do_settimeofday(struct timespec *tv)
-{
-   set_time((unsigned long long) tv-tv_sec * NSEC_PER_SEC + tv-tv_nsec);
-
-   return 0;
-}
-
 void timer_handler(int sig, struct uml_pt_regs *regs)
 {
if (current_thread-cpu == 0)
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH 5/11] UML - GENERIC_TIME support

2007-09-12 Thread Jeff Dike
Enable CONFIG_GENERIC_TIME.

As a side-effect of this, the UML implementations of do_gettimeofday
and do_settimeofday go away, as these are provided by generic code.
set_time also goes away since it was only used by do_settimeofday.

Signed-off-by: Jeff Dike <[EMAIL PROTECTED]>
--
 arch/um/Kconfig|5 +
 arch/um/kernel/ksyms.c |3 ---
 arch/um/kernel/time.c  |   40 
 3 files changed, 5 insertions(+), 43 deletions(-)

Index: linux-2.6.22/arch/um/Kconfig
===
--- linux-2.6.22.orig/arch/um/Kconfig   2007-09-12 14:53:25.0 -0400
+++ linux-2.6.22/arch/um/Kconfig2007-09-12 14:58:02.0 -0400
@@ -55,6 +55,10 @@ config GENERIC_BUG
default y
depends on BUG
 
+config GENERIC_TIME
+   bool
+   default y
+
 # Used in kernel/irq/manage.c and include/linux/irq.h
 config IRQ_RELEASE_METHOD
bool
@@ -75,6 +79,7 @@ config STATIC_LINK
 
 source "arch/um/Kconfig.arch"
 source "mm/Kconfig"
+source "kernel/time/Kconfig"
 
 config LD_SCRIPT_STATIC
bool
Index: linux-2.6.22/arch/um/kernel/ksyms.c
===
--- linux-2.6.22.orig/arch/um/kernel/ksyms.c2007-09-12 14:53:25.0 
-0400
+++ linux-2.6.22/arch/um/kernel/ksyms.c 2007-09-12 14:58:02.0 -0400
@@ -67,9 +67,6 @@ EXPORT_SYMBOL(run_helper);
 EXPORT_SYMBOL(start_thread);
 EXPORT_SYMBOL(dump_thread);
 
-EXPORT_SYMBOL(do_gettimeofday);
-EXPORT_SYMBOL(do_settimeofday);
-
 #ifdef CONFIG_SMP
 
 /* required for SMP */
Index: linux-2.6.22/arch/um/kernel/time.c
===
--- linux-2.6.22.orig/arch/um/kernel/time.c 2007-09-12 14:55:39.0 
-0400
+++ linux-2.6.22/arch/um/kernel/time.c  2007-09-12 14:58:02.0 -0400
@@ -123,46 +123,6 @@ void time_init(void)
late_time_init = register_timer;
 }
 
-void do_gettimeofday(struct timeval *tv)
-{
-#ifdef CONFIG_UML_REAL_TIME_CLOCK
-   unsigned long long nsecs = get_time();
-#else
-   unsigned long long nsecs = (unsigned long long) xtime.tv_sec * BILLION +
-   xtime.tv_nsec;
-#endif
-   tv->tv_sec = nsecs / NSEC_PER_SEC;
-   /*
-* Careful about calculations here - this was originally done as
-* (nsecs - tv->tv_sec * NSEC_PER_SEC) / NSEC_PER_USEC
-* which gave bogus (> 100) values.  Dunno why, suspect gcc
-* (4.0.0) miscompiled it, or there's a subtle 64/32-bit conversion
-* problem that I missed.
-*/
-   nsecs -= tv->tv_sec * NSEC_PER_SEC;
-   tv->tv_usec = (unsigned long) nsecs / NSEC_PER_USEC;
-}
-
-static inline void set_time(unsigned long long nsecs)
-{
-   unsigned long long now;
-   unsigned long flags;
-
-   spin_lock_irqsave(_spinlock, flags);
-   now = os_nsecs();
-   local_offset = nsecs - now;
-   spin_unlock_irqrestore(_spinlock, flags);
-
-   clock_was_set();
-}
-
-int do_settimeofday(struct timespec *tv)
-{
-   set_time((unsigned long long) tv->tv_sec * NSEC_PER_SEC + tv->tv_nsec);
-
-   return 0;
-}
-
 void timer_handler(int sig, struct uml_pt_regs *regs)
 {
if (current_thread->cpu == 0)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH 5/11] UML - GENERIC_TIME support

2007-09-12 Thread Jeff Dike
Enable CONFIG_GENERIC_TIME.

As a side-effect of this, the UML implementations of do_gettimeofday
and do_settimeofday go away, as these are provided by generic code.
set_time also goes away since it was only used by do_settimeofday.

Signed-off-by: Jeff Dike [EMAIL PROTECTED]
--
 arch/um/Kconfig|5 +
 arch/um/kernel/ksyms.c |3 ---
 arch/um/kernel/time.c  |   40 
 3 files changed, 5 insertions(+), 43 deletions(-)

Index: linux-2.6.22/arch/um/Kconfig
===
--- linux-2.6.22.orig/arch/um/Kconfig   2007-09-12 14:53:25.0 -0400
+++ linux-2.6.22/arch/um/Kconfig2007-09-12 14:58:02.0 -0400
@@ -55,6 +55,10 @@ config GENERIC_BUG
default y
depends on BUG
 
+config GENERIC_TIME
+   bool
+   default y
+
 # Used in kernel/irq/manage.c and include/linux/irq.h
 config IRQ_RELEASE_METHOD
bool
@@ -75,6 +79,7 @@ config STATIC_LINK
 
 source arch/um/Kconfig.arch
 source mm/Kconfig
+source kernel/time/Kconfig
 
 config LD_SCRIPT_STATIC
bool
Index: linux-2.6.22/arch/um/kernel/ksyms.c
===
--- linux-2.6.22.orig/arch/um/kernel/ksyms.c2007-09-12 14:53:25.0 
-0400
+++ linux-2.6.22/arch/um/kernel/ksyms.c 2007-09-12 14:58:02.0 -0400
@@ -67,9 +67,6 @@ EXPORT_SYMBOL(run_helper);
 EXPORT_SYMBOL(start_thread);
 EXPORT_SYMBOL(dump_thread);
 
-EXPORT_SYMBOL(do_gettimeofday);
-EXPORT_SYMBOL(do_settimeofday);
-
 #ifdef CONFIG_SMP
 
 /* required for SMP */
Index: linux-2.6.22/arch/um/kernel/time.c
===
--- linux-2.6.22.orig/arch/um/kernel/time.c 2007-09-12 14:55:39.0 
-0400
+++ linux-2.6.22/arch/um/kernel/time.c  2007-09-12 14:58:02.0 -0400
@@ -123,46 +123,6 @@ void time_init(void)
late_time_init = register_timer;
 }
 
-void do_gettimeofday(struct timeval *tv)
-{
-#ifdef CONFIG_UML_REAL_TIME_CLOCK
-   unsigned long long nsecs = get_time();
-#else
-   unsigned long long nsecs = (unsigned long long) xtime.tv_sec * BILLION +
-   xtime.tv_nsec;
-#endif
-   tv-tv_sec = nsecs / NSEC_PER_SEC;
-   /*
-* Careful about calculations here - this was originally done as
-* (nsecs - tv-tv_sec * NSEC_PER_SEC) / NSEC_PER_USEC
-* which gave bogus ( 100) values.  Dunno why, suspect gcc
-* (4.0.0) miscompiled it, or there's a subtle 64/32-bit conversion
-* problem that I missed.
-*/
-   nsecs -= tv-tv_sec * NSEC_PER_SEC;
-   tv-tv_usec = (unsigned long) nsecs / NSEC_PER_USEC;
-}
-
-static inline void set_time(unsigned long long nsecs)
-{
-   unsigned long long now;
-   unsigned long flags;
-
-   spin_lock_irqsave(timer_spinlock, flags);
-   now = os_nsecs();
-   local_offset = nsecs - now;
-   spin_unlock_irqrestore(timer_spinlock, flags);
-
-   clock_was_set();
-}
-
-int do_settimeofday(struct timespec *tv)
-{
-   set_time((unsigned long long) tv-tv_sec * NSEC_PER_SEC + tv-tv_nsec);
-
-   return 0;
-}
-
 void timer_handler(int sig, struct uml_pt_regs *regs)
 {
if (current_thread-cpu == 0)
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/