* grub-core/kern/uboot/init.c (uboot_timer_ms): Fix overflow after 71
minutes.
This commit is contained in:
		
							parent
							
								
									234d93464a
								
							
						
					
					
						commit
						40b5739ff9
					
				
					 2 changed files with 12 additions and 1 deletions
				
			
		|  | @ -1,3 +1,8 @@ | ||||||
|  | 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> | 2013-12-04  Vladimir Serbinenko  <phcoder@gmail.com> | ||||||
| 
 | 
 | ||||||
| 	* grub-core/disk/ieee1275/ofdisk.c: Remove variable length arrays. | 	* grub-core/disk/ieee1275/ofdisk.c: Remove variable length arrays. | ||||||
|  |  | ||||||
|  | @ -61,7 +61,13 @@ grub_uboot_get_boot_data (void) | ||||||
| static grub_uint64_t | static grub_uint64_t | ||||||
| uboot_timer_ms (void) | 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 | void | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue