Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Skip to content
Commit 568dca15 authored by Stephen Boyd's avatar Stephen Boyd Committed by Russell King
Browse files

ARM: 7627/1: Predicate preempt logic on PREEMP_COUNT not PREEMPT alone



Patrik Kluba reports that the preempt count becomes invalid due
to the preempt_enable() call being unbalanced with a
preempt_disable() call in the vfp assembly routines. This happens
because preempt_enable() and preempt_disable() update preempt
counts under PREEMPT_COUNT=y but the vfp assembly routines do so
under PREEMPT=y. In a configuration where PREEMPT=n and
DEBUG_ATOMIC_SLEEP=y, PREEMPT_COUNT=y and so the preempt_enable()
call in VFP_bounce() keeps subtracting from the preempt count
until it goes negative.

Fix this by always using PREEMPT_COUNT to decided when to update
preempt counts in the ARM assembly code.

Signed-off-by: default avatarStephen Boyd <sboyd@codeaurora.org>
Reported-by: default avatarPatrik Kluba <pkluba@dension.com>
Tested-by: default avatarPatrik Kluba <pkluba@dension.com>
Cc: <stable@vger.kernel.org> # 2.6.30
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 8a3a180d
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment