Message ID | 20190614080748.32997-2-Anson.Huang@nxp.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [V2,1/2] soc: imx8: Fix potential kernel dump in error path | expand |
On Fri, Jun 14, 2019 at 04:07:48PM +0800, Anson.Huang@nxp.com wrote: > From: Anson Huang <Anson.Huang@nxp.com> > > There is common of_root for reference, no need to find it > from DT again, use of_root directly to make driver simple. > > Signed-off-by: Anson Huang <Anson.Huang@nxp.com> > Reviewed-by: Dong Aisheng <aisheng.dong@nxp.com> It cannot be applied. Please resend by basing on my imx/drivers branch. Shawn > --- > No changes. > --- > drivers/soc/imx/soc-imx8.c | 9 ++------- > 1 file changed, 2 insertions(+), 7 deletions(-) > > diff --git a/drivers/soc/imx/soc-imx8.c b/drivers/soc/imx/soc-imx8.c > index 5c7f330..b459bf2 100644 > --- a/drivers/soc/imx/soc-imx8.c > +++ b/drivers/soc/imx/soc-imx8.c > @@ -105,7 +105,6 @@ static int __init imx8_soc_init(void) > { > struct soc_device_attribute *soc_dev_attr; > struct soc_device *soc_dev; > - struct device_node *root; > const struct of_device_id *id; > u32 soc_rev = 0; > const struct imx8_soc_data *data; > @@ -117,12 +116,11 @@ static int __init imx8_soc_init(void) > > soc_dev_attr->family = "Freescale i.MX"; > > - root = of_find_node_by_path("/"); > - ret = of_property_read_string(root, "model", &soc_dev_attr->machine); > + ret = of_property_read_string(of_root, "model", &soc_dev_attr->machine); > if (ret) > goto free_soc; > > - id = of_match_node(imx8_soc_match, root); > + id = of_match_node(imx8_soc_match, of_root); > if (!id) { > ret = -ENODEV; > goto free_soc; > @@ -147,8 +145,6 @@ static int __init imx8_soc_init(void) > goto free_rev; > } > > - of_node_put(root); > - > if (IS_ENABLED(CONFIG_ARM_IMX_CPUFREQ_DT)) > platform_device_register_simple("imx-cpufreq-dt", -1, NULL, 0); > > @@ -159,7 +155,6 @@ static int __init imx8_soc_init(void) > kfree(soc_dev_attr->revision); > free_soc: > kfree(soc_dev_attr); > - of_node_put(root); > return ret; > } > device_initcall(imx8_soc_init); > -- > 2.7.4 >
Hi, Shawn > -----Original Message----- > From: Shawn Guo <shawnguo@kernel.org> > Sent: Tuesday, June 18, 2019 5:15 PM > To: Anson Huang <anson.huang@nxp.com> > Cc: s.hauer@pengutronix.de; kernel@pengutronix.de; festevam@gmail.com; > Leonard Crestez <leonard.crestez@nxp.com>; viresh.kumar@linaro.org; > Abel Vesa <abel.vesa@nxp.com>; linux-arm-kernel@lists.infradead.org; > linux-kernel@vger.kernel.org; dl-linux-imx <linux-imx@nxp.com> > Subject: Re: [PATCH V2 2/2] soc: imx8: Use existing of_root directly > > On Fri, Jun 14, 2019 at 04:07:48PM +0800, Anson.Huang@nxp.com wrote: > > From: Anson Huang <Anson.Huang@nxp.com> > > > > There is common of_root for reference, no need to find it from DT > > again, use of_root directly to make driver simple. > > > > Signed-off-by: Anson Huang <Anson.Huang@nxp.com> > > Reviewed-by: Dong Aisheng <aisheng.dong@nxp.com> > > It cannot be applied. Please resend by basing on my imx/drivers branch. OK, just resent, there is a soc driver patch in linux-next, previously I did it based on it. Now I change it to your git repo, you could meet conflict during merge. Thanks, Anson > > Shawn > > > --- > > No changes. > > --- > > drivers/soc/imx/soc-imx8.c | 9 ++------- > > 1 file changed, 2 insertions(+), 7 deletions(-) > > > > diff --git a/drivers/soc/imx/soc-imx8.c b/drivers/soc/imx/soc-imx8.c > > index 5c7f330..b459bf2 100644 > > --- a/drivers/soc/imx/soc-imx8.c > > +++ b/drivers/soc/imx/soc-imx8.c > > @@ -105,7 +105,6 @@ static int __init imx8_soc_init(void) { > > struct soc_device_attribute *soc_dev_attr; > > struct soc_device *soc_dev; > > - struct device_node *root; > > const struct of_device_id *id; > > u32 soc_rev = 0; > > const struct imx8_soc_data *data; > > @@ -117,12 +116,11 @@ static int __init imx8_soc_init(void) > > > > soc_dev_attr->family = "Freescale i.MX"; > > > > - root = of_find_node_by_path("/"); > > - ret = of_property_read_string(root, "model", &soc_dev_attr- > >machine); > > + ret = of_property_read_string(of_root, "model", > > +&soc_dev_attr->machine); > > if (ret) > > goto free_soc; > > > > - id = of_match_node(imx8_soc_match, root); > > + id = of_match_node(imx8_soc_match, of_root); > > if (!id) { > > ret = -ENODEV; > > goto free_soc; > > @@ -147,8 +145,6 @@ static int __init imx8_soc_init(void) > > goto free_rev; > > } > > > > - of_node_put(root); > > - > > if (IS_ENABLED(CONFIG_ARM_IMX_CPUFREQ_DT)) > > platform_device_register_simple("imx-cpufreq-dt", -1, NULL, > 0); > > > > @@ -159,7 +155,6 @@ static int __init imx8_soc_init(void) > > kfree(soc_dev_attr->revision); > > free_soc: > > kfree(soc_dev_attr); > > - of_node_put(root); > > return ret; > > } > > device_initcall(imx8_soc_init); > > -- > > 2.7.4 > >
diff --git a/drivers/soc/imx/soc-imx8.c b/drivers/soc/imx/soc-imx8.c index 5c7f330..b459bf2 100644 --- a/drivers/soc/imx/soc-imx8.c +++ b/drivers/soc/imx/soc-imx8.c @@ -105,7 +105,6 @@ static int __init imx8_soc_init(void) { struct soc_device_attribute *soc_dev_attr; struct soc_device *soc_dev; - struct device_node *root; const struct of_device_id *id; u32 soc_rev = 0; const struct imx8_soc_data *data; @@ -117,12 +116,11 @@ static int __init imx8_soc_init(void) soc_dev_attr->family = "Freescale i.MX"; - root = of_find_node_by_path("/"); - ret = of_property_read_string(root, "model", &soc_dev_attr->machine); + ret = of_property_read_string(of_root, "model", &soc_dev_attr->machine); if (ret) goto free_soc; - id = of_match_node(imx8_soc_match, root); + id = of_match_node(imx8_soc_match, of_root); if (!id) { ret = -ENODEV; goto free_soc; @@ -147,8 +145,6 @@ static int __init imx8_soc_init(void) goto free_rev; } - of_node_put(root); - if (IS_ENABLED(CONFIG_ARM_IMX_CPUFREQ_DT)) platform_device_register_simple("imx-cpufreq-dt", -1, NULL, 0); @@ -159,7 +155,6 @@ static int __init imx8_soc_init(void) kfree(soc_dev_attr->revision); free_soc: kfree(soc_dev_attr); - of_node_put(root); return ret; } device_initcall(imx8_soc_init);