"...0d0cea2424ae97b27447dc64a7dbfae83c036c45b403392f0e8ba.png" did not exist on "d86bd1bece6fc41d59253002db5441fe960a37f6"
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:Stephen Boyd <sboyd@codeaurora.org> Reported-by:
Patrik Kluba <pkluba@dension.com> Tested-by:
Patrik Kluba <pkluba@dension.com> Cc: <stable@vger.kernel.org> # 2.6.30 Signed-off-by:
Russell King <rmk+kernel@arm.linux.org.uk>
Loading
Please register or sign in to comment