[ARM] 2/4 Fix oprofile suspend/resume

The oprofile suspend/resume was missing locking.  If we failed
to start oprofile on resume, we still reported that it was
enabled.  Instead, disable oprofile on error.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
Russell King 2005-10-28 14:52:30 +01:00 committed by Russell King
parent b5893c56ca
commit 7c5b3fc208
1 changed files with 7 additions and 3 deletions

View File

@ -78,15 +78,19 @@ static void pmu_stop(void)
#ifdef CONFIG_PM
static int pmu_suspend(struct sys_device *dev, pm_message_t state)
{
down(&pmu_sem);
if (pmu_enabled)
pmu_stop();
pmu_model->stop();
up(&pmu_sem);
return 0;
}
static int pmu_resume(struct sys_device *dev)
{
if (pmu_enabled)
pmu_start();
down(&pmu_sem);
if (pmu_enabled && pmu_model->start())
pmu_enabled = 0;
up(&pmu_sem);
return 0;
}