]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
ARM: stm32: Fix secure_waitbits() mask check
authorMarek Vasut <marex@denx.de>
Mon, 8 Jul 2024 11:43:23 +0000 (13:43 +0200)
committerPatrick Delaunay <patrick.delaunay@foss.st.com>
Wed, 25 Sep 2024 17:40:46 +0000 (19:40 +0200)
Do not apply bitwise AND to register value and expected value, only
apply bitwise AND to register value and mask, and only then compare
the result with expected value that the function polls for.

Fixes: b49105320a5b ("stm32mp: psci: Implement PSCI system suspend and DRAM SSR")
Signed-off-by: Marek Vasut <marex@denx.de>
arch/arm/mach-stm32mp/stm32mp1/psci.c

index bfbf420fdb5c58dc6aebd83762fed4a06dd47701..a02a8988a68a377f8339a8df4fdea11cbe449cb0 100644 (file)
@@ -393,8 +393,7 @@ static int __secure secure_waitbits(u32 reg, u32 mask, u32 val)
        asm volatile("mrrc p15, 0, %Q0, %R0, c14" : "=r" (start));
        for (;;) {
                tmp = readl(reg);
-               tmp &= mask;
-               if ((tmp & val) == val)
+               if ((tmp & mask) == val)
                        return 0;
                asm volatile("mrrc p15, 0, %Q0, %R0, c14" : "=r" (end));
                if ((end - start) > delay)