summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Van Hensbergen <Eric.VanHensbergen@ARM.com>2013-10-17 10:20:45 -0500
committerEric Van Hensbergen <Eric.VanHensbergen@ARM.com>2013-10-17 10:20:45 -0500
commitbfdd031c0de3963c111488279905f0772f9f5319 (patch)
treee46fb8927a165f86fb6f6f3282d344b9acb7dedd
parent2f7b012ced325bc4a1490044b97acbd9d0b5bbcf (diff)
downloadgem5-bfdd031c0de3963c111488279905f0772f9f5319.tar.xz
arm: Accomodate function name changes in newer linux kernels
-rw-r--r--src/arch/arm/linux/system.cc15
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;