public inbox for linux-aspeed@lists.ozlabs.org
 help / color / mirror / Atom feed
* [PATCH 00/14] mtd: Fix platform remove callbacks to always return 0
@ 2022-06-03 21:07 Uwe Kleine-König
  2022-06-03 21:07 ` [PATCH 02/14] mtd: spi-nor: aspeed-smc: Make aspeed_smc_unregister() return void Uwe Kleine-König
  2022-06-06 13:18 ` [PATCH 00/14] mtd: Fix platform remove callbacks to always return 0 Miquel Raynal
  0 siblings, 2 replies; 7+ messages in thread
From: Uwe Kleine-König @ 2022-06-03 21:07 UTC (permalink / raw)
  To: linux-aspeed

Hello,

this series prepares to make platform remove callbacks return void.
Therefor first update them to always return 0. The rationale is that the
Linux device model doesn't handle failures on remove and if a remove
callback returns an error, it just emits a quite generic error message
and still removes the device.

Best regards
Uwe

Uwe Kleine-K?nig (14):
  mtd: hyperbus: Make hyperbus_unregister_device() return void
  mtd: spi-nor: aspeed-smc: Make aspeed_smc_unregister() return void
  mtd: powernv_flash: Warn about failure to unregister mtd device
  mtd: st-spi_fsm: Warn about failure to unregister mtd device
  mtd: lpddr2_nvm: Warn about failure to unregister mtd device
  mtd: spear_smi: Don't skip cleanup after mtd_device_unregister()
    failed
  mtd: spear_smi: Drop if with an always false condition
  mtd: rawnand: atmel: Warn about failure to unregister mtd device
  mtd: rawnand: omap2: Suppress error message after WARN in .remove()
  mtd: rawnand: tegra: Don't skip cleanup after mtd_device_unregister()
    failed
  mtd: rawnand: meson: Don't skip cleanup after mtd_device_unregister()
    failed
  mtd: rawnand: meson: Drop cleaning platform data in .remove()
  mtd: physmap: Don't skip cleanup after mtd_device_unregister() failed
  mtd: physmap: Drop if with an always false condition

 drivers/mtd/devices/powernv_flash.c          |  4 +++-
 drivers/mtd/devices/spear_smi.c              | 10 ++--------
 drivers/mtd/devices/st_spi_fsm.c             |  4 +++-
 drivers/mtd/hyperbus/hbmc-am654.c            |  6 +++---
 drivers/mtd/hyperbus/hyperbus-core.c         |  8 ++------
 drivers/mtd/hyperbus/rpc-if.c                |  5 +++--
 drivers/mtd/lpddr/lpddr2_nvm.c               |  4 +++-
 drivers/mtd/maps/physmap-core.c              | 13 +++----------
 drivers/mtd/nand/raw/atmel/nand-controller.c |  5 ++++-
 drivers/mtd/nand/raw/meson_nand.c            | 16 +++-------------
 drivers/mtd/nand/raw/omap2.c                 |  6 ++----
 drivers/mtd/nand/raw/tegra_nand.c            |  5 +----
 drivers/mtd/spi-nor/controllers/aspeed-smc.c |  8 ++++----
 include/linux/mtd/hyperbus.h                 |  4 +---
 14 files changed, 37 insertions(+), 61 deletions(-)

base-commit: 4b0986a3613c92f4ec1bdc7f60ec66fea135991f
-- 
2.36.1


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

* [PATCH 02/14] mtd: spi-nor: aspeed-smc: Make aspeed_smc_unregister() return void
  2022-06-03 21:07 [PATCH 00/14] mtd: Fix platform remove callbacks to always return 0 Uwe Kleine-König
