qemu_next_alarm_deadline: check the expire time of a clock only if it is enabled
Also delta in qemu_next_alarm_deadline is a 64 bit value so set the default to INT64_MAX instead of INT32_MAX. Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
		
							parent
							
								
									5bfb723f07
								
							
						
					
					
						commit
						4ffd16fc29
					
				
							
								
								
									
										10
									
								
								qemu-timer.c
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								qemu-timer.c
									
									
									
									
									
								
							@ -106,23 +106,21 @@ static inline int alarm_has_dynticks(struct qemu_alarm_timer *t)
 | 
			
		||||
 | 
			
		||||
static int64_t qemu_next_alarm_deadline(void)
 | 
			
		||||
{
 | 
			
		||||
    int64_t delta;
 | 
			
		||||
    int64_t delta = INT64_MAX;
 | 
			
		||||
    int64_t rtdelta;
 | 
			
		||||
 | 
			
		||||
    if (!use_icount && vm_clock->active_timers) {
 | 
			
		||||
    if (!use_icount && vm_clock->enabled && vm_clock->active_timers) {
 | 
			
		||||
        delta = vm_clock->active_timers->expire_time -
 | 
			
		||||
                     qemu_get_clock_ns(vm_clock);
 | 
			
		||||
    } else {
 | 
			
		||||
        delta = INT32_MAX;
 | 
			
		||||
    }
 | 
			
		||||
    if (host_clock->active_timers) {
 | 
			
		||||
    if (host_clock->enabled && host_clock->active_timers) {
 | 
			
		||||
        int64_t hdelta = host_clock->active_timers->expire_time -
 | 
			
		||||
                 qemu_get_clock_ns(host_clock);
 | 
			
		||||
        if (hdelta < delta) {
 | 
			
		||||
            delta = hdelta;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    if (rt_clock->active_timers) {
 | 
			
		||||
    if (rt_clock->enabled && rt_clock->active_timers) {
 | 
			
		||||
        rtdelta = (rt_clock->active_timers->expire_time -
 | 
			
		||||
                 qemu_get_clock_ns(rt_clock));
 | 
			
		||||
        if (rtdelta < delta) {
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user