linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [RESEND PATCH v5 1/2] dmaengine: mxs: use platform_driver_register
@ 2022-09-04 14:10 Dario Binacchi
  2022-09-04 14:10 ` [RESEND PATCH v5 2/2] dmaengine: mxs: fix section mismatch Dario Binacchi
  2022-09-13 16:35 ` [RESEND PATCH v5 1/2] dmaengine: mxs: use platform_driver_register Sascha Hauer
  0 siblings, 2 replies; 10+ messages in thread
From: Dario Binacchi @ 2022-09-04 14:10 UTC (permalink / raw)
  To: linux-kernel
  Cc: linux-amarula, Michael Trimarchi, Dario Binacchi, stable,
	Fabio Estevam, NXP Linux Team, Pengutronix Kernel Team,
	Sascha Hauer, Shawn Guo, Vinod Koul, dmaengine, linux-arm-kernel

Driver registration fails on SOC imx8mn as its supplier, the clock
control module, is probed later than subsys initcall level. This driver
uses platform_driver_probe which is not compatible with deferred probing
and won't be probed again later if probe function fails due to clock not
being available at that time.

This patch replaces the use of platform_driver_probe with
platform_driver_register which will allow probing the driver later again
when the clock control module will be available.

Fixes: a580b8c5429a ("dmaengine: mxs-dma: add dma support for i.MX23/28")
Co-developed-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
Cc: stable@vger.kernel.org

---

Changes in v5:
- Update the commit message.
- Add the patch "dmaengine: mxs: fix section mismatch" to remove the
  warning raised by this patch.

Changes in v4:
- Restore __init in front of mxs_dma_probe() definition.
- Rename the mxs_dma_driver variable to mxs_dma_driver_probe.
- Update the commit message.
- Use builtin_platform_driver() instead of module_platform_driver().

Changes in v3:
- Restore __init in front of mxs_dma_init() definition.

Changes in v2:
- Add the tag "Cc: stable@vger.kernel.org" in the sign-off area.

 drivers/dma/mxs-dma.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/drivers/dma/mxs-dma.c b/drivers/dma/mxs-dma.c
index 994fc4d2aca4..18f8154b859b 100644
--- a/drivers/dma/mxs-dma.c
+++ b/drivers/dma/mxs-dma.c
@@ -839,10 +839,6 @@ static struct platform_driver mxs_dma_driver = {
 		.name	= "mxs-dma",
 		.of_match_table = mxs_dma_dt_ids,
 	},
+	.probe = mxs_dma_probe,
 };
-
-static int __init mxs_dma_module_init(void)
-{
-	return platform_driver_probe(&mxs_dma_driver, mxs_dma_probe);
-}
-subsys_initcall(mxs_dma_module_init);
+builtin_platform_driver(mxs_dma_driver);
-- 
2.32.0


_______________________________________________
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

* [RESEND PATCH v5 2/2] dmaengine: mxs: fix section mismatch
  2022-09-04 14:10 [RESEND PATCH v5 1/2] dmaengine: mxs: use platform_driver_register Dario Binacchi
@ 2022-09-04 14:10 ` Dario Binacchi
  2022-09-21  9:35   ` Robin Murphy
  2022-09-13 16:35 ` [RESEND PATCH v5 1/2] dmaengine: mxs: use platform_driver_register Sascha Hauer
  1 sibling, 1 reply; 10+ messages in thread
From: Dario Binacchi @ 2022-09-04 14:10 UTC (permalink / raw)
  To: linux-kernel
  Cc: linux-amarula, Michael Trimarchi, Dario Binacchi, stable,
	Fabio Estevam, NXP Linux Team, Pengutronix Kernel Team,
	Sascha Hauer, Shawn Guo, Vinod Koul, dmaengine, linux-arm-kernel

The patch was suggested by the following modpost warning:

WARNING: modpost: vmlinux.o(.data+0xa3900): Section mismatch in reference from the variable mxs_dma_driver to the function .init.text:mxs_dma_probe()
The variable mxs_dma_driver references
the function __init mxs_dma_probe()
If the reference is valid then annotate the
variable with __init* or __refdata (see linux/init.h) or name the variable:
*_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console

Co-developed-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
Cc: stable@vger.kernel.org
---

(no changes since v1)

 drivers/dma/mxs-dma.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/dma/mxs-dma.c b/drivers/dma/mxs-dma.c
index 18f8154b859b..a01953e06048 100644
--- a/drivers/dma/mxs-dma.c
+++ b/drivers/dma/mxs-dma.c
@@ -834,7 +834,7 @@ static int __init mxs_dma_probe(struct platform_device *pdev)
 	return 0;
 }
 
-static struct platform_driver mxs_dma_driver = {
+static struct platform_driver mxs_dma_driver __initdata = {
 	.driver		= {
 		.name	= "mxs-dma",
 		.of_match_table = mxs_dma_dt_ids,
-- 
2.32.0


_______________________________________________
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: [RESEND PATCH v5 1/2] dmaengine: mxs: use platform_driver_register
  2022-09-04 14:10 [RESEND PATCH v5 1/2] dmaengine: mxs: use platform_driver_register Dario Binacchi
  2022-09-04 14:10 ` [RESEND PATCH v5 2/2] dmaengine: mxs: fix section mismatch Dario Binacchi
