All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] soc: imx: imx8m-blk-ctrl: Fix NULL pointer dereference
@ 2022-12-15  3:47 Marek Vasut
  2022-12-15  3:48 ` [PATCH 2/2] soc: imx: imx8mp-blk-ctrl: " Marek Vasut
                   ` (2 more replies)
  0 siblings, 3 replies; 10+ messages in thread
From: Marek Vasut @ 2022-12-15  3:47 UTC (permalink / raw)
  To: linux-arm-kernel
  Cc: Marek Vasut, Adam Ford, Benjamin Gaignard, Fabio Estevam,
	Lucas Stach, Marco Felsch, NXP Linux Team, Paul Elder, Peng Fan,
	Pengutronix Kernel Team, Sascha Hauer, Shawn Guo

Check domain->power_dev = dev_pm_domain_attach_by_name() return value using
IS_ERR_OR_NULL() instead of plain IS_ERR(), and fail if domain->power_dev is
either error or NULL.

In case a power domain attached by dev_pm_domain_attach_by_name() is not
described in DT, dev_pm_domain_attach_by_name() returns NULL, which is
then used a few lines below in dev_set_name(domain->power_dev, ...);,
which leads to NULL pointer dereference.

Fixes: 2684ac05a8c4 ("soc: imx: add i.MX8M blk-ctrl driver")
Signed-off-by: Marek Vasut <marex@denx.de>
---
Cc: Adam Ford <aford173@gmail.com>
Cc: Benjamin Gaignard <benjamin.gaignard@collabora.com>
Cc: Fabio Estevam <festevam@gmail.com>
Cc: Lucas Stach <l.stach@pengutronix.de>
Cc: Marco Felsch <m.felsch@pengutronix.de>
Cc: Marek Vasut <marex@denx.de>
Cc: NXP Linux Team <linux-imx@nxp.com>
Cc: Paul Elder <paul.elder@ideasonboard.com>
Cc: Peng Fan <peng.fan@nxp.com>
Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Shawn Guo <shawnguo@kernel.org>
To: linux-arm-kernel@lists.infradead.org
---
 drivers/soc/imx/imx8m-blk-ctrl.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/soc/imx/imx8m-blk-ctrl.c b/drivers/soc/imx/imx8m-blk-ctrl.c
index ddcf6be3d8b4a..2fbc8e6b2644b 100644
--- a/drivers/soc/imx/imx8m-blk-ctrl.c
+++ b/drivers/soc/imx/imx8m-blk-ctrl.c
@@ -256,7 +256,7 @@ static int imx8m_blk_ctrl_probe(struct platform_device *pdev)
 
 		domain->power_dev =
 			dev_pm_domain_attach_by_name(dev, data->gpc_name);
