aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/kernel
diff options
context:
space:
mode:
authorJeff Garzik <jgarzik@pobox.com>2005-09-08 05:37:58 -0400
committerJeff Garzik <jgarzik@pobox.com>2005-09-08 05:37:58 -0400
commit5a2cec83a9bb1b4295aa8ab728fcb8ca1811a33c (patch)
tree2f83dc6949763e77cf6422e696dc6146684dcf4e /arch/mips/kernel
parentf2c853bca542f5ac0b036377637192a74f2091c2 (diff)
parentcaf39e87cc1182f7dae84eefc43ca14d54c78ef9 (diff)
Merge /spare/repo/linux-2.6/
Diffstat (limited to 'arch/mips/kernel')
-rw-r--r--arch/mips/kernel/linux32.c16
-rw-r--r--arch/mips/kernel/sysirix.c5
-rw-r--r--arch/mips/kernel/time.c7
3 files changed, 11 insertions, 17 deletions
diff --git a/arch/mips/kernel/linux32.c b/arch/mips/kernel/linux32.c
index 4613219dd73e..ece4564919d8 100644
--- a/arch/mips/kernel/linux32.c
+++ b/arch/mips/kernel/linux32.c
@@ -546,20 +546,20 @@ struct msgbuf32 { s32 mtype; char mtext[1]; };
546struct ipc_perm32 546struct ipc_perm32
547{ 547{
548 key_t key; 548 key_t key;
549 compat_uid_t uid; 549 __compat_uid_t uid;
550 compat_gid_t gid; 550 __compat_gid_t gid;
551 compat_uid_t cuid; 551 __compat_uid_t cuid;
552 compat_gid_t cgid; 552 __compat_gid_t cgid;
553 compat_mode_t mode; 553 compat_mode_t mode;
554 unsigned short seq; 554 unsigned short seq;
555}; 555};
556 556
557struct ipc64_perm32 { 557struct ipc64_perm32 {
558 key_t key; 558 key_t key;
559 compat_uid_t uid; 559 __compat_uid_t uid;
560 compat_gid_t gid; 560 __compat_gid_t gid;
561 compat_uid_t cuid; 561 __compat_uid_t cuid;
562 compat_gid_t cgid; 562 __compat_gid_t cgid;
563 compat_mode_t mode; 563 compat_mode_t mode;
564 unsigned short seq; 564 unsigned short seq;
565 unsigned short __pad1; 565 unsigned short __pad1;
diff --git a/arch/mips/kernel/sysirix.c b/arch/mips/kernel/sysirix.c
index f3bf0e43b8bb..b46595462717 100644
--- a/arch/mips/kernel/sysirix.c
+++ b/arch/mips/kernel/sysirix.c
@@ -632,10 +632,7 @@ asmlinkage int irix_stime(int value)
632 write_seqlock_irq(&xtime_lock); 632 write_seqlock_irq(&xtime_lock);
633 xtime.tv_sec = value; 633 xtime.tv_sec = value;
634 xtime.tv_nsec = 0; 634 xtime.tv_nsec = 0;
635 time_adjust = 0; /* stop active adjtime() */ 635 ntp_clear();
636 time_status |= STA_UNSYNC;
637 time_maxerror = NTP_PHASE_LIMIT;
638 time_esterror = NTP_PHASE_LIMIT;
639 write_sequnlock_irq(&xtime_lock); 636 write_sequnlock_irq(&xtime_lock);
640 637
641 return 0; 638 return 0;
diff --git a/arch/mips/kernel/time.c b/arch/mips/kernel/time.c
index 648c82292ed6..0dd0df7a3b04 100644
--- a/arch/mips/kernel/time.c
+++ b/arch/mips/kernel/time.c
@@ -223,10 +223,7 @@ int do_settimeofday(struct timespec *tv)
223 set_normalized_timespec(&xtime, sec, nsec); 223 set_normalized_timespec(&xtime, sec, nsec);
224 set_normalized_timespec(&wall_to_monotonic, wtm_sec, wtm_nsec); 224 set_normalized_timespec(&wall_to_monotonic, wtm_sec, wtm_nsec);
225 225
226 time_adjust = 0; /* stop active adjtime() */ 226 ntp_clear();
227 time_status |= STA_UNSYNC;
228 time_maxerror = NTP_PHASE_LIMIT;
229 time_esterror = NTP_PHASE_LIMIT;
230 227
231 write_sequnlock_irq(&xtime_lock); 228 write_sequnlock_irq(&xtime_lock);
232 clock_was_set(); 229 clock_was_set();
@@ -442,7 +439,7 @@ irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
442 * called as close as possible to 500 ms before the new second starts. 439 * called as close as possible to 500 ms before the new second starts.
443 */ 440 */
444 write_seqlock(&xtime_lock); 441 write_seqlock(&xtime_lock);
445 if ((time_status & STA_UNSYNC) == 0 && 442 if (ntp_synced() &&
446 xtime.tv_sec > last_rtc_update + 660 && 443 xtime.tv_sec > last_rtc_update + 660 &&
447 (xtime.tv_nsec / 1000) >= 500000 - ((unsigned) TICK_SIZE) / 2 && 444 (xtime.tv_nsec / 1000) >= 500000 - ((unsigned) TICK_SIZE) / 2 &&
448 (xtime.tv_nsec / 1000) <= 500000 + ((unsigned) TICK_SIZE) / 2) { 445 (xtime.tv_nsec / 1000) <= 500000 + ((unsigned) TICK_SIZE) / 2) {