@ 2022-09-13 16:35 ` Sascha Hauer
  2022-09-20 17:10   ` Dario Binacchi
  1 sibling, 1 reply; 10+ messages in thread
From: Sascha Hauer @ 2022-09-13 16:35 UTC (permalink / raw)
  To: Dario Binacchi
  Cc: linux-kernel, linux-amarula, Michael Trimarchi, stable,
	Fabio Estevam, NXP Linux Team, Pengutronix Kernel Team,
	Shawn Guo, Vinod Koul, dmaengine, linux-arm-kernel

Hi Dario,

On Sun, Sep 04, 2022 at 04:10:19PM +0200, Dario Binacchi wrote:
> Driver registration fails on SOC imx8mn as its supplier, the clock
> control module, is probed later than subsys initcall level. This driver
> uses platform_driver_probe which is not compatible with deferred probing
> and won't be probed again later if probe function fails due to clock not
> being available at that time.
> 
> This patch replaces the use of platform_driver_probe with
> platform_driver_register which will allow probing the driver later again
> when the clock control module will be available.
> 
> Fixes: a580b8c5429a ("dmaengine: mxs-dma: add dma support for i.MX23/28")
> Co-developed-by: Michael Trimarchi <michael@amarulasolutions.com>
> Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
> Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
> Cc: stable@vger.kernel.org

How I see it v3 of this patch is perfectly fine and should be taken
instead of this one. I just commented that to v3.

Not sure if Vinod would take v3, or if you should resend v3 as v6
instead. If you do, you can add my Acked-by.

Vinod, please let us know what you prefer.

Sascha

> 
> ---
> 
> Changes in v5:
> - Update the commit message.
> - Add the patch "dmaengine: mxs: fix section mismatch" to remove the
>   warning raised by this patch.
> 
> Changes in v4:
> - Restore __init in front of mxs_dma_probe() definition.
> - Rename the mxs_dma_driver variable to mxs_dma_driver_probe.
> - Update the commit message.
> - Use builtin_platform_driver() instead of module_platform_driver().
> 
> Changes in v3:
> - Restore __init in front of mxs_dma_init() definition.
> 
> Changes in v2:
> - Add the tag "Cc: stable@vger.kernel.org" in the sign-off area.
> 
>  drivers/dma/mxs-dma.c | 8 ++------
>  1 file changed, 2 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/dma/mxs-dma.c b/drivers/dma/mxs-dma.c
> index 994fc4d2aca4..18f8154b859b 100644
> --- a/drivers/dma/mxs-dma.c
> +++ b/drivers/dma/mxs-dma.c
> @@ -839,10 +839,6 @@ static struct platform_driver mxs_dma_driver = {
>  		.name	= "mxs-dma",
>  		.of_match_table = mxs_dma_dt_ids,
>  	},
> +	.probe = mxs_dma_probe,
>  };
> -
> -static int __init mxs_dma_module_init(void)
> -{
> -	return platform_driver_probe(&mxs_dma_driver, mxs_dma_probe);
> -}
> -subsys_initcall(mxs_dma_module_init);
> +builtin_platform_driver(mxs_dma_driver);
> -- 
> 2.32.0
> 
> 

