ARM: cache: Fix incorrect bitwise operation
authorMarek Vasut <marex@denx.de>
Tue, 19 Feb 2019 00:43:51 +0000 (01:43 +0100)
committerTom Rini <trini@konsulko.com>
Thu, 28 Feb 2019 19:21:46 +0000 (14:21 -0500)
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>
arch/arm/lib/cache-pl310.c

index 1296ba6efda0b7480af39a2ef69384b42e50afaf..bbaaaa4157a5e79b07766ecf4970ebb4395e9c96 100644 (file)
@@ -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();
 }