From: Colin Cross <ccross@android.com>
To: linux-pm@vger.kernel.org
Cc: linux-kernel@vger.kernel.org, Neil Zhang <zhangwm@marvell.com>,
Joseph Lo <josephl@nvidia.com>,
linux-tegra@vger.kernel.org, Colin Cross <ccross@android.com>,
stable@vger.kernel.org, "Rafael J. Wysocki" <rjw@sisk.pl>,
Daniel Lezcano <daniel.lezcano@linaro.org>
Subject: [PATCH 1/3] cpuidle: coupled: disable interrupts after entering safe state
Date: Fri, 23 Aug 2013 12:45:10 -0700 [thread overview]
Message-ID: <1377287112-12018-1-git-send-email-ccross@android.com> (raw)
Calling cpuidle_enter_state is expected to return with interrupts
enabled, but interrupts must be disabled before starting the
ready loop synchronization stage. Call local_irq_disable after
each call to cpuidle_enter_state for the safe state.
CC: stable@vger.kernel.org
Signed-off-by: Colin Cross <ccross@android.com>
---
drivers/cpuidle/coupled.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/cpuidle/coupled.c b/drivers/cpuidle/coupled.c
index 2a297f8..db92bcb 100644
--- a/drivers/cpuidle/coupled.c
+++ b/drivers/cpuidle/coupled.c
@@ -460,6 +460,7 @@ int cpuidle_enter_state_coupled(struct cpuidle_device *dev,
}
entered_state = cpuidle_enter_state(dev, drv,
dev->safe_state_index);
+ local_irq_disable();
}
/* Read barrier ensures online_count is read after prevent is cleared */
@@ -485,6 +486,7 @@ retry:
entered_state = cpuidle_enter_state(dev, drv,
dev->safe_state_index);
+ local_irq_disable();
}
if (cpuidle_coupled_clear_pokes(dev->cpu)) {
--
1.8.3
next reply other threads:[~2013-08-23 19:45 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-23 19:45 Colin Cross [this message]
2013-08-23 19:45 ` [PATCH 2/3] cpuidle: coupled: abort idle if pokes are pending Colin Cross
[not found] ` <1377287112-12018-2-git-send-email-ccross-z5hGa2qSFaRBDgjK7y7TUQ@public.gmane.org>
2013-08-26 9:10 ` Joseph Lo
2013-08-26 9:10 ` Joseph Lo
[not found] ` <1377287112-12018-1-git-send-email-ccross-z5hGa2qSFaRBDgjK7y7TUQ@public.gmane.org>
2013-08-23 19:45 ` [PATCH 3/3] cpuidle: coupled: fix race condition between pokes and safe state Colin Cross
2013-08-23 19:45 ` Colin Cross
[not found] ` <1377287112-12018-3-git-send-email-ccross-z5hGa2qSFaRBDgjK7y7TUQ@public.gmane.org>
2013-08-27 8:57 ` Neil Zhang
2013-08-27 8:57 ` Neil Zhang
2013-08-27 8:57 ` Neil Zhang
2013-08-23 23:09 ` [PATCH 1/3] cpuidle: coupled: disable interrupts after entering " Stephen Warren
2013-08-24 0:22 ` Colin Cross
2013-08-26 15:55 ` Stephen Warren
2013-08-28 21:28 ` Rafael J. Wysocki
2013-08-28 22:00 ` Colin Cross
2013-08-29 0:50 ` Rafael J. Wysocki
2013-08-29 6:50 ` Prashant Gaikwad
[not found] ` <521EEF26.80803-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-08-29 7:12 ` Colin Cross
2013-08-29 7:12 ` Colin Cross
[not found] ` <CAMbhsRSTv9ivMY1=-4YPxPV0tCTcJnHwWOEvr_F5exg9A2Z1Mw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-08-29 20:09 ` Rafael J. Wysocki
2013-08-29 20:09 ` Rafael J. Wysocki
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1377287112-12018-1-git-send-email-ccross@android.com \
--to=ccross@android.com \
--cc=daniel.lezcano@linaro.org \
--cc=josephl@nvidia.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=linux-tegra@vger.kernel.org \
--cc=rjw@sisk.pl \
--cc=stable@vger.kernel.org \
--cc=zhangwm@marvell.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.