+2013-12-04 Vladimir Serbinenko <phcoder@gmail.com>
+
+ * grub-core/kern/uboot/init.c (uboot_timer_ms): Fix overflow after 71
+ minutes.
+
2013-12-04 Vladimir Serbinenko <phcoder@gmail.com>
* grub-core/disk/ieee1275/ofdisk.c: Remove variable length arrays.
static grub_uint64_t
uboot_timer_ms (void)
{
- return (grub_uint64_t) grub_uboot_get_timer (timer_start) / 1000;
+ static grub_uint32_t last = 0, high = 0;
+ grub_uint32_t cur = grub_uboot_get_timer (timer_start);
+ if (cur < last)
+ high++;
+ last = cur;
+ return grub_divmod64 ((((grub_uint64_t) high) << 32) | cur,
+ 1000, 0);
}
void