|
@@ -10,13 +10,13 @@
|
|
|
|
|
|
#include <linux/mm.h>
|
|
|
#include <linux/time.h>
|
|
|
-#include <linux/timer.h>
|
|
|
#include <linux/timex.h>
|
|
|
#include <linux/jiffies.h>
|
|
|
#include <linux/hrtimer.h>
|
|
|
#include <linux/capability.h>
|
|
|
#include <linux/math64.h>
|
|
|
#include <linux/clocksource.h>
|
|
|
+#include <linux/workqueue.h>
|
|
|
#include <asm/timex.h>
|
|
|
|
|
|
/*
|
|
@@ -218,11 +218,11 @@ void second_overflow(void)
|
|
|
/* Disable the cmos update - used by virtualization and embedded */
|
|
|
int no_sync_cmos_clock __read_mostly;
|
|
|
|
|
|
-static void sync_cmos_clock(unsigned long dummy);
|
|
|
+static void sync_cmos_clock(struct work_struct *work);
|
|
|
|
|
|
-static DEFINE_TIMER(sync_cmos_timer, sync_cmos_clock, 0, 0);
|
|
|
+static DECLARE_DELAYED_WORK(sync_cmos_work, sync_cmos_clock);
|
|
|
|
|
|
-static void sync_cmos_clock(unsigned long dummy)
|
|
|
+static void sync_cmos_clock(struct work_struct *work)
|
|
|
{
|
|
|
struct timespec now, next;
|
|
|
int fail = 1;
|
|
@@ -258,13 +258,13 @@ static void sync_cmos_clock(unsigned long dummy)
|
|
|
next.tv_sec++;
|
|
|
next.tv_nsec -= NSEC_PER_SEC;
|
|
|
}
|
|
|
- mod_timer(&sync_cmos_timer, jiffies + timespec_to_jiffies(&next));
|
|
|
+ schedule_delayed_work(&sync_cmos_work, timespec_to_jiffies(&next));
|
|
|
}
|
|
|
|
|
|
static void notify_cmos_timer(void)
|
|
|
{
|
|
|
if (!no_sync_cmos_clock)
|
|
|
- mod_timer(&sync_cmos_timer, jiffies + 1);
|
|
|
+ schedule_delayed_work(&sync_cmos_work, 0);
|
|
|
}
|
|
|
|
|
|
#else
|