-- 
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: [RESEND PATCH v5 1/2] dmaengine: mxs: use platform_driver_register
  2022-09-13 16:35 ` [RESEND PATCH v5 1/2] dmaengine: mxs: use platform_driver_register Sascha Hauer
@ 2022-09-20 17:10   ` Dario Binacchi
  2022-09-21  3:23     ` Vinod Koul
  0 siblings, 1 reply; 10+ messages in thread
From: Dario Binacchi @ 2022-09-20 17:10 UTC (permalink / raw)
  To: Vinod Koul
  Cc: linux-kernel, linux-amarula, Michael Trimarchi, stable,
	Fabio Estevam, NXP Linux Team, Pengutronix Kernel Team,
	Shawn Guo, dmaengine, linux-arm-kernel, Sascha Hauer

Hi Vinoud,

On Tue, Sep 13, 2022 at 6:35 PM Sascha Hauer <s.hauer@pengutronix.de> wrote:
>
> Hi Dario,
>
> On Sun, Sep 04, 2022 at 04:10:19PM +0200, Dario Binacchi wrote:
> > Driver registration fails on SOC imx8mn as its supplier, the clock
> > control module, is probed later than subsys initcall level. This driver
> > uses platform_driver_probe which is not compatible with deferred probing
> > and won't be probed again later if probe function fails due to clock not
> > being available at that time.
> >
> > This patch replaces the use of platform_driver_probe with
> > platform_driver_register which will allow probing the driver later again
> > when the clock control module will be available.
> >
> > Fixes: a580b8c5429a ("dmaengine: mxs-dma: add dma support for i.MX23/28")
> > Co-developed-by: Michael Trimarchi <michael@amarulasolutions.com>
> > Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
> > Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
> > Cc: stable@vger.kernel.org
>
> How I see it v3 of this patch is perfectly fine and should be taken
> instead of this one. I just commented that to v3.
>
> Not sure if Vinod would take v3, or if you should resend v3 as v6
> instead. If you do, you can add my Acked-by.
>
> Vinod, please let us know what you prefer.

Could you please let me know how to proceed? This patch has been pending for
a while and it's a real shame as the change is minimal and fixes a
real issue that is
still present in the mainline and stable kernels.

Thanks and regards,
Dario

>
> Sascha
>
> >
> > ---
> >
> > Changes in v5:
> > - Update the commit message.
> > - Add the patch "dmaengine: mxs: fix section mismatch" to remove the
> >   warning raised by this patch.
> >
> > Changes in v4:
> > - Restore __init in front of mxs_dma_probe() definition.
> > - Rename the mxs_dma_driver variable to mxs_dma_driver_probe.
> > - Update the commit message.
> > - Use builtin_platform_driver() instead of module_platform_driver().
> >
> > Changes in v3:
> > - Restore __init in front of mxs_dma_init() definition.
> >
> > Changes in v2:
> > - Add the tag "Cc: stable@vger.kernel.org" in the sign-off area.
> >
> >  drivers/dma/mxs-dma.c | 8 ++------
> >  1 file changed, 2 insertions(+), 6 deletions(-)
> >
> > diff --git a/drivers/dma/mxs-dma.c b/drivers/dma/mxs-dma.c
> > index 994fc4d2aca4..18f8154b859b 100644
> > --- a/drivers/dma/mxs-dma.c
> > +++ b/drivers/dma/mxs-dma.c
> > @@ -839,10 +839,6 @@ static struct platform_driver mxs_dma_driver = {
> >               .name   = "mxs-dma",
> >               .of_match_table = mxs_dma_dt_ids,
> >       },
> > +     .probe = mxs_dma_probe,
> >  };
> > -
> > -static int __init mxs_dma_module_init(void)
> > -{
> > -     return platform_driver_probe(&mxs_dma_driver, mxs_dma_probe);
> > -}
> > -subsys_initcall(mxs_dma_module_init);
> > +builtin_platform_driver(mxs_dma_driver);
> > --
> > 2.32.0
> >
> >
>
> --
> 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 |



-- 

Dario Binacchi

Embedded Linux Developer

dario.binacchi@amarulasolutions.com

__________________________________


Amarula Solutions SRL

Via Le Canevare 30, 31100 Treviso, Veneto, IT

T. +39 042 243 5310
info@amarulasolutions.com

www.amarulasolutions.com

_______________________________________________
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: [RESEND PATCH v5 1/2] dmaengine: mxs: use platform_driver_register
  2022-09-20 17:10   ` Dario Binacchi
