[PATCH 2.6.12] x86_64/kernel/time.c

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



 
Hi,
there are are two error returns of hpet_init() but vxtime.hpet_address remains 
set. 
This can cause div-by-zero exceptions later in the boot process when executing 
the 
wrong code sequences ( hpet code instead of pit code). To avoid this error 
behaviour 
vxtime.hpet_address should be cleared in time_init() if hpet_init() returns 
-1.

Regards, Gerhard.

--- linux-2.6.12.orig/arch/x86_64/kernel/time.c 2005-06-17 21:48:29.000000000 
+0200
+++ linux-2.6.12/arch/x86_64/kernel/time.c      2005-08-16 08:54:29.000000000 
+0200
@@ -892,16 +892,16 @@
                       "at %#lx.\n", vxtime.hpet_address);
         }
 #endif
-       if (nohpet)
-               vxtime.hpet_address = 0;
-
        xtime.tv_sec = get_cmos_time();
        xtime.tv_nsec = 0;

        set_normalized_timespec(&wall_to_monotonic,
                                -xtime.tv_sec, -xtime.tv_nsec);

-       if (!hpet_init()) {
+       if (nohpet || hpet_init())
+               vxtime.hpet_address = 0;
+
+       if (vxtime.hpet_address) {
                 vxtime_hz = (1000000000000000L + hpet_period / 2) /
                        hpet_period;
                cpu_khz = hpet_calibrate_tsc();
-- 
Gerhard Wichert              Phone: +49 5251 8 15127
Fujitsu Siemens Computers    Fax:   +49 5251 8 20409
Heinz-Nixdorf-Ring 1         mailto:[email protected]
D-33106 Paderborn            http://www.fujitsu-siemens.com/primergy
-
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/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]
  Powered by Linux