ARM: 6482/2: Fix find_next_zero_bit and related assembly
authorJames Jones <jajones@nvidia.com>
Tue, 23 Nov 2010 23:21:37 +0000 (00:21 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 9 Dec 2010 21:27:03 +0000 (13:27 -0800)
commit822d9b61eb5d4a48fa4fc4b6be64b9a496c852af
treead33aebe8ee37842980922464b4e96dcf3c4954e
parent72b31b6685fcb51348a1ddb4066b3757d20e18f6
ARM: 6482/2: Fix find_next_zero_bit and related assembly

commit 0e91ec0c06d2cd15071a6021c94840a50e6671aa upstream.

The find_next_bit, find_first_bit, find_next_zero_bit
and find_first_zero_bit functions were not properly
clamping to the maxbit argument at the bit level. They
were instead only checking maxbit at the byte level.
To fix this, add a compare and a conditional move
instruction to the end of the common bit-within-the-
byte code used by all the functions and be sure not to
clobber the maxbit argument before it is used.

Reviewed-by: Nicolas Pitre <nicolas.pitre@linaro.org>
Tested-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: James Jones <jajones@nvidia.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
arch/arm/lib/findbit.S