summaryrefslogtreecommitdiff
path: root/arch/arm/kernel/perf_event.c
diff options
context:
space:
mode:
authorOlof Johansson <olof@lixom.net>2012-11-06 06:48:05 -0800
committerOlof Johansson <olof@lixom.net>2012-11-06 06:48:05 -0800
commit3b19119b95a52200c8ae3df3aa89c21c9a1a8894 (patch)
tree3ae74b8a35b3d1f639a68c1690af1c06e14a1571 /arch/arm/kernel/perf_event.c
parentccb1cfcb964fa8a8acd58b7783b2e82d7ad7975b (diff)
parente095c0d122c09efabe7d4136ce77f72c636c4879 (diff)
Merge tag 'calxeda-ecx-2000' of git://sources.calxeda.com/kernel/linux into next/soc
Support for Calxeda ECX-2000 SOC from Rob Herring * tag 'calxeda-ecx-2000' of git://sources.calxeda.com/kernel/linux: ARM: highbank: Add initial ECX-2000 support ARM: highbank: abstract out SCU usage ARM: smp_twd: don't warn on no DT node ARM: dts: Add Calxeda ECX-2000 support ARM: highbank: enable coherent DMA for xgmac in dts ARM: highbank: disable unused sdhci and gpio in dts + sync to Linux 3.7-rc3
Diffstat (limited to 'arch/arm/kernel/perf_event.c')
-rw-r--r--arch/arm/kernel/perf_event.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/arm/kernel/perf_event.c b/arch/arm/kernel/perf_event.c
index 93971b1a4f0b..53c0304b734a 100644
--- a/arch/arm/kernel/perf_event.c
+++ b/arch/arm/kernel/perf_event.c
@@ -96,6 +96,10 @@ armpmu_event_set_period(struct perf_event *event,
s64 period = hwc->sample_period;
int ret = 0;
+ /* The period may have been changed by PERF_EVENT_IOC_PERIOD */
+ if (unlikely(period != hwc->last_period))
+ left = period - (hwc->last_period - left);
+
if (unlikely(left <= -period)) {
left = period;
local64_set(&hwc->period_left, left);