@ 2022-06-03 21:07 ` Uwe Kleine-König
  2022-06-07  9:28   ` Pratyush Yadav
  2022-06-06 13:18 ` [PATCH 00/14] mtd: Fix platform remove callbacks to always return 0 Miquel Raynal
  1 sibling, 1 reply; 7+ messages in thread
From: Uwe Kleine-König @ 2022-06-03 21:07 UTC (permalink / raw)
  To: linux-aspeed

The function returns zero unconditionally, so simplify to make it
obvious there is no error to handle in the callers.

This is a preparation for making platform remove callbacks return void.

Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
---
 drivers/mtd/spi-nor/controllers/aspeed-smc.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/mtd/spi-nor/controllers/aspeed-smc.c b/drivers/mtd/spi-nor/controllers/aspeed-smc.c
index acfe010f9dd7..bd149104533a 100644
--- a/drivers/mtd/spi-nor/controllers/aspeed-smc.c
+++ b/drivers/mtd/spi-nor/controllers/aspeed-smc.c
@@ -399,7 +399,7 @@ static ssize_t aspeed_smc_write_user(struct spi_nor *nor, loff_t to,
 	return len;
 }
 
-static int aspeed_smc_unregister(struct aspeed_smc_controller *controller)
+static void aspeed_smc_unregister(struct aspeed_smc_controller *controller)
 {
 	struct aspeed_smc_chip *chip;
 	int n;
@@ -409,13 +409,13 @@ static int aspeed_smc_unregister(struct aspeed_smc_controller *controller)
 		if (chip)
 			mtd_device_unregister(&chip->nor.mtd);
 	}
-
-	return 0;
 }
 
 static int aspeed_smc_remove(struct platform_device *dev)
 {
-	return aspeed_smc_unregister(platform_get_drvdata(dev));
+	aspeed_smc_unregister(platform_get_drvdata(dev));
+
+	return 0;
 }
 
 static const struct of_device_id aspeed_smc_matches[] = {
-- 
2.36.1


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

* [PATCH 00/14] mtd: Fix platform remove callbacks to always return 0
  2022-06-03 21:07 [PATCH 00/14] mtd: Fix platform remove callbacks to always return 0 Uwe Kleine-König
  2022-06-03 21:07 ` [PATCH 02/14] mtd: spi-nor: aspeed-smc: Make aspeed_smc_unregister() return void Uwe Kleine-König
@ 2022-06-06 13:18 ` Miquel Raynal
  2022-06-07  9:32   ` Pratyush Yadav
  1 sibling, 1 reply; 7+ messages in thread
From: Miquel Raynal @ 2022-06-06 13:18 UTC (permalink / raw)
  To: linux-aspeed

Hi Folks,

u.kleine-koenig at pengutronix.de wrote on Fri,  3 Jun 2022 23:07:44 +0200:

> Hello,
> 
> this series prepares to make platform remove callbacks return void.
> Therefor first update them to always return 0. The rationale is that the
> Linux device model doesn't handle failures on remove and if a remove
> callback returns an error, it just emits a quite generic error message
> and still removes the device.

Tudor, Pratyush, Richard, Vignesh,

The series looks good to me (besides the atmel patch), I think it's
best to take it directly through mtd/next instead of going through all
the different internal branches, please let me know if you disagree
with the idea.

Cheers,
Miqu?l

> 
> Best regards
> Uwe
> 
> Uwe Kleine-K?nig (14):
>   mtd: hyperbus: Make hyperbus_unregister_device() return void
>   mtd: spi-nor: aspeed-smc: Make aspeed_smc_unregister() return void
>   mtd: powernv_flash: Warn about failure to unregister mtd device
>   mtd: st-spi_fsm: Warn about failure to unregister mtd device
>   mtd: lpddr2_nvm: Warn about failure to unregister mtd device
>   mtd: spear_smi: Don't skip cleanup after mtd_device_unregister()
>     failed
>   mtd: spear_smi: Drop if with an always false condition
>   mtd: rawnand: atmel: Warn about failure to unregister mtd device
>   mtd: rawnand: omap2: Suppress error message after WARN in .remove()
>   mtd: rawnand: tegra: Don't skip cleanup after mtd_device_unregister()
>     failed
>   mtd: rawnand: meson: Don't skip cleanup after mtd_device_unregister()
>     failed
>   mtd: rawnand: meson: Drop cleaning platform data in .remove()
>   mtd: physmap: Don't skip cleanup after mtd_device_unregister() failed
>   mtd: physmap: Drop if with an always false condition
> 
>  drivers/mtd/devices/powernv_flash.c          |  4 +++-
>  drivers/mtd/devices/spear_smi.c              | 10 ++--------
>  drivers/mtd/devices/st_spi_fsm.c             |  4 +++-
>  drivers/mtd/hyperbus/hbmc-am654.c            |  6 +++---
>  drivers/mtd/hyperbus/hyperbus-core.c         |  8 ++------
>  drivers/mtd/hyperbus/rpc-if.c                |  5 +++--
>  drivers/mtd/lpddr/lpddr2_nvm.c               |  4 +++-
>  drivers/mtd/maps/physmap-core.c              | 13 +++----------
>  drivers/mtd/nand/raw/atmel/nand-controller.c |  5 ++++-
>  drivers/mtd/nand/raw/meson_nand.c            | 16 +++-------------
>  drivers/mtd/nand/raw/omap2.c                 |  6 ++----
>  drivers/mtd/nand/raw/tegra_nand.c            |  5 +----
>  drivers/mtd/spi-nor/controllers/aspeed-smc.c |  8 ++++----
>  include/linux/mtd/hyperbus.h                 |  4 +---
>  14 files changed, 37 insertions(+), 61 deletions(-)
> 
> base-commit: 4b0986a3613c92f4ec1bdc7f60ec66fea135991f


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