@ 2022-09-21  3:23     ` Vinod Koul
  2022-09-21 10:39       ` Sascha Hauer
  0 siblings, 1 reply; 10+ messages in thread
From: Vinod Koul @ 2022-09-21  3:23 UTC (permalink / raw)
  To: Dario Binacchi
  Cc: linux-kernel, linux-amarula, Michael Trimarchi, stable,
	Fabio Estevam, NXP Linux Team, Pengutronix Kernel Team,
	Shawn Guo, dmaengine, linux-arm-kernel, Sascha Hauer

On 20-09-22, 19:10, Dario Binacchi wrote:
> Hi Vinoud,
> 
> On Tue, Sep 13, 2022 at 6:35 PM Sascha Hauer <s.hauer@pengutronix.de> wrote:
> >
> > Hi Dario,
> >
> > On Sun, Sep 04, 2022 at 04:10:19PM +0200, Dario Binacchi wrote:
> > > Driver registration fails on SOC imx8mn as its supplier, the clock
> > > control module, is probed later than subsys initcall level. This driver
> > > uses platform_driver_probe which is not compatible with deferred probing
> > > and won't be probed again later if probe function fails due to clock not
> > > being available at that time.
> > >
> > > This patch replaces the use of platform_driver_probe with
> > > platform_driver_register which will allow probing the driver later again
> > > when the clock control module will be available.
> > >
> > > Fixes: a580b8c5429a ("dmaengine: mxs-dma: add dma support for i.MX23/28")
> > > Co-developed-by: Michael Trimarchi <michael@amarulasolutions.com>
> > > Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
> > > Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
> > > Cc: stable@vger.kernel.org
> >
> > How I see it v3 of this patch is perfectly fine and should be taken
> > instead of this one. I just commented that to v3.
> >
> > Not sure if Vinod would take v3, or if you should resend v3 as v6
> > instead. If you do, you can add my Acked-by.
> >
> > Vinod, please let us know what you prefer.
> 
> Could you please let me know how to proceed? This patch has been pending for
> a while and it's a real shame as the change is minimal and fixes a
> real issue that is
> still present in the mainline and stable kernels.

Ooops, Somehow this seems to have really slipped. Sorry I owe you an
apology for this

I am still not sure of this patch yet, lets get it right and merged
quickly. I will send my review later today

-- 
~Vinod

_______________________________________________
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: [RESEND PATCH v5 2/2] dmaengine: mxs: fix section mismatch
  2022-09-04 14:10 ` [RESEND PATCH v5 2/2] dmaengine: mxs: fix section mismatch Dario Binacchi
@ 2022-09-21  9:35   ` Robin Murphy
  0 siblings, 0 replies; 10+ messages in thread
From: Robin Murphy @ 2022-09-21  9:35 UTC (permalink / raw)
  To: Dario Binacchi, linux-kernel
  Cc: linux-amarula, Michael Trimarchi, stable, Fabio Estevam,
	NXP Linux Team, Pengutronix Kernel Team, Sascha Hauer, Shawn Guo,
	Vinod Koul, dmaengine, linux-arm-kernel

On 2022-09-04 15:10, Dario Binacchi wrote:
> The patch was suggested by the following modpost warning:
> 
> WARNING: modpost: vmlinux.o(.data+0xa3900): Section mismatch in reference from the variable mxs_dma_driver to the function .init.text:mxs_dma_probe()
> The variable mxs_dma_driver references
> the function __init mxs_dma_probe()
> If the reference is valid then annotate the
> variable with __init* or __refdata (see linux/init.h) or name the variable:
> *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console

This is very wrong - even *with* platform_driver_probe(), the driver may 
remain registered beyond init, so when the driver core walks the list 
trying to match a driver for some other device later it can access freed 
data and crash. Which is absolutely no fun to debug...

