diff mbox series

[U-Boot] ARM: cache: Fix incorrect bitwise operation

Message ID 20190219004351.791-1-marex@denx.de
State Accepted
Commit 86dc480d73776e6628ea39a5429f160ffdc2ec85
Delegated to: Tom Rini
Headers show
Series [U-Boot] ARM: cache: Fix incorrect bitwise operation | expand

Commit Message

Marek Vasut Feb. 19, 2019, 12:43 a.m. UTC
The loop implemented in the code is supposed to check whether the
PL310 operation register has any bit from the mask set. Currently,
the code checks whether the PL310 operation register has any bit
set AND whether the mask is non-zero, which is incorrect. Fix the
conditional.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Dalon Westergreen <dwesterg@gmail.com>
Cc: Dinh Nguyen <dinguyen@kernel.org>
Cc: Tom Rini <trini@konsulko.com>
Fixes: 93bc21930a1b ("armv7: add PL310 support to u-boot")
---
 arch/arm/lib/cache-pl310.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Simon Goldschmidt Feb. 19, 2019, 8:44 a.m. UTC | #1
On Tue, Feb 19, 2019 at 1:44 AM Marek Vasut <marex@denx.de> wrote:
>
> The loop implemented in the code is supposed to check whether the
> PL310 operation register has any bit from the mask set. Currently,
> the code checks whether the PL310 operation register has any bit
> set AND whether the mask is non-zero, which is incorrect. Fix the
> conditional.
>
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Dalon Westergreen <dwesterg@gmail.com>
> Cc: Dinh Nguyen <dinguyen@kernel.org>
> Cc: Tom Rini <trini@konsulko.com>
> Fixes: 93bc21930a1b ("armv7: add PL310 support to u-boot")

Reviewed-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>

> ---
>  arch/arm/lib/cache-pl310.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/arm/lib/cache-pl310.c b/arch/arm/lib/cache-pl310.c
> index 1296ba6efd..bbaaaa4157 100644
> --- a/arch/arm/lib/cache-pl310.c
> +++ b/arch/arm/lib/cache-pl310.c
> @@ -33,7 +33,7 @@ static void pl310_background_op_all_ways(u32 *op_reg)
>         /* Invalidate all ways */
>         writel(way_mask, op_reg);
>         /* Wait for all ways to be invalidated */
> -       while (readl(op_reg) && way_mask)
> +       while (readl(op_reg) & way_mask)
>                 ;
>         pl310_cache_sync();
>  }
> --
> 2.19.2
Dinh Nguyen Feb. 25, 2019, 4:33 p.m. UTC | #2
On 2/18/19 6:43 PM, Marek Vasut wrote:
> The loop implemented in the code is supposed to check whether the
> PL310 operation register has any bit from the mask set. Currently,
> the code checks whether the PL310 operation register has any bit
> set AND whether the mask is non-zero, which is incorrect. Fix the
> conditional.
> 
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Dalon Westergreen <dwesterg@gmail.com>
> Cc: Dinh Nguyen <dinguyen@kernel.org>
> Cc: Tom Rini <trini@konsulko.com>
> Fixes: 93bc21930a1b ("armv7: add PL310 support to u-boot")
> ---
>  arch/arm/lib/cache-pl310.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/arm/lib/cache-pl310.c b/arch/arm/lib/cache-pl310.c
> index 1296ba6efd..bbaaaa4157 100644
> --- a/arch/arm/lib/cache-pl310.c
> +++ b/arch/arm/lib/cache-pl310.c
> @@ -33,7 +33,7 @@ static void pl310_background_op_all_ways(u32 *op_reg)
>  	/* Invalidate all ways */
>  	writel(way_mask, op_reg);
>  	/* Wait for all ways to be invalidated */
> -	while (readl(op_reg) && way_mask)
> +	while (readl(op_reg) & way_mask)
>  		;
>  	pl310_cache_sync();
>  }
> 

Thanks for fixing this!

Reviewed-by: Dinh Nguyen <dinguyen@kernel.org>

Dinh
Tom Rini Feb. 28, 2019, 11:56 p.m. UTC | #3
On Tue, Feb 19, 2019 at 01:43:51AM +0100, Marek Vasut wrote:

> The loop implemented in the code is supposed to check whether the
> PL310 operation register has any bit from the mask set. Currently,
> the code checks whether the PL310 operation register has any bit
> set AND whether the mask is non-zero, which is incorrect. Fix the
> conditional.
> 
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Dalon Westergreen <dwesterg@gmail.com>
> Cc: Dinh Nguyen <dinguyen@kernel.org>
> Cc: Tom Rini <trini@konsulko.com>
> Fixes: 93bc21930a1b ("armv7: add PL310 support to u-boot")
> Reviewed-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
> Reviewed-by: Dinh Nguyen <dinguyen@kernel.org>

Applied to u-boot/master, thanks!
diff mbox series

Patch

diff --git a/arch/arm/lib/cache-pl310.c b/arch/arm/lib/cache-pl310.c
index 1296ba6efd..bbaaaa4157 100644
--- a/arch/arm/lib/cache-pl310.c
+++ b/arch/arm/lib/cache-pl310.c
@@ -33,7 +33,7 @@  static void pl310_background_op_all_ways(u32 *op_reg)
 	/* Invalidate all ways */
 	writel(way_mask, op_reg);
 	/* Wait for all ways to be invalidated */
-	while (readl(op_reg) && way_mask)
+	while (readl(op_reg) & way_mask)
 		;
 	pl310_cache_sync();
 }