sh: Fix underflow in SH udelay() code.
Signed-off-by: Stuart Menefy <stuart.menefy@st.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
parent
6d243dd370
commit
bd4fb4d4c1
1 changed files with 3 additions and 2 deletions
|
@ -21,13 +21,14 @@ void __delay(unsigned long loops)
|
||||||
|
|
||||||
inline void __const_udelay(unsigned long xloops)
|
inline void __const_udelay(unsigned long xloops)
|
||||||
{
|
{
|
||||||
|
xloops *= 4;
|
||||||
__asm__("dmulu.l %0, %2\n\t"
|
__asm__("dmulu.l %0, %2\n\t"
|
||||||
"sts mach, %0"
|
"sts mach, %0"
|
||||||
: "=r" (xloops)
|
: "=r" (xloops)
|
||||||
: "0" (xloops),
|
: "0" (xloops),
|
||||||
"r" (HZ * cpu_data[raw_smp_processor_id()].loops_per_jiffy)
|
"r" (cpu_data[raw_smp_processor_id()].loops_per_jiffy * (HZ/4))
|
||||||
: "macl", "mach");
|
: "macl", "mach");
|
||||||
__delay(xloops);
|
__delay(++xloops);
|
||||||
}
|
}
|
||||||
|
|
||||||
void __udelay(unsigned long usecs)
|
void __udelay(unsigned long usecs)
|
||||||
|
|
Loading…
Reference in a new issue