The correct fix is to remove the __init annotation from the probe 
routine. If you want to support deferred probe, consider that even your 
own probe call might potentially be delayed until after initdata is freed.

Thanks,
Robin.

> Co-developed-by: Michael Trimarchi <michael@amarulasolutions.com>
> Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
> Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
> Cc: stable@vger.kernel.org
> ---
> 
> (no changes since v1)
> 
>   drivers/dma/mxs-dma.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/dma/mxs-dma.c b/drivers/dma/mxs-dma.c
> index 18f8154b859b..a01953e06048 100644
> --- a/drivers/dma/mxs-dma.c
> +++ b/drivers/dma/mxs-dma.c
> @@ -834,7 +834,7 @@ static int __init mxs_dma_probe(struct platform_device *pdev)
>   	return 0;
>   }
>   
> -static struct platform_driver mxs_dma_driver = {
> +static struct platform_driver mxs_dma_driver __initdata = {
>   	.driver		= {
>   		.name	= "mxs-dma",
>   		.of_match_table = mxs_dma_dt_ids,

_______________________________________________
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: [RESEND PATCH v5 1/2] dmaengine: mxs: use platform_driver_register
  2022-09-21  3:23     ` Vinod Koul
@ 2022-09-21 10:39       ` Sascha Hauer
  2022-09-21 12:50         ` Vinod Koul
  0 siblings, 1 reply; 10+ messages in thread
From: Sascha Hauer @ 2022-09-21 10:39 UTC (permalink / raw)
  To: Vinod Koul
  Cc: Dario Binacchi, linux-kernel, linux-amarula, Michael Trimarchi,
	stable, Fabio Estevam, NXP Linux Team, Pengutronix Kernel Team,
	Shawn Guo, dmaengine, linux-arm-kernel

On Wed, Sep 21, 2022 at 08:53:23AM +0530, Vinod Koul wrote:
> On 20-09-22, 19:10, Dario Binacchi wrote:
> > Hi Vinoud,
> > 
> > On Tue, Sep 13, 2022 at 6:35 PM Sascha Hauer <s.hauer@pengutronix.de> wrote:
> > >
> > > Hi Dario,
> > >
> > > On Sun, Sep 04, 2022 at 04:10:19PM +0200, Dario Binacchi wrote:
> > > > Driver registration fails on SOC imx8mn as its supplier, the clock
> > > > control module, is probed later than subsys initcall level. This driver
> > > > uses platform_driver_probe which is not compatible with deferred probing
> > > > and won't be probed again later if probe function fails due to clock not
> > > > being available at that time.
> > > >
> > > > This patch replaces the use of platform_driver_probe with
> > > > platform_driver_register which will allow probing the driver later again
> > > > when the clock control module will be available.
> > > >
> > > > Fixes: a580b8c5429a ("dmaengine: mxs-dma: add dma support for i.MX23/28")
> > > > Co-developed-by: Michael Trimarchi <michael@amarulasolutions.com>
> > > > Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
> > > > Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
> > > > Cc: stable@vger.kernel.org
> > >
> > > How I see it v3 of this patch is perfectly fine and should be taken
> > > instead of this one. I just commented that to v3.
> > >
> > > Not sure if Vinod would take v3, or if you should resend v3 as v6
> > > instead. If you do, you can add my Acked-by.
> > >
> > > Vinod, please let us know what you prefer.
> > 
> > Could you please let me know how to proceed? This patch has been pending for
> > a while and it's a real shame as the change is minimal and fixes a
> > real issue that is
> > still present in the mainline and stable kernels.
> 
> Ooops, Somehow this seems to have really slipped. Sorry I owe you an
> apology for this
> 
> I am still not sure of this patch yet, lets get it right and merged
> quickly. I will send my review later today

I just realized that unlike what I said v3 of this patch is still wrong
as it leaves the __init annotation on mxs_dma_init() which is called
from (non __init) mxs_dma_probe(). v3 probably doesn't give a section
mismatch warning because mxs_dma_init() is inlined.

Really v2 is the one we should take which is at:

https://lore.kernel.org/linux-arm-kernel/20220523132247.1429321-1-dario.binacchi@amarulasolutions.com/T/

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: [RESEND PATCH v5 1/2] dmaengine: mxs: use platform_driver_register
  2022-09-21 10:39       ` Sascha Hauer
@ 2022-09-21 12:50         ` Vinod Koul
  0 siblings, 0 replies; 10+ messages in thread
From: Vinod Koul @ 2022-09-21 12:50 UTC (permalink / raw)
  To: Sascha Hauer
  Cc: Dario Binacchi, linux-kernel, linux-amarula, Michael Trimarchi,
	stable, Fabio Estevam, NXP Linux Team, Pengutronix Kernel Team,
	Shawn Guo, dmaengine, linux-arm-kernel

On 21-09-22, 12:39, Sascha Hauer wrote:
> On Wed, Sep 21, 2022 at 08:53:23AM +0530, Vinod Koul wrote:
> > On 20-09-22, 19:10, Dario Binacchi wrote:

> > > > How I see it v3 of this patch is perfectly fine and should be taken
> > > > instead of this one. I just commented that to v3.
> > > >
> > > > Not sure if Vinod would take v3, or if you should resend v3 as v6
> > > > instead. If you do, you can add my Acked-by.
> > > >
> > > > Vinod, please let us know what you prefer.
> > > 
> > > Could you please let me know how to proceed? This patch has been pending for
> > > a while and it's a real shame as the change is minimal and fixes a
> > > real issue that is
> > > still present in the mainline and stable kernels.
> > 
> > Ooops, Somehow this seems to have really slipped. Sorry I owe you an
> > apology for this
> > 
> > I am still not sure of this patch yet, lets get it right and merged
> > quickly. I will send my review later today
> 
> I just realized that unlike what I said v3 of this patch is still wrong
> as it leaves the __init annotation on mxs_dma_init() which is called
> from (non __init) mxs_dma_probe(). v3 probably doesn't give a section
> mismatch warning because mxs_dma_init() is inlined.
> 
> Really v2 is the one we should take which is at:

hmmm, looking at the old revs, that does look sane. My question was why
__init change is there, it needs to be documented and if there are two
different reasons, add that

I agree rev 2 is the right things to do and changelog needs to add why
we dropped __init (i dont think this should be a different patchset as
that leads to warnings ...

> https://lore.kernel.org/linux-arm-kernel/20220523132247.1429321-1-dario.binacchi@amarulasolutions.com/T/

-- 
~Vinod

_______________________________________________
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

* [RESEND PATCH v5 1/2] dmaengine: mxs: use platform_driver_register
@ 2022-08-20  8:44 Dario Binacchi
  0 siblings, 0 replies; 10+ messages in thread
From: Dario Binacchi @ 2022-08-20  8:44 UTC (permalink / raw)
  To: linux-kernel
  Cc: linux-amarula, Michael Trimarchi, Dario Binacchi, stable,
	Fabio Estevam, NXP Linux Team, Pengutronix Kernel Team,
	Sascha Hauer, Shawn Guo, Vinod Koul, dmaengine, linux-arm-kernel

Driver registration fails on SOC imx8mn as its supplier, the clock
control module, is probed later than subsys initcall level. This driver
uses platform_driver_probe which is not compatible with deferred probing
and won't be probed again later if probe function fails due to clock not
being available at that time.

This patch replaces the use of platform_driver_probe with
platform_driver_register which will allow probing the driver later again
when the clock control module will be available.

Fixes: a580b8c5429a ("dmaengine: mxs-dma: add dma support for i.MX23/28")
Co-developed-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
Cc: stable@vger.kernel.org

---

Changes in v5:
- Update the commit message.
- Add the patch "dmaengine: mxs: fix section mismatch" to remove the
  warning raised by this patch.

Changes in v4:
- Restore __init in front of mxs_dma_probe() definition.
- Rename the mxs_dma_driver variable to mxs_dma_driver_probe.
- Update the commit message.
- Use builtin_platform_driver() instead of module_platform_driver().

Changes in v3:
- Restore __init in front of mxs_dma_init() definition.

Changes in v2:
- Add the tag "Cc: stable@vger.kernel.org" in the sign-off area.

 drivers/dma/mxs-dma.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/drivers/dma/mxs-dma.c b/drivers/dma/mxs-dma.c
index 994fc4d2aca4..18f8154b859b 100644
--- a/drivers/dma/mxs-dma.c
+++ b/drivers/dma/mxs-dma.c
@@ -839,10 +839,6 @@ static struct platform_driver mxs_dma_driver = {
 		.name	= "mxs-dma",
 		.of_match_table = mxs_dma_dt_ids,
 	},
+	.probe = mxs_dma_probe,
 };
-
-static int __init mxs_dma_module_init(void)
-{
-	return platform_driver_probe(&mxs_dma_driver, mxs_dma_probe);
-}
-subsys_initcall(mxs_dma_module_init);
+builtin_platform_driver(mxs_dma_driver);
-- 
2.32.0


_______________________________________________
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

* [RESEND PATCH v5 1/2] dmaengine: mxs: use platform_driver_register
@ 2022-07-28  6:18 Dario Binacchi
  0 siblings, 0 replies; 10+ messages in thread
From: Dario Binacchi @ 2022-07-28  6:18 UTC (permalink / raw)
  To: linux-kernel
  Cc: Michael Trimarchi, linux-amarula, Dario Binacchi, stable,
	Fabio Estevam, NXP Linux Team, Pengutronix Kernel Team,
	Sascha Hauer, Shawn Guo, Vinod Koul, dmaengine, linux-arm-kernel

Driver registration fails on SOC imx8mn as its supplier, the clock
control module, is probed later than subsys initcall level. This driver
uses platform_driver_probe which is not compatible with deferred probing
and won't be probed again later if probe function fails due to clock not
being available at that time.

This patch replaces the use of platform_driver_probe with
platform_driver_register which will allow probing the driver later again
when the clock control module will be available.

Fixes: a580b8c5429a ("dmaengine: mxs-dma: add dma support for i.MX23/28")
Co-developed-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
Cc: stable@vger.kernel.org

---

Changes in v5:
- Update the commit message.
- Add the patch "dmaengine: mxs: fix section mismatch" to remove the
  warning raised by this patch.

Changes in v4:
- Restore __init in front of mxs_dma_probe() definition.
- Rename the mxs_dma_driver variable to mxs_dma_driver_probe.
- Update the commit message.
- Use builtin_platform_driver() instead of module_platform_driver().

Changes in v3:
- Restore __init in front of mxs_dma_init() definition.

Changes in v2:
- Add the tag "Cc: stable@vger.kernel.org" in the sign-off area.

 drivers/dma/mxs-dma.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/drivers/dma/mxs-dma.c b/drivers/dma/mxs-dma.c
index 994fc4d2aca4..18f8154b859b 100644
--- a/drivers/dma/mxs-dma.c
+++ b/drivers/dma/mxs-dma.c
@@ -839,10 +839,6 @@ static struct platform_driver mxs_dma_driver = {
 		.name	= "mxs-dma",
 		.of_match_table = mxs_dma_dt_ids,
 	},
+	.probe = mxs_dma_probe,
 };
-
-static int __init mxs_dma_module_init(void)
-{
-	return platform_driver_probe(&mxs_dma_driver, mxs_dma_probe);
-}
-subsys_initcall(mxs_dma_module_init);
+builtin_platform_driver(mxs_dma_driver);
-- 
2.32.0


_______________________________________________
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

end of thread, other threads:[~2022-09-21 12:51 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-04 14:10 [RESEND PATCH v5 1/2] dmaengine: mxs: use platform_driver_register Dario Binacchi
2022-09-04 14:10 ` [RESEND PATCH v5 2/2] dmaengine: mxs: fix section mismatch Dario Binacchi
2022-09-21  9:35   ` Robin Murphy
2022-09-13 16:35 ` [RESEND PATCH v5 1/2] dmaengine: mxs: use platform_driver_register Sascha Hauer
2022-09-20 17:10   ` Dario Binacchi
2022-09-21  3:23     ` Vinod Koul
2022-09-21 10:39       ` Sascha Hauer
2022-09-21 12:50         ` Vinod Koul
  -- strict thread matches above, loose matches on Subject: below --
2022-08-20  8:44 Dario Binacchi
2022-07-28  6:18 Dario Binacchi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).