patch-2.4.13 linux/arch/s390x/kernel/time.c

Next file: linux/arch/s390x/kernel/traps.c
Previous file: linux/arch/s390x/kernel/smp.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.4.12/linux/arch/s390x/kernel/time.c linux/arch/s390x/kernel/time.c
@@ -155,17 +155,16 @@
 extern __u16 boot_cpu_addr;
 #endif
 
-void do_timer_interrupt(struct pt_regs *regs,int error_code)
+void do_timer_interrupt(struct pt_regs *regs, __u16 error_code)
 {
-        unsigned long flags;
+	int cpu = smp_processor_id();
+
+	irq_enter(cpu, 0);
 
         /*
          * reset timer to 10ms minus time already elapsed
          * since timer-interrupt pending
          */
- 
-        save_flags(flags);
-        cli();
 #ifdef CONFIG_SMP
 	if(S390_lowcore.cpu_data.cpu_addr==boot_cpu_addr) {
 		write_lock(&xtime_lock);
@@ -201,8 +200,8 @@
 		write_unlock(&xtime_lock);
 #endif
 	}
-        restore_flags(flags);
 
+	irq_exit(cpu, 0);
 }
 
 /*
@@ -256,4 +255,7 @@
         init_timer_cc -= 0x8126d60e46000000LL -
                          (0x3c26700LL*1000000*4096);
         tod_to_timeval(init_timer_cc, &xtime);
+
+	/* Set do_get_fast_time function pointer.  */
+	do_get_fast_time = do_gettimeofday;
 }

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)