WARNING: at arch/arm/kernel/process.c:174 cpu_idle+0x8c/0xa0()

Bug #458533 reported by Tobin Davis on 2009-10-22
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
linux-mvl-dove (Ubuntu)
Low
Eric Miao

Bug Description

Just booted up. Apport just showed up while system was idle.

ProblemType: KernelOops
Annotation: Your system might become unstable now and might need to be restarted.
Architecture: armel
Date: Thu Oct 22 11:21:00 2009
DistroRelease: Ubuntu 9.10
Failure: oops
InstallationMedia: Ubuntu 9.10 "Karmic Koala" - Release Candidate armel+dove (20091021.1)
Package: linux-image-2.6.31-208-dove 2.6.31-208.16
ProcVersionSignature: Ubuntu 2.6.31-208.16-dove
SourcePackage: linux-mvl-dove
Tags: kernel-oops
Title: WARNING: at arch/arm/kernel/process.c:174 cpu_idle+0x8c/0xa0()
Uname: Linux 2.6.31-208-dove armv7l

Tobin Davis (gruemaster) wrote :
Paul Larson (pwlars) wrote :

This error was also reported in bug #451553 but I'd like to keep them separate. There were a whole lot of errors mentioned in the other bug that seem to only happen when booting from USB. This one seems to happen, even after installation and booting from sata.

Changed in linux-mvl-dove (Ubuntu):
importance: Undecided → Medium
status: New → Triaged
Loïc Minier (lool) wrote :

Only a warning though

Changed in linux-mvl-dove (Ubuntu):
importance: Medium → Low
assignee: nobody → Brad Figg (brad-figg)
Saeed Bishara (saeed-marvell) wrote :

This bug should be fixed by the following patch:
----------------------
From: Kevin Hilman <email address hidden>
Date: Wed, 30 Sep 2009 17:35:53 +0000 (-0700)
Subject: CPUidle: always return with interrupts enabled

CPUidle: always return with interrupts enabled

In the case where cpuidle_idle_call() returns before changing state
due to a need_resched(), it was returning with IRQs disabled.

This patch ensures IRQs are (re)enabled before returning.

Reported-by: Hemanth V <email address hidden>
Signed-off-by: Kevin Hilman <email address hidden>
---

diff --git a/drivers/cpuidle/cpuidle.c b/drivers/cpuidle/cpuidle.c
index 8504a21..910c49d 100644
--- a/drivers/cpuidle/cpuidle.c
+++ b/drivers/cpuidle/cpuidle.c
@@ -75,8 +75,11 @@ static void cpuidle_idle_call(void)
 #endif
  /* ask the governor for the next state */
  next_state = cpuidle_curr_governor->select(dev);
- if (need_resched())
+ if (need_resched()) {
+ local_irq_enable();
   return;
+ }
+
  target_state = &dev->states[next_state];

  /* enter the state and update stats */

tags: added: iso-testing
Paul Larson (pwlars) wrote :

I'm not seeing this anymore with Lucid kernels, but it still exists in karmic

Eric Miao (eric.y.miao) wrote :

I'm seeing the patch being there in latest karmic kernel. Paul, could you have a test again?

Changed in linux-mvl-dove (Ubuntu):
assignee: Brad Figg (brad-figg) → Eric Miao (eric.y.miao)
milestone: none → karmic-updates
status: Triaged → Fix Committed
Paul Larson (pwlars) wrote :

confirmed, I'm no longer seeing this bug in the current kernels.

Paul Larson (pwlars) wrote :

nm, I realized as soon as I hit the button that it's karmic this needs to be retested on

Tobin Davis (gruemaster) wrote :

No longer seeing this on karmic with kernel 2.6.31-210-dove. Marking as Fix Released.

Changed in linux-mvl-dove (Ubuntu):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers