]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
socfpga_dtreg: Ensure reg is initialised before use
authorAndrew Goodbody <andrew.goodbody@linaro.org>
Tue, 29 Jul 2025 11:50:47 +0000 (12:50 +0100)
committerTien Fong Chee <tien.fong.chee@intel.com>
Wed, 30 Jul 2025 09:45:30 +0000 (17:45 +0800)
In socfpga_dtreg_probe it is possible that if mask is 0 then reg will
not be assigned to before first use. Refactor the code slightly to
ensure that reg is always assigned to and remove a piece of duplicated
code.

This issue was found by Smatch.

Signed-off-by: Andrew Goodbody <andrew.goodbody@linaro.org>
drivers/misc/socfpga_dtreg.c

index ea5d0bcdf51f0b3d83356ee3961a7eb67674ddbc..dd6809433e3036501aa9424cb2f16cf16a475126 100644 (file)
@@ -76,16 +76,15 @@ static int socfpga_dtreg_probe(struct udevice *dev)
                                return -EINVAL;
                        }
 
+                       reg = base + offset;
+
                        if (mask != 0) {
                                if (mask == 0xffffffff) {
-                                       reg = base + offset;
                                        writel(val, (uintptr_t)reg);
                                } else {
                                        /* Mask the value with the masking bits */
                                        set_mask = val & mask;
 
-                                       reg = base + offset;
-
                                        /* Clears and sets specific bits in the register */
                                        clrsetbits_le32((uintptr_t)reg, mask, set_mask);
                                }