soc: aspeed: lpc-ctrl: Fix probe error handling
authorJoel Stanley <joel@jms.id.au>
Thu, 20 Jun 2019 09:17:38 +0000 (18:47 +0930)
committerJoel Stanley <joel@jms.id.au>
Sat, 22 Jun 2019 07:26:35 +0000 (16:56 +0930)
gcc warns that a mising "flash" phandle node leads to undefined
behavior later:

drivers/soc/aspeed/aspeed-lpc-ctrl.c: In function 'aspeed_lpc_ctrl_probe':
drivers/soc/aspeed/aspeed-lpc-ctrl.c:201:18: error: '*((void *)&resm+8)' may be used uninitialized in this function [-Werror=maybe-uninitialized]

Only set the flash base and size if we find a phandle in the device
tree.

Reported-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Andrew Jeffery <andrew@aj.id.au>
Reviewed-by: Vijay Khemka <vijaykhemka@fb.com>
Signed-off-by: Joel Stanley <joel@jms.id.au>
drivers/soc/aspeed/aspeed-lpc-ctrl.c

index aca1377..eee26c2 100644 (file)
@@ -223,10 +223,11 @@ static int aspeed_lpc_ctrl_probe(struct platform_device *pdev)
                        dev_err(dev, "Couldn't address to resource for flash\n");
                        return rc;
                }
+
+               lpc_ctrl->pnor_size = resource_size(&resm);
+               lpc_ctrl->pnor_base = resm.start;
        }
 
-       lpc_ctrl->pnor_size = resource_size(&resm);
-       lpc_ctrl->pnor_base = resm.start;
 
        dev_set_drvdata(&pdev->dev, lpc_ctrl);