* [PATCH 02/14] mtd: spi-nor: aspeed-smc: Make aspeed_smc_unregister() return void
  2022-06-03 21:07 ` [PATCH 02/14] mtd: spi-nor: aspeed-smc: Make aspeed_smc_unregister() return void Uwe Kleine-König
@ 2022-06-07  9:28   ` Pratyush Yadav
  2022-06-07  9:54     ` Cédric Le Goater
  0 siblings, 1 reply; 7+ messages in thread
From: Pratyush Yadav @ 2022-06-07  9:28 UTC (permalink / raw)
  To: linux-aspeed

Hi Uwe,

On 03/06/22 11:07PM, Uwe Kleine-K?nig wrote:
> The function returns zero unconditionally, so simplify to make it
> obvious there is no error to handle in the callers.
> 
> This is a preparation for making platform remove callbacks return void.

Cedric recently ported the driver to SPI MEM and it has now hit the 
linux-next tree [0]. This driver is planned to be removed. Can you 
please check if the new driver has this issue, and fix it there?

[0] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit?id=9c63b846e6df43e5b3d31263f7db545f32deeda3

> 
> Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
> ---
>  drivers/mtd/spi-nor/controllers/aspeed-smc.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/mtd/spi-nor/controllers/aspeed-smc.c b/drivers/mtd/spi-nor/controllers/aspeed-smc.c
> index acfe010f9dd7..bd149104533a 100644
> --- a/drivers/mtd/spi-nor/controllers/aspeed-smc.c
> +++ b/drivers/mtd/spi-nor/controllers/aspeed-smc.c
> @@ -399,7 +399,7 @@ static ssize_t aspeed_smc_write_user(struct spi_nor *nor, loff_t to,
>  	return len;
>  }
>  
> -static int aspeed_smc_unregister(struct aspeed_smc_controller *controller)
> +static void aspeed_smc_unregister(struct aspeed_smc_controller *controller)
>  {
>  	struct aspeed_smc_chip *chip;
>  	int n;
> @@ -409,13 +409,13 @@ static int aspeed_smc_unregister(struct aspeed_smc_controller *controller)
>  		if (chip)
>  			mtd_device_unregister(&chip->nor.mtd);
>  	}
> -
> -	return 0;
>  }
>  
>  static int aspeed_smc_remove(struct platform_device *dev)
>  {
> -	return aspeed_smc_unregister(platform_get_drvdata(dev));
> +	aspeed_smc_unregister(platform_get_drvdata(dev));
> +
> +	return 0;
>  }
>  
>  static const struct of_device_id aspeed_smc_matches[] = {
> -- 
> 2.36.1
> 

-- 
Regards,
Pratyush Yadav
Texas Instruments Inc.

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

* [PATCH 00/14] mtd: Fix platform remove callbacks to always return 0
  2022-06-06 13:18 ` [PATCH 00/14] mtd: Fix platform remove callbacks to always return 0 Miquel Raynal
@ 2022-06-07  9:32   ` Pratyush Yadav
  2022-06-07 10:47     ` Miquel Raynal
  0 siblings, 1 reply; 7+ messages in thread
From: Pratyush Yadav @ 2022-06-07  9:32 UTC (permalink / raw)
  To: linux-aspeed

Hi Miquel,

On 06/06/22 03:18PM, Miquel Raynal wrote:
> Hi Folks,
> 
> u.kleine-koenig at pengutronix.de wrote on Fri,  3 Jun 2022 23:07:44 +0200:
> 
> > Hello,
> > 
> > this series prepares to make platform remove callbacks return void.
> > Therefor first update them to always return 0. The rationale is that the
> > Linux device model doesn't handle failures on remove and if a remove
> > callback returns an error, it just emits a quite generic error message
> > and still removes the device.
> 
> Tudor, Pratyush, Richard, Vignesh,
> 
> The series looks good to me (besides the atmel patch), I think it's
> best to take it directly through mtd/next instead of going through all
> the different internal branches, please let me know if you disagree
> with the idea.