-		if (IS_ERR(domain->power_dev)) {
+		if (IS_ERR_OR_NULL(domain->power_dev)) {
 			dev_err_probe(dev, PTR_ERR(domain->power_dev),
 				      "failed to attach power domain \"%s\"\n",
 				      data->gpc_name);
-- 
2.35.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 2/2] soc: imx: imx8mp-blk-ctrl: Fix NULL pointer dereference
  2022-12-15  3:47 [PATCH 1/2] soc: imx: imx8m-blk-ctrl: Fix NULL pointer dereference Marek Vasut
@ 2022-12-15  3:48 ` Marek Vasut
  2022-12-15  6:36   ` Sascha Hauer
  2022-12-15  6:26 ` [PATCH 1/2] soc: imx: imx8m-blk-ctrl: " Sascha Hauer
  2022-12-15  8:59 ` Marco Felsch
  2 siblings, 1 reply; 10+ messages in thread
From: Marek Vasut @ 2022-12-15  3:48 UTC (permalink / raw)
  To: linux-arm-kernel
  Cc: Marek Vasut, Adam Ford, Benjamin Gaignard, Fabio Estevam,
	Lucas Stach, Marco Felsch, NXP Linux Team, Paul Elder, Peng Fan,
	Pengutronix Kernel Team, Sascha Hauer, Shawn Guo

Check domain->power_dev = dev_pm_domain_attach_by_name() return value using
IS_ERR_OR_NULL() instead of plain IS_ERR(), and fail if domain->power_dev is
either error or NULL.

In case a power domain attached by dev_pm_domain_attach_by_name() is not
described in DT, dev_pm_domain_attach_by_name() returns NULL, which is
then used a few lines below in dev_set_name(domain->power_dev, ...);,
which leads to NULL pointer dereference.

Fixes: 556f5cf9568a ("soc: imx: add i.MX8MP HSIO blk-ctrl")
Signed-off-by: Marek Vasut <marex@denx.de>
---
Cc: Adam Ford <aford173@gmail.com>
Cc: Benjamin Gaignard <benjamin.gaignard@collabora.com>
Cc: Fabio Estevam <festevam@gmail.com>
Cc: Lucas Stach <l.stach@pengutronix.de>
Cc: Marco Felsch <m.felsch@pengutronix.de>
Cc: Marek Vasut <marex@denx.de>
Cc: NXP Linux Team <linux-imx@nxp.com>
Cc: Paul Elder <paul.elder@ideasonboard.com>
Cc: Peng Fan <peng.fan@nxp.com>
Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Shawn Guo <shawnguo@kernel.org>
To: linux-arm-kernel@lists.infradead.org
---
 drivers/soc/imx/imx8mp-blk-ctrl.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/soc/imx/imx8mp-blk-ctrl.c b/drivers/soc/imx/imx8mp-blk-ctrl.c
index b7d4161fcda9c..916bf0b3bc975 100644
--- a/drivers/soc/imx/imx8mp-blk-ctrl.c
+++ b/drivers/soc/imx/imx8mp-blk-ctrl.c
@@ -553,7 +553,7 @@ static int imx8mp_blk_ctrl_probe(struct platform_device *pdev)
 
 		domain->power_dev =
 			dev_pm_domain_attach_by_name(dev, data->gpc_name);
-		if (IS_ERR(domain->power_dev)) {
+		if (IS_ERR_OR_NULL(domain->power_dev)) {
 			dev_err_probe(dev, PTR_ERR(domain->power_dev),
 				      "failed to attach power domain %s\n",
 				      data->gpc_name);
-- 
2.35.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH 1/2] soc: imx: imx8m-blk-ctrl: Fix NULL pointer dereference
  2022-12-15  3:47 [PATCH 1/2] soc: imx: imx8m-blk-ctrl: Fix NULL pointer dereference Marek Vasut
  2022-12-15  3:48 ` [PATCH 2/2] soc: imx: imx8mp-blk-ctrl: " Marek Vasut
@ 2022-12-15  6:26 ` Sascha Hauer
  2022-12-15  8:59 ` Marco Felsch
  2 siblings, 0 replies; 10+ messages in thread
From: Sascha Hauer @ 2022-12-15  6:26 UTC (permalink / raw)
  To: Marek Vasut
  Cc: linux-arm-kernel, Peng Fan, Benjamin Gaignard, Fabio Estevam,
	Paul Elder, Marco Felsch, NXP Linux Team,
	Pengutronix Kernel Team, Shawn Guo, Adam Ford, Lucas Stach

On Thu, Dec 15, 2022 at 04:47:59AM +0100, Marek Vasut wrote:
> Check domain->power_dev = dev_pm_domain_attach_by_name() return value using
> IS_ERR_OR_NULL() instead of plain IS_ERR(), and fail if domain->power_dev is
> either error or NULL.
> 
> In case a power domain attached by dev_pm_domain_attach_by_name() is not
> described in DT, dev_pm_domain_attach_by_name() returns NULL, which is
> then used a few lines below in dev_set_name(domain->power_dev, ...);,
> which leads to NULL pointer dereference.

This is no longer the case since b64b46fbaa1da ("Revert "soc: imx:
imx8m-blk-ctrl: set power device name"")

> 
> Fixes: 2684ac05a8c4 ("soc: imx: add i.MX8M blk-ctrl driver")
> Signed-off-by: Marek Vasut <marex@denx.de>
> ---
> Cc: Adam Ford <aford173@gmail.com>
> Cc: Benjamin Gaignard <benjamin.gaignard@collabora.com>
> Cc: Fabio Estevam <festevam@gmail.com>
> Cc: Lucas Stach <l.stach@pengutronix.de>
> Cc: Marco Felsch <m.felsch@pengutronix.de>
> Cc: Marek Vasut <marex@denx.de>
> Cc: NXP Linux Team <linux-imx@nxp.com>
> Cc: Paul Elder <paul.elder@ideasonboard.com>
> Cc: Peng Fan <peng.fan@nxp.com>
> Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
> Cc: Sascha Hauer <s.hauer@pengutronix.de>
> Cc: Shawn Guo <shawnguo@kernel.org>
> To: linux-arm-kernel@lists.infradead.org
> ---
>  drivers/soc/imx/imx8m-blk-ctrl.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/soc/imx/imx8m-blk-ctrl.c b/drivers/soc/imx/imx8m-blk-ctrl.c
> index ddcf6be3d8b4a..2fbc8e6b2644b 100644
> --- a/drivers/soc/imx/imx8m-blk-ctrl.c
> +++ b/drivers/soc/imx/imx8m-blk-ctrl.c
> @@ -256,7 +256,7 @@ static int imx8m_blk_ctrl_probe(struct platform_device *pdev)
>  
>  		domain->power_dev =
>  			dev_pm_domain_attach_by_name(dev, data->gpc_name);
> -		if (IS_ERR(domain->power_dev)) {
> +		if (IS_ERR_OR_NULL(domain->power_dev)) {
>  			dev_err_probe(dev, PTR_ERR(domain->power_dev),
>  				      "failed to attach power domain \"%s\"\n",
>  				      data->gpc_name);

Calling dev_err_probe() with an error value of 0 looks wrong. Jumping to
the error path with an error value of 0 also looks wrong.

Sascha

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 2/2] soc: imx: imx8mp-blk-ctrl: Fix NULL pointer dereference
  2022-12-15  3:48 ` [PATCH 2/2] soc: imx: imx8mp-blk-ctrl: " Marek Vasut
@ 2022-12-15  6:36   ` Sascha Hauer
  2022-12-15  9:04     ` Marco Felsch
  0 siblings, 1 reply; 10+ messages in thread
From: Sascha Hauer @ 2022-12-15  6:36 UTC (permalink / raw)
  To: Marek Vasut
  Cc: linux-arm-kernel, Peng Fan, Benjamin Gaignard, Fabio Estevam,
	Paul Elder, Marco Felsch, NXP Linux Team,
	Pengutronix Kernel Team, Shawn Guo, Adam Ford, Lucas Stach

On Thu, Dec 15, 2022 at 04:48:00AM +0100, Marek Vasut wrote:
> Check domain->power_dev = dev_pm_domain_attach_by_name() return value using
> IS_ERR_OR_NULL() instead of plain IS_ERR(), and fail if domain->power_dev is
> either error or NULL.
> 
> In case a power domain attached by dev_pm_domain_attach_by_name() is not
> described in DT, dev_pm_domain_attach_by_name() returns NULL, which is
> then used a few lines below in dev_set_name(domain->power_dev, ...);,
> which leads to NULL pointer dereference.
> 
> Fixes: 556f5cf9568a ("soc: imx: add i.MX8MP HSIO blk-ctrl")
> Signed-off-by: Marek Vasut <marex@denx.de>
> ---
> Cc: Adam Ford <aford173@gmail.com>
> Cc: Benjamin Gaignard <benjamin.gaignard@collabora.com>
> Cc: Fabio Estevam <festevam@gmail.com>
> Cc: Lucas Stach <l.stach@pengutronix.de>
> Cc: Marco Felsch <m.felsch@pengutronix.de>
> Cc: Marek Vasut <marex@denx.de>
> Cc: NXP Linux Team <linux-imx@nxp.com>
> Cc: Paul Elder <paul.elder@ideasonboard.com>
> Cc: Peng Fan <peng.fan@nxp.com>
> Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
> Cc: Sascha Hauer <s.hauer@pengutronix.de>
> Cc: Shawn Guo <shawnguo@kernel.org>
> To: linux-arm-kernel@lists.infradead.org
> ---
>  drivers/soc/imx/imx8mp-blk-ctrl.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/soc/imx/imx8mp-blk-ctrl.c b/drivers/soc/imx/imx8mp-blk-ctrl.c
> index b7d4161fcda9c..916bf0b3bc975 100644
> --- a/drivers/soc/imx/imx8mp-blk-ctrl.c
> +++ b/drivers/soc/imx/imx8mp-blk-ctrl.c
> @@ -553,7 +553,7 @@ static int imx8mp_blk_ctrl_probe(struct platform_device *pdev)
>  
>  		domain->power_dev =
>  			dev_pm_domain_attach_by_name(dev, data->gpc_name);
> -		if (IS_ERR(domain->power_dev)) {
> +		if (IS_ERR_OR_NULL(domain->power_dev)) {
>  			dev_err_probe(dev, PTR_ERR(domain->power_dev),
>  				      "failed to attach power domain %s\n",
>  				      data->gpc_name);

Same problem as with the other patch, you shouldn't use 0 as error
value.

Sascha

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 1/2] soc: imx: imx8m-blk-ctrl: Fix NULL pointer dereference
  2022-12-15  3:47 [PATCH 1/2] soc: imx: imx8m-blk-ctrl: Fix NULL pointer dereference Marek Vasut
  2022-12-15  3:48 ` [PATCH 2/2] soc: imx: imx8mp-blk-ctrl: " Marek Vasut
  2022-12-15  6:26 ` [PATCH 1/2] soc: imx: imx8m-blk-ctrl: " Sascha Hauer
@ 2022-12-15  8:59 ` Marco Felsch
  2 siblings, 0 replies; 10+ messages in thread
From: Marco Felsch @ 2022-12-15  8:59 UTC (permalink / raw)
  To: Marek Vasut
  Cc: linux-arm-kernel, Adam Ford, Benjamin Gaignard, Fabio Estevam,
	Lucas Stach, NXP Linux Team, Paul Elder, Peng Fan,
	Pengutronix Kernel Team, Sascha Hauer, Shawn Guo

Hi Marek,

On 22-12-15, Marek Vasut wrote:
> Check domain->power_dev = dev_pm_domain_attach_by_name() return value using
> IS_ERR_OR_NULL() instead of plain IS_ERR(), and fail if domain->power_dev is
> either error or NULL.
> 
> In case a power domain attached by dev_pm_domain_attach_by_name() is not
> described in DT, dev_pm_domain_attach_by_name() returns NULL, which is
> then used a few lines below in dev_set_name(domain->power_dev, ...);,
> which leads to NULL pointer dereference.

This is already fixed by b64b46fbaa1da626324f304bcb5fe0662f28b6ce.

Regards,
  Marco


> 
> Fixes: 2684ac05a8c4 ("soc: imx: add i.MX8M blk-ctrl driver")
> Signed-off-by: Marek Vasut <marex@denx.de>
> ---
> Cc: Adam Ford <aford173@gmail.com>
> Cc: Benjamin Gaignard <benjamin.gaignard@collabora.com>
> Cc: Fabio Estevam <festevam@gmail.com>
> Cc: Lucas Stach <l.stach@pengutronix.de>
> Cc: Marco Felsch <m.felsch@pengutronix.de>
> Cc: Marek Vasut <marex@denx.de>
> Cc: NXP Linux Team <linux-imx@nxp.com>
> Cc: Paul Elder <paul.elder@ideasonboard.com>
> Cc: Peng Fan <peng.fan@nxp.com>
> Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
> Cc: Sascha Hauer <s.hauer@pengutronix.de>
> Cc: Shawn Guo <shawnguo@kernel.org>
> To: linux-arm-kernel@lists.infradead.org
> ---
>  drivers/soc/imx/imx8m-blk-ctrl.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/soc/imx/imx8m-blk-ctrl.c b/drivers/soc/imx/imx8m-blk-ctrl.c
> index ddcf6be3d8b4a..2fbc8e6b2644b 100644
> --- a/drivers/soc/imx/imx8m-blk-ctrl.c
> +++ b/drivers/soc/imx/imx8m-blk-ctrl.c
> @@ -256,7 +256,7 @@ static int imx8m_blk_ctrl_probe(struct platform_device *pdev)
>  
>  		domain->power_dev =
>  			dev_pm_domain_attach_by_name(dev, data->gpc_name);
> -		if (IS_ERR(domain->power_dev)) {
> +		if (IS_ERR_OR_NULL(domain->power_dev)) {
>  			dev_err_probe(dev, PTR_ERR(domain->power_dev),
>  				      "failed to attach power domain \"%s\"\n",
>  				      data->gpc_name);
> -- 
> 2.35.1
> 
> 

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 2/2] soc: imx: imx8mp-blk-ctrl: Fix NULL pointer dereference
  2022-12-15  6:36   ` Sascha Hauer
@ 2022-12-15  9:04     ` Marco Felsch
  2022-12-17 23:26       ` Marek Vasut
  0 siblings, 1 reply; 10+ messages in thread
From: Marco Felsch @ 2022-12-15  9:04 UTC (permalink / raw)
  To: Sascha Hauer
  Cc: Marek Vasut, linux-arm-kernel, Peng Fan, Benjamin Gaignard,
	Fabio Estevam, Paul Elder, NXP Linux Team,
	Pengutronix Kernel Team, Shawn Guo, Adam Ford, Lucas Stach

On 22-12-15, Sascha Hauer wrote:
> On Thu, Dec 15, 2022 at 04:48:00AM +0100, Marek Vasut wrote:
> > Check domain->power_dev = dev_pm_domain_attach_by_name() return value using
> > IS_ERR_OR_NULL() instead of plain IS_ERR(), and fail if domain->power_dev is
> > either error or NULL.
> > 
> > In case a power domain attached by dev_pm_domain_attach_by_name() is not
> > described in DT, dev_pm_domain_attach_by_name() returns NULL, which is
> > then used a few lines below in dev_set_name(domain->power_dev, ...);,
> > which leads to NULL pointer dereference.
> > 
> > Fixes: 556f5cf9568a ("soc: imx: add i.MX8MP HSIO blk-ctrl")
> > Signed-off-by: Marek Vasut <marex@denx.de>
> > ---
> > Cc: Adam Ford <aford173@gmail.com>
> > Cc: Benjamin Gaignard <benjamin.gaignard@collabora.com>
> > Cc: Fabio Estevam <festevam@gmail.com>
> > Cc: Lucas Stach <l.stach@pengutronix.de>
> > Cc: Marco Felsch <m.felsch@pengutronix.de>
> > Cc: Marek Vasut <marex@denx.de>
> > Cc: NXP Linux Team <linux-imx@nxp.com>
> > Cc: Paul Elder <paul.elder@ideasonboard.com>
> > Cc: Peng Fan <peng.fan@nxp.com>
> > Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
> > Cc: Sascha Hauer <s.hauer@pengutronix.de>
> > Cc: Shawn Guo <shawnguo@kernel.org>
> > To: linux-arm-kernel@lists.infradead.org
> > ---
> >  drivers/soc/imx/imx8mp-blk-ctrl.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/drivers/soc/imx/imx8mp-blk-ctrl.c b/drivers/soc/imx/imx8mp-blk-ctrl.c
> > index b7d4161fcda9c..916bf0b3bc975 100644
> > --- a/drivers/soc/imx/imx8mp-blk-ctrl.c
> > +++ b/drivers/soc/imx/imx8mp-blk-ctrl.c
> > @@ -553,7 +553,7 @@ static int imx8mp_blk_ctrl_probe(struct platform_device *pdev)
> >  
> >  		domain->power_dev =
> >  			dev_pm_domain_attach_by_name(dev, data->gpc_name);
> > -		if (IS_ERR(domain->power_dev)) {
> > +		if (IS_ERR_OR_NULL(domain->power_dev)) {
> >  			dev_err_probe(dev, PTR_ERR(domain->power_dev),
> >  				      "failed to attach power domain %s\n",
> >  				      data->gpc_name);
> 
> Same problem as with the other patch, you shouldn't use 0 as error
> value.

This and IIRC Lucas already had a patch to fix.

Regards,
  Marco


> 
> Sascha
> 
> -- 
> Pengutronix e.K.                           |                             |
> Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
> 31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
> Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |
> 

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 2/2] soc: imx: imx8mp-blk-ctrl: Fix NULL pointer dereference
  2022-12-15  9:04     ` Marco Felsch
@ 2022-12-17 23:26       ` Marek Vasut
  2022-12-18 13:29         ` Adam Ford
  0 siblings, 1 reply; 10+ messages in thread
From: Marek Vasut @ 2022-12-17 23:26 UTC (permalink / raw)
  To: Marco Felsch, Sascha Hauer
  Cc: linux-arm-kernel, Peng Fan, Benjamin Gaignard, Fabio Estevam,
	Paul Elder, NXP Linux Team, Pengutronix Kernel Team, Shawn Guo,
	Adam Ford, Lucas Stach

On 12/15/22 10:04, Marco Felsch wrote:
> On 22-12-15, Sascha Hauer wrote:
>> On Thu, Dec 15, 2022 at 04:48:00AM +0100, Marek Vasut wrote:
>>> Check domain->power_dev = dev_pm_domain_attach_by_name() return value using
>>> IS_ERR_OR_NULL() instead of plain IS_ERR(), and fail if domain->power_dev is
>>> either error or NULL.
>>>
>>> In case a power domain attached by dev_pm_domain_attach_by_name() is not
>>> described in DT, dev_pm_domain_attach_by_name() returns NULL, which is
>>> then used a few lines below in dev_set_name(domain->power_dev, ...);,
>>> which leads to NULL pointer dereference.
>>>
>>> Fixes: 556f5cf9568a ("soc: imx: add i.MX8MP HSIO blk-ctrl")
>>> Signed-off-by: Marek Vasut <marex@denx.de>
>>> ---
>>> Cc: Adam Ford <aford173@gmail.com>
>>> Cc: Benjamin Gaignard <benjamin.gaignard@collabora.com>
>>> Cc: Fabio Estevam <festevam@gmail.com>
>>> Cc: Lucas Stach <l.stach@pengutronix.de>
>>> Cc: Marco Felsch <m.felsch@pengutronix.de>
>>> Cc: Marek Vasut <marex@denx.de>
>>> Cc: NXP Linux Team <linux-imx@nxp.com>
>>> Cc: Paul Elder <paul.elder@ideasonboard.com>
>>> Cc: Peng Fan <peng.fan@nxp.com>
>>> Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
>>> Cc: Sascha Hauer <s.hauer@pengutronix.de>
>>> Cc: Shawn Guo <shawnguo@kernel.org>
>>> To: linux-arm-kernel@lists.infradead.org
>>> ---
>>>   drivers/soc/imx/imx8mp-blk-ctrl.c | 2 +-
>>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/soc/imx/imx8mp-blk-ctrl.c b/drivers/soc/imx/imx8mp-blk-ctrl.c
>>> index b7d4161fcda9c..916bf0b3bc975 100644
>>> --- a/drivers/soc/imx/imx8mp-blk-ctrl.c
>>> +++ b/drivers/soc/imx/imx8mp-blk-ctrl.c
>>> @@ -553,7 +553,7 @@ static int imx8mp_blk_ctrl_probe(struct platform_device *pdev)
>>>   
>>>   		domain->power_dev =
>>>   			dev_pm_domain_attach_by_name(dev, data->gpc_name);
>>> -		if (IS_ERR(domain->power_dev)) {
>>> +		if (IS_ERR_OR_NULL(domain->power_dev)) {
>>>   			dev_err_probe(dev, PTR_ERR(domain->power_dev),
>>>   				      "failed to attach power domain %s\n",
>>>   				      data->gpc_name);
>>
>> Same problem as with the other patch, you shouldn't use 0 as error
>> value.
> 
> This and IIRC Lucas already had a patch to fix.

Seems there is a fix for 8m-blk-ctrl, not 8mp , but the fix would then 
be identical.

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 2/2] soc: imx: imx8mp-blk-ctrl: Fix NULL pointer dereference
  2022-12-17 23:26       ` Marek Vasut
@ 2022-12-18 13:29         ` Adam Ford
  2022-12-18 16:31           ` Marek Vasut
  0 siblings, 1 reply; 10+ messages in thread
From: Adam Ford @ 2022-12-18 13:29 UTC (permalink / raw)
  To: Marek Vasut
  Cc: Marco Felsch, Sascha Hauer, linux-arm-kernel, Peng Fan,
	Benjamin Gaignard, Fabio Estevam, Paul Elder, NXP Linux Team,
	Pengutronix Kernel Team, Shawn Guo, Lucas Stach

On Sat, Dec 17, 2022 at 5:26 PM Marek Vasut <marex@denx.de> wrote:
>
> On 12/15/22 10:04, Marco Felsch wrote:
> > On 22-12-15, Sascha Hauer wrote:
> >> On Thu, Dec 15, 2022 at 04:48:00AM +0100, Marek Vasut wrote:
> >>> Check domain->power_dev = dev_pm_domain_attach_by_name() return value using
> >>> IS_ERR_OR_NULL() instead of plain IS_ERR(), and fail if domain->power_dev is
> >>> either error or NULL.
> >>>
> >>> In case a power domain attached by dev_pm_domain_attach_by_name() is not
> >>> described in DT, dev_pm_domain_attach_by_name() returns NULL, which is
> >>> then used a few lines below in dev_set_name(domain->power_dev, ...);,
> >>> which leads to NULL pointer dereference.
> >>>
> >>> Fixes: 556f5cf9568a ("soc: imx: add i.MX8MP HSIO blk-ctrl")
> >>> Signed-off-by: Marek Vasut <marex@denx.de>
> >>> ---
> >>> Cc: Adam Ford <aford173@gmail.com>
> >>> Cc: Benjamin Gaignard <benjamin.gaignard@collabora.com>
> >>> Cc: Fabio Estevam <festevam@gmail.com>
> >>> Cc: Lucas Stach <l.stach@pengutronix.de>
> >>> Cc: Marco Felsch <m.felsch@pengutronix.de>
> >>> Cc: Marek Vasut <marex@denx.de>
> >>> Cc: NXP Linux Team <linux-imx@nxp.com>
> >>> Cc: Paul Elder <paul.elder@ideasonboard.com>
> >>> Cc: Peng Fan <peng.fan@nxp.com>
> >>> Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
> >>> Cc: Sascha Hauer <s.hauer@pengutronix.de>
> >>> Cc: Shawn Guo <shawnguo@kernel.org>
> >>> To: linux-arm-kernel@lists.infradead.org
> >>> ---
> >>>   drivers/soc/imx/imx8mp-blk-ctrl.c | 2 +-
> >>>   1 file changed, 1 insertion(+), 1 deletion(-)
> >>>
> >>> diff --git a/drivers/soc/imx/imx8mp-blk-ctrl.c b/drivers/soc/imx/imx8mp-blk-ctrl.c
> >>> index b7d4161fcda9c..916bf0b3bc975 100644
> >>> --- a/drivers/soc/imx/imx8mp-blk-ctrl.c
> >>> +++ b/drivers/soc/imx/imx8mp-blk-ctrl.c
> >>> @@ -553,7 +553,7 @@ static int imx8mp_blk_ctrl_probe(struct platform_device *pdev)
> >>>
> >>>             domain->power_dev =
> >>>                     dev_pm_domain_attach_by_name(dev, data->gpc_name);
> >>> -           if (IS_ERR(domain->power_dev)) {
> >>> +           if (IS_ERR_OR_NULL(domain->power_dev)) {
> >>>                     dev_err_probe(dev, PTR_ERR(domain->power_dev),
> >>>                                   "failed to attach power domain %s\n",
> >>>                                   data->gpc_name);
> >>
> >> Same problem as with the other patch, you shouldn't use 0 as error
> >> value.
> >
> > This and IIRC Lucas already had a patch to fix.
>
> Seems there is a fix for 8m-blk-ctrl, not 8mp , but the fix would then
> be identical.

I think this might be the patch from Lucas that Marco was referencing:

https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=671618&archive=both&state=*

adam

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 2/2] soc: imx: imx8mp-blk-ctrl: Fix NULL pointer dereference
  2022-12-18 13:29         ` Adam Ford
@ 2022-12-18 16:31           ` Marek Vasut
  2022-12-19  9:14             ` Marco Felsch
  0 siblings, 1 reply; 10+ messages in thread
From: Marek Vasut @ 2022-12-18 16:31 UTC (permalink / raw)
  To: Adam Ford
  Cc: Marco Felsch, Sascha Hauer, linux-arm-kernel, Peng Fan,
	Benjamin Gaignard, Fabio Estevam, Paul Elder, NXP Linux Team,
	Pengutronix Kernel Team, Shawn Guo, Lucas Stach

On 12/18/22 14:29, Adam Ford wrote:

Hi,

>>>>> diff --git a/drivers/soc/imx/imx8mp-blk-ctrl.c b/drivers/soc/imx/imx8mp-blk-ctrl.c
>>>>> index b7d4161fcda9c..916bf0b3bc975 100644
>>>>> --- a/drivers/soc/imx/imx8mp-blk-ctrl.c
>>>>> +++ b/drivers/soc/imx/imx8mp-blk-ctrl.c
>>>>> @@ -553,7 +553,7 @@ static int imx8mp_blk_ctrl_probe(struct platform_device *pdev)
>>>>>
>>>>>              domain->power_dev =
>>>>>                      dev_pm_domain_attach_by_name(dev, data->gpc_name);
>>>>> -           if (IS_ERR(domain->power_dev)) {
>>>>> +           if (IS_ERR_OR_NULL(domain->power_dev)) {
>>>>>                      dev_err_probe(dev, PTR_ERR(domain->power_dev),
>>>>>                                    "failed to attach power domain %s\n",
>>>>>                                    data->gpc_name);
>>>>
>>>> Same problem as with the other patch, you shouldn't use 0 as error
>>>> value.
>>>
>>> This and IIRC Lucas already had a patch to fix.
>>
>> Seems there is a fix for 8m-blk-ctrl, not 8mp , but the fix would then
>> be identical.
> 
> I think this might be the patch from Lucas that Marco was referencing:
> 
> https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=671618&archive=both&state=*

Since Linux 6.1 does not even boot on i.MX8MP and crashes before even 
printing anything on console (unless you use earlycon), it would be good 
to apply the 1/3 or "[PATCH] soc: imx: imx8mp-blk-ctrl: Do not set power 
domain name" I sent yesterday.

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 2/2] soc: imx: imx8mp-blk-ctrl: Fix NULL pointer dereference
  2022-12-18 16:31           ` Marek Vasut
@ 2022-12-19  9:14             ` Marco Felsch
  0 siblings, 0 replies; 10+ messages in thread
From: Marco Felsch @ 2022-12-19  9:14 UTC (permalink / raw)
  To: Marek Vasut
  Cc: Adam Ford, Sascha Hauer, linux-arm-kernel, Peng Fan,
	Benjamin Gaignard, Fabio Estevam, Paul Elder, NXP Linux Team,
	Pengutronix Kernel Team, Shawn Guo, Lucas Stach

On 22-12-18, Marek Vasut wrote:
> On 12/18/22 14:29, Adam Ford wrote:
> 
> Hi,
> 
> > > > > > diff --git a/drivers/soc/imx/imx8mp-blk-ctrl.c b/drivers/soc/imx/imx8mp-blk-ctrl.c
> > > > > > index b7d4161fcda9c..916bf0b3bc975 100644
> > > > > > --- a/drivers/soc/imx/imx8mp-blk-ctrl.c
> > > > > > +++ b/drivers/soc/imx/imx8mp-blk-ctrl.c
> > > > > > @@ -553,7 +553,7 @@ static int imx8mp_blk_ctrl_probe(struct platform_device *pdev)
> > > > > > 
> > > > > >              domain->power_dev =
> > > > > >                      dev_pm_domain_attach_by_name(dev, data->gpc_name);
> > > > > > -           if (IS_ERR(domain->power_dev)) {
> > > > > > +           if (IS_ERR_OR_NULL(domain->power_dev)) {
> > > > > >                      dev_err_probe(dev, PTR_ERR(domain->power_dev),
> > > > > >                                    "failed to attach power domain %s\n",
> > > > > >                                    data->gpc_name);
> > > > > 
> > > > > Same problem as with the other patch, you shouldn't use 0 as error
> > > > > value.
> > > > 
> > > > This and IIRC Lucas already had a patch to fix.
> > > 
> > > Seems there is a fix for 8m-blk-ctrl, not 8mp , but the fix would then
> > > be identical.
> > 
> > I think this might be the patch from Lucas that Marco was referencing:
> > 
> > https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=671618&archive=both&state=*
> 
> Since Linux 6.1 does not even boot on i.MX8MP and crashes before even
> printing anything on console (unless you use earlycon), it would be good to
> apply the 1/3 or "[PATCH] soc: imx: imx8mp-blk-ctrl: Do not set power domain
> name" I sent yesterday.

Or just pick
https://patchwork.kernel.org/project/linux-arm-kernel/patch/20220826191305.3215706-1-l.stach@pengutronix.de/
which has already Peng's review. Up to the maintainer which he want to
use but we should fix that.

Regards,
  Marco

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2022-12-19  9:17 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-12-15  3:47 [PATCH 1/2] soc: imx: imx8m-blk-ctrl: Fix NULL pointer dereference Marek Vasut
2022-12-15  3:48 ` [PATCH 2/2] soc: imx: imx8mp-blk-ctrl: " Marek Vasut
2022-12-15  6:36   ` Sascha Hauer
2022-12-15  9:04     ` Marco Felsch
2022-12-17 23:26       ` Marek Vasut
2022-12-18 13:29         ` Adam Ford
2022-12-18 16:31           ` Marek Vasut
2022-12-19  9:14             ` Marco Felsch
2022-12-15  6:26 ` [PATCH 1/2] soc: imx: imx8m-blk-ctrl: " Sascha Hauer
2022-12-15  8:59 ` Marco Felsch

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.