diff options
author | Anson Huang <Anson.Huang@nxp.com> | 2019-05-24 13:51:01 +0800 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2019-08-06 19:08:03 +0200 |
commit | c92e475cc170cd781e210345deecaded737baba0 (patch) | |
tree | fdb605d83f922b11589ef1689f038a3ff627460c /drivers/soc | |
parent | 5a90ad019dc4b57070f4c2f441fa798ecaae4837 (diff) | |
download | linux-stable-c92e475cc170cd781e210345deecaded737baba0.tar.gz linux-stable-c92e475cc170cd781e210345deecaded737baba0.tar.bz2 linux-stable-c92e475cc170cd781e210345deecaded737baba0.zip |
soc: imx: soc-imx8: Correct return value of error handle
[ Upstream commit 4c396a604a57da8f883a8b3368d83181680d6907 ]
Current implementation of i.MX8 SoC driver returns -ENODEV
for all cases of error during initialization, this is incorrect.
This patch fixes them using correct return value according
to different errors.
Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
Reviewed-by: Leonard Crestez <leonard.crestez@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'drivers/soc')
-rw-r--r-- | drivers/soc/imx/soc-imx8.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/drivers/soc/imx/soc-imx8.c b/drivers/soc/imx/soc-imx8.c index fc6429f9170a..e567d866a9d3 100644 --- a/drivers/soc/imx/soc-imx8.c +++ b/drivers/soc/imx/soc-imx8.c @@ -73,7 +73,7 @@ static int __init imx8_soc_init(void) soc_dev_attr = kzalloc(sizeof(*soc_dev_attr), GFP_KERNEL); if (!soc_dev_attr) - return -ENODEV; + return -ENOMEM; soc_dev_attr->family = "Freescale i.MX"; @@ -83,8 +83,10 @@ static int __init imx8_soc_init(void) goto free_soc; id = of_match_node(imx8_soc_match, root); - if (!id) + if (!id) { + ret = -ENODEV; goto free_soc; + } of_node_put(root); @@ -96,12 +98,16 @@ static int __init imx8_soc_init(void) } soc_dev_attr->revision = imx8_revision(soc_rev); - if (!soc_dev_attr->revision) + if (!soc_dev_attr->revision) { + ret = -ENOMEM; goto free_soc; + } soc_dev = soc_device_register(soc_dev_attr); - if (IS_ERR(soc_dev)) + if (IS_ERR(soc_dev)) { + ret = PTR_ERR(soc_dev); goto free_rev; + } return 0; @@ -110,6 +116,6 @@ free_rev: free_soc: kfree(soc_dev_attr); of_node_put(root); - return -ENODEV; + return ret; } device_initcall(imx8_soc_init); |