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.goodb...@linaro.org>
---
 drivers/misc/socfpga_dtreg.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/misc/socfpga_dtreg.c b/drivers/misc/socfpga_dtreg.c
index ea5d0bcdf51..dd6809433e3 100644
--- a/drivers/misc/socfpga_dtreg.c
+++ b/drivers/misc/socfpga_dtreg.c
@@ -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);
                                }

---
base-commit: 182cb30084516c3085d2ca5dde3f105f7625d774
change-id: 20250729-socfpga_dtreg-9a70bf432328

Best regards,
-- 
Andrew Goodbody <andrew.goodb...@linaro.org>

Reply via email to