Patch 2 does not look good to me. It modifies the aspeed-smc driver in 
drivers/mtd/spi-nor/controllers/ but the driver has been moved to 
drivers/spi/ in Mark's next branch [0]. The patch would likely conflict 
with that.

[0] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit?id=9c63b846e6df43e5b3d31263f7db545f32deeda3

> 
> Cheers,
> Miqu?l
> 
> > 
> > Best regards
> > Uwe
> > 
> > Uwe Kleine-K?nig (14):
> >   mtd: hyperbus: Make hyperbus_unregister_device() return void
> >   mtd: spi-nor: aspeed-smc: Make aspeed_smc_unregister() return void
> >   mtd: powernv_flash: Warn about failure to unregister mtd device
> >   mtd: st-spi_fsm: Warn about failure to unregister mtd device
> >   mtd: lpddr2_nvm: Warn about failure to unregister mtd device
> >   mtd: spear_smi: Don't skip cleanup after mtd_device_unregister()
> >     failed
> >   mtd: spear_smi: Drop if with an always false condition
> >   mtd: rawnand: atmel: Warn about failure to unregister mtd device
> >   mtd: rawnand: omap2: Suppress error message after WARN in .remove()
> >   mtd: rawnand: tegra: Don't skip cleanup after mtd_device_unregister()
> >     failed
> >   mtd: rawnand: meson: Don't skip cleanup after mtd_device_unregister()
> >     failed
> >   mtd: rawnand: meson: Drop cleaning platform data in .remove()
> >   mtd: physmap: Don't skip cleanup after mtd_device_unregister() failed
> >   mtd: physmap: Drop if with an always false condition
> > 
> >  drivers/mtd/devices/powernv_flash.c          |  4 +++-
> >  drivers/mtd/devices/spear_smi.c              | 10 ++--------
> >  drivers/mtd/devices/st_spi_fsm.c             |  4 +++-
> >  drivers/mtd/hyperbus/hbmc-am654.c            |  6 +++---
> >  drivers/mtd/hyperbus/hyperbus-core.c         |  8 ++------
> >  drivers/mtd/hyperbus/rpc-if.c                |  5 +++--
> >  drivers/mtd/lpddr/lpddr2_nvm.c               |  4 +++-
> >  drivers/mtd/maps/physmap-core.c              | 13 +++----------
> >  drivers/mtd/nand/raw/atmel/nand-controller.c |  5 ++++-
> >  drivers/mtd/nand/raw/meson_nand.c            | 16 +++-------------
> >  drivers/mtd/nand/raw/omap2.c                 |  6 ++----
> >  drivers/mtd/nand/raw/tegra_nand.c            |  5 +----
> >  drivers/mtd/spi-nor/controllers/aspeed-smc.c |  8 ++++----
> >  include/linux/mtd/hyperbus.h                 |  4 +---
> >  14 files changed, 37 insertions(+), 61 deletions(-)
> > 
> > base-commit: 4b0986a3613c92f4ec1bdc7f60ec66fea135991f
> 

-- 
Regards,
Pratyush Yadav
Texas Instruments Inc.

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

* [PATCH 02/14] mtd: spi-nor: aspeed-smc: Make aspeed_smc_unregister() return void
  2022-06-07  9:28   ` Pratyush Yadav
@ 2022-06-07  9:54     ` Cédric Le Goater
  0 siblings, 0 replies; 7+ messages in thread
From: Cédric Le Goater @ 2022-06-07  9:54 UTC (permalink / raw)
  To: linux-aspeed

Hello,

On 6/7/22 11:28, Pratyush Yadav wrote:
> Hi Uwe,
> 
> On 03/06/22 11:07PM, Uwe Kleine-K?nig wrote:
>> The function returns zero unconditionally, so simplify to make it
>> obvious there is no error to handle in the callers.
>>
>> This is a preparation for making platform remove callbacks return void.
> 
> Cedric recently ported the driver to SPI MEM and it has now hit the
> linux-next tree [0]. This driver is planned to be removed. Can you
> please check if the new driver has this issue, and fix it there?
> 
> [0] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit?id=9c63b846e6df43e5b3d31263f7db545f32deeda3

It is merged in -rc1 now :

   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/spi/spi-aspeed-smc.c

I think aspeed_spi_remove() does what you want there.

Thanks,

C.


>>
>> Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
>> ---
>>   drivers/mtd/spi-nor/controllers/aspeed-smc.c | 8 ++++----
>>   1 file changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/mtd/spi-nor/controllers/aspeed-smc.c b/drivers/mtd/spi-nor/controllers/aspeed-smc.c
>> index acfe010f9dd7..bd149104533a 100644
>> --- a/drivers/mtd/spi-nor/controllers/aspeed-smc.c
>> +++ b/drivers/mtd/spi-nor/controllers/aspeed-smc.c
>> @@ -399,7 +399,7 @@ static ssize_t aspeed_smc_write_user(struct spi_nor *nor, loff_t to,
>>   	return len;
>>   }
>>   
>> -static int aspeed_smc_unregister(struct aspeed_smc_controller *controller)
>> +static void aspeed_smc_unregister(struct aspeed_smc_controller *controller)
>>   {
>>   	struct aspeed_smc_chip *chip;
>>   	int n;
>> @@ -409,13 +409,13 @@ static int aspeed_smc_unregister(struct aspeed_smc_controller *controller)
>>   		if (chip)
>>   			mtd_device_unregister(&chip->nor.mtd);
>>   	}
>> -
>> -	return 0;
>>   }
>>   
>>   static int aspeed_smc_remove(struct platform_device *dev)
>>   {
>> -	return aspeed_smc_unregister(platform_get_drvdata(dev));
>> +	aspeed_smc_unregister(platform_get_drvdata(dev));
>> +
>> +	return 0;
>>   }
>>   
>>   static const struct of_device_id aspeed_smc_matches[] = {
>> -- 
>> 2.36.1
>>
> 


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

* [PATCH 00/14] mtd: Fix platform remove callbacks to always return 0
  2022-06-07  9:32   ` Pratyush Yadav
@ 2022-06-07 10:47     ` Miquel Raynal
  0 siblings, 0 replies; 7+ messages in thread
From: Miquel Raynal @ 2022-06-07 10:47 UTC (permalink / raw)
  To: linux-aspeed

Hi Pratyush, Uwe,

p.yadav at ti.com wrote on Tue, 7 Jun 2022 15:02:36 +0530:

> Hi Miquel,
> 
> On 06/06/22 03:18PM, Miquel Raynal wrote:
> > Hi Folks,
> > 
> > u.kleine-koenig at pengutronix.de wrote on Fri,  3 Jun 2022 23:07:44 +0200:
> >   
> > > Hello,
> > > 
> > > this series prepares to make platform remove callbacks return void.
> > > Therefor first update them to always return 0. The rationale is that the
> > > Linux device model doesn't handle failures on remove and if a remove
> > > callback returns an error, it just emits a quite generic error message
> > > and still removes the device.  
> > 
> > Tudor, Pratyush, Richard, Vignesh,
> > 
> > The series looks good to me (besides the atmel patch), I think it's
> > best to take it directly through mtd/next instead of going through all
> > the different internal branches, please let me know if you disagree
> > with the idea.  
> 
> Patch 2 does not look good to me. It modifies the aspeed-smc driver in 
> drivers/mtd/spi-nor/controllers/ but the driver has been moved to 
> drivers/spi/ in Mark's next branch [0]. The patch would likely conflict 
> with that.
> 
> [0] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit?id=9c63b846e6df43e5b3d31263f7db545f32deeda3

Right, I believe Uwe is sending per-subsystems series so now that he is
aware we can safely drop patch 2.

Thanks,
Miqu?l

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

end of thread, other threads:[~2022-06-07 10:47 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-06-03 21:07 [PATCH 00/14] mtd: Fix platform remove callbacks to always return 0 Uwe Kleine-König
2022-06-03 21:07 ` [PATCH 02/14] mtd: spi-nor: aspeed-smc: Make aspeed_smc_unregister() return void Uwe Kleine-König
2022-06-07  9:28   ` Pratyush Yadav
2022-06-07  9:54     ` Cédric Le Goater
2022-06-06 13:18 ` [PATCH 00/14] mtd: Fix platform remove callbacks to always return 0 Miquel Raynal
2022-06-07  9:32   ` Pratyush Yadav
2022-06-07 10:47     ` Miquel Raynal

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox