Skip to content

Commit

Permalink
ARM: 7544/1: Add BUG_ON when hlt counter is wrongly used
Browse files Browse the repository at this point in the history
1. On ARM platform, "nohlt" can be used to prevent core from idle
   process, returning immediately.
2. There are two interfaces, exported for other modules, named
   "disable_hlt" and "enable_hlt" are used to enable/disable the
   cpuidle mechanism by increasing/decreasing "hlt_counter".
   Disable_hlt and enable_hlt are paired operation,
   when you first call disable_hlt and then enable_hlt, the
   semantics are right.
3. There is no obvious constraint to prevent user(driver/module)
   code to prevent the case that enable_hlt is ahead of disable_hlt,
   which is a fatal operation on kernel state change from user,
   and there is no any WARNING or notification if the case happens
   in current kernel code.
   This patch aims to report BUG when the case happens, just like
   what the kernel do when enable_irq is ahead of disable_irq.

Link: https://patchwork.kernel.org/patch/1527881/

Signed-off-by: fwu <fwu@marvell.com>
Signed-off-by: YiLu Mao <ylmao@marvell.com>
Signed-off-by: Ning Jiang <ning.jiang@marvell.com>
Acked-by: Nicolas Pitre
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  • Loading branch information
fwu authored and Russell King committed Oct 18, 2012
1 parent 153cd8e commit 871df85
Showing 1 changed file with 1 addition and 0 deletions.
1 change: 1 addition & 0 deletions arch/arm/kernel/process.c
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ EXPORT_SYMBOL(disable_hlt);
void enable_hlt(void)
{
hlt_counter--;
BUG_ON(hlt_counter < 0);
}

EXPORT_SYMBOL(enable_hlt);
Expand Down

0 comments on commit 871df85

Please sign in to comment.