From: Christoph Lameter <clameter@sgi.com>

The following exports are necessary to allow loadable modules to define new
clocks.  Without these the mmtimer driver cannot be build correctly as a
module (there is another mmtimer specific fix necessary to get it to build
properly but that will be a separate patch):

Signed-off-by: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 25-akpm/kernel/posix-timers.c |    7 ++++++-
 25-akpm/kernel/time.c         |    2 ++
 2 files changed, 8 insertions(+), 1 deletion(-)

diff -puN kernel/posix-timers.c~exports-to-enable-clock-driver-modules kernel/posix-timers.c
--- 25/kernel/posix-timers.c~exports-to-enable-clock-driver-modules	2005-03-14 20:56:13.000000000 -0800
+++ 25-akpm/kernel/posix-timers.c	2005-03-14 20:56:13.000000000 -0800
@@ -46,6 +46,7 @@
 #include <linux/syscalls.h>
 #include <linux/wait.h>
 #include <linux/workqueue.h>
+#include <linux/module.h>
 
 #ifndef div_long_long_rem
 #include <asm/div64.h>
@@ -460,6 +461,7 @@ int posix_timer_event(struct k_itimer *t
 			timr->it_process);
 	}
 }
+EXPORT_SYMBOL_GPL(posix_timer_event);
 
 /*
  * This function gets called when a POSIX.1b interval timer expires.  It
@@ -555,6 +557,7 @@ void register_posix_clock(clockid_t cloc
 
 	posix_clocks[clock_id] = *new_clock;
 }
+EXPORT_SYMBOL_GPL(register_posix_clock);
 
 static struct k_itimer * alloc_posix_timer(void)
 {
@@ -1246,16 +1249,17 @@ int do_posix_clock_monotonic_gettime(str
 	return do_posix_clock_monotonic_get(CLOCK_MONOTONIC, tp);
 }
 
-
 int do_posix_clock_nosettime(clockid_t clockid, struct timespec *tp)
 {
 	return -EINVAL;
 }
+EXPORT_SYMBOL_GPL(do_posix_clock_nosettime);
 
 int do_posix_clock_notimer_create(struct k_itimer *timer)
 {
 	return -EINVAL;
 }
+EXPORT_SYMBOL_GPL(do_posix_clock_notimer_create);
 
 int do_posix_clock_nonanosleep(clockid_t clock, int flags, struct timespec *t)
 {
@@ -1265,6 +1269,7 @@ int do_posix_clock_nonanosleep(clockid_t
 	return -ENOTSUP;
 #endif
 }
+EXPORT_SYMBOL_GPL(do_posix_clock_nonanosleep);
 
 asmlinkage long
 sys_clock_settime(clockid_t which_clock, const struct timespec __user *tp)
diff -puN kernel/time.c~exports-to-enable-clock-driver-modules kernel/time.c
--- 25/kernel/time.c~exports-to-enable-clock-driver-modules	2005-03-14 20:56:13.000000000 -0800
+++ 25-akpm/kernel/time.c	2005-03-14 20:56:13.000000000 -0800
@@ -34,6 +34,7 @@
 #include <linux/syscalls.h>
 #include <linux/security.h>
 #include <linux/fs.h>
+#include <linux/module.h>
 
 #include <asm/uaccess.h>
 #include <asm/unistd.h>
@@ -503,6 +504,7 @@ void getnstimeofday (struct timespec *tv
 	tv->tv_sec = sec;
 	tv->tv_nsec = nsec;
 }
+EXPORT_SYMBOL_GPL(getnstimeofday);
 
 int do_settimeofday (struct timespec *tv)
 {
_