diff options
Diffstat (limited to 'arch/s390/lib/delay.c')
| -rw-r--r-- | arch/s390/lib/delay.c | 16 | 
1 files changed, 8 insertions, 8 deletions
diff --git a/arch/s390/lib/delay.c b/arch/s390/lib/delay.c index 42d0cf89121..c61b9fad43c 100644 --- a/arch/s390/lib/delay.c +++ b/arch/s390/lib/delay.c @@ -32,7 +32,7 @@ static void __udelay_disabled(unsigned long long usecs)  	unsigned long cr0, cr6, new;  	u64 clock_saved, end; -	end = get_clock() + (usecs << 12); +	end = get_tod_clock() + (usecs << 12);  	clock_saved = local_tick_disable();  	__ctl_store(cr0, 0, 0);  	__ctl_store(cr6, 6, 6); @@ -45,7 +45,7 @@ static void __udelay_disabled(unsigned long long usecs)  		set_clock_comparator(end);  		vtime_stop_cpu();  		local_irq_disable(); -	} while (get_clock() < end); +	} while (get_tod_clock() < end);  	lockdep_on();  	__ctl_load(cr0, 0, 0);  	__ctl_load(cr6, 6, 6); @@ -56,7 +56,7 @@ static void __udelay_enabled(unsigned long long usecs)  {  	u64 clock_saved, end; -	end = get_clock() + (usecs << 12); +	end = get_tod_clock() + (usecs << 12);  	do {  		clock_saved = 0;  		if (end < S390_lowcore.clock_comparator) { @@ -67,7 +67,7 @@ static void __udelay_enabled(unsigned long long usecs)  		local_irq_disable();  		if (clock_saved)  			local_tick_enable(clock_saved); -	} while (get_clock() < end); +	} while (get_tod_clock() < end);  }  /* @@ -111,8 +111,8 @@ void udelay_simple(unsigned long long usecs)  {  	u64 end; -	end = get_clock() + (usecs << 12); -	while (get_clock() < end) +	end = get_tod_clock() + (usecs << 12); +	while (get_tod_clock() < end)  		cpu_relax();  } @@ -122,10 +122,10 @@ void __ndelay(unsigned long long nsecs)  	nsecs <<= 9;  	do_div(nsecs, 125); -	end = get_clock() + nsecs; +	end = get_tod_clock() + nsecs;  	if (nsecs & ~0xfffUL)  		__udelay(nsecs >> 12); -	while (get_clock() < end) +	while (get_tod_clock() < end)  		barrier();  }  EXPORT_SYMBOL(__ndelay);  |