diff options
Diffstat (limited to 'src/arch')
-rw-r--r-- | src/arch/arm/linux/system.cc | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/arch/arm/linux/system.cc b/src/arch/arm/linux/system.cc index e714cc913..bc7fd2cb6 100644 --- a/src/arch/arm/linux/system.cc +++ b/src/arch/arm/linux/system.cc @@ -80,13 +80,20 @@ LinuxArmSystem::LinuxArmSystem(Params *p) } // With ARM udelay() is #defined to __udelay - uDelaySkipEvent = addKernelFuncEventOrPanic<UDelayEvent>( - "__udelay", "__udelay", 1000, 0); + // newer kernels use __loop_udelay and __loop_const_udelay symbols + uDelaySkipEvent = addKernelFuncEvent<UDelayEvent>( + "__loop_udelay", "__udelay", 1000, 0); + if(!uDelaySkipEvent) + uDelaySkipEvent = addKernelFuncEventOrPanic<UDelayEvent>( + "__udelay", "__udelay", 1000, 0); // constant arguments to udelay() have some precomputation done ahead of // time. Constant comes from code. - constUDelaySkipEvent = addKernelFuncEventOrPanic<UDelayEvent>( - "__const_udelay", "__const_udelay", 1000, 107374); + constUDelaySkipEvent = addKernelFuncEvent<UDelayEvent>( + "__loop_const_udelay", "__const_udelay", 1000, 107374); + if(!constUDelaySkipEvent) + constUDelaySkipEvent = addKernelFuncEventOrPanic<UDelayEvent>( + "__const_udelay", "__const_udelay", 1000, 107374); secDataPtrAddr = 0; secDataAddr = 0; |