[v2] powerpc: macio: Make remove callback of macio driver void returned

Message ID TYCP286MB2323FA245F0C35C5D7486CC9CAC09@TYCP286MB2323.JPNP286.PROD.OUTLOOK.COM
State New
Headers
Series [v2] powerpc: macio: Make remove callback of macio driver void returned |

Commit Message

Dawei Li Jan. 15, 2023, 1:17 p.m. UTC
  Commit fc7a6209d571 ("bus: Make remove callback return void") forces
bus_type::remove be void-returned, it doesn't make much sense for any
bus based driver implementing remove callbalk to return non-void to
its caller.

This change is for macio bus based drivers.

Signed-off-by: Dawei Li <set_pte_at@outlook.com>
---
v1 -> v2
- Revert unneeded changes.
- Rebased on latest powerpc/next.

v1
- https://lore.kernel.org/all/TYCP286MB2323FCDC7ECD87F8D97CB74BCA189@TYCP286MB2323.JPNP286.PROD.OUTLOOK.COM/
---
 arch/powerpc/include/asm/macio.h                | 2 +-
 drivers/ata/pata_macio.c                        | 4 +---
 drivers/macintosh/rack-meter.c                  | 4 +---
 drivers/net/ethernet/apple/bmac.c               | 4 +---
 drivers/net/ethernet/apple/mace.c               | 4 +---
 drivers/net/wireless/intersil/orinoco/airport.c | 4 +---
 drivers/scsi/mac53c94.c                         | 5 +----
 drivers/scsi/mesh.c                             | 5 +----
 drivers/tty/serial/pmac_zilog.c                 | 7 ++-----
 sound/aoa/soundbus/i2sbus/core.c                | 4 +---
 10 files changed, 11 insertions(+), 32 deletions(-)
  

Comments

Dawei Li Jan. 29, 2023, 12:52 p.m. UTC | #1
On Sun, Jan 15, 2023 at 09:17:23PM +0800, Dawei Li wrote:
> Commit fc7a6209d571 ("bus: Make remove callback return void") forces
> bus_type::remove be void-returned, it doesn't make much sense for any
> bus based driver implementing remove callbalk to return non-void to
> its caller.
> 
> This change is for macio bus based drivers.
> 
> Signed-off-by: Dawei Li <set_pte_at@outlook.com>

Gentle ping.

Thanks

> ---
> v1 -> v2
> - Revert unneeded changes.
> - Rebased on latest powerpc/next.
> 
> v1
> - https://lore.kernel.org/all/TYCP286MB2323FCDC7ECD87F8D97CB74BCA189@TYCP286MB2323.JPNP286.PROD.OUTLOOK.COM/
> ---
>  arch/powerpc/include/asm/macio.h                | 2 +-
>  drivers/ata/pata_macio.c                        | 4 +---
>  drivers/macintosh/rack-meter.c                  | 4 +---
>  drivers/net/ethernet/apple/bmac.c               | 4 +---
>  drivers/net/ethernet/apple/mace.c               | 4 +---
>  drivers/net/wireless/intersil/orinoco/airport.c | 4 +---
>  drivers/scsi/mac53c94.c                         | 5 +----
>  drivers/scsi/mesh.c                             | 5 +----
>  drivers/tty/serial/pmac_zilog.c                 | 7 ++-----
>  sound/aoa/soundbus/i2sbus/core.c                | 4 +---
>  10 files changed, 11 insertions(+), 32 deletions(-)
> 
> diff --git a/arch/powerpc/include/asm/macio.h b/arch/powerpc/include/asm/macio.h
> index ff5fd82d9ff0..cb9c386dacf8 100644
> --- a/arch/powerpc/include/asm/macio.h
> +++ b/arch/powerpc/include/asm/macio.h
> @@ -125,7 +125,7 @@ static inline struct pci_dev *macio_get_pci_dev(struct macio_dev *mdev)
>  struct macio_driver
>  {
>  	int	(*probe)(struct macio_dev* dev, const struct of_device_id *match);
> -	int	(*remove)(struct macio_dev* dev);
> +	void	(*remove)(struct macio_dev *dev);
>  
>  	int	(*suspend)(struct macio_dev* dev, pm_message_t state);
>  	int	(*resume)(struct macio_dev* dev);
> diff --git a/drivers/ata/pata_macio.c b/drivers/ata/pata_macio.c
> index 9ccaac9e2bc3..653106716a4b 100644
> --- a/drivers/ata/pata_macio.c
> +++ b/drivers/ata/pata_macio.c
> @@ -1187,7 +1187,7 @@ static int pata_macio_attach(struct macio_dev *mdev,
>  	return rc;
>  }
>  
> -static int pata_macio_detach(struct macio_dev *mdev)
> +static void pata_macio_detach(struct macio_dev *mdev)
>  {
>  	struct ata_host *host = macio_get_drvdata(mdev);
>  	struct pata_macio_priv *priv = host->private_data;
> @@ -1202,8 +1202,6 @@ static int pata_macio_detach(struct macio_dev *mdev)
>  	ata_host_detach(host);
>  
>  	unlock_media_bay(priv->mdev->media_bay);
> -
> -	return 0;
>  }
>  
>  #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/macintosh/rack-meter.c b/drivers/macintosh/rack-meter.c
> index c28893e41a8b..f2f83c4f3af5 100644
> --- a/drivers/macintosh/rack-meter.c
> +++ b/drivers/macintosh/rack-meter.c
> @@ -523,7 +523,7 @@ static int rackmeter_probe(struct macio_dev* mdev,
>  	return rc;
>  }
>  
> -static int rackmeter_remove(struct macio_dev* mdev)
> +static void rackmeter_remove(struct macio_dev *mdev)
>  {
>  	struct rackmeter *rm = dev_get_drvdata(&mdev->ofdev.dev);
>  
> @@ -558,8 +558,6 @@ static int rackmeter_remove(struct macio_dev* mdev)
>  
>  	/* Get rid of me */
>  	kfree(rm);
> -
> -	return 0;
>  }
>  
>  static int rackmeter_shutdown(struct macio_dev* mdev)
> diff --git a/drivers/net/ethernet/apple/bmac.c b/drivers/net/ethernet/apple/bmac.c
> index 9e653e2925f7..292b1f9cd9e7 100644
> --- a/drivers/net/ethernet/apple/bmac.c
> +++ b/drivers/net/ethernet/apple/bmac.c
> @@ -1591,7 +1591,7 @@ bmac_proc_info(char *buffer, char **start, off_t offset, int length)
>  }
>  #endif
>  
> -static int bmac_remove(struct macio_dev *mdev)
> +static void bmac_remove(struct macio_dev *mdev)
>  {
>  	struct net_device *dev = macio_get_drvdata(mdev);
>  	struct bmac_data *bp = netdev_priv(dev);
> @@ -1609,8 +1609,6 @@ static int bmac_remove(struct macio_dev *mdev)
>  	macio_release_resources(mdev);
>  
>  	free_netdev(dev);
> -
> -	return 0;
>  }
>  
>  static const struct of_device_id bmac_match[] =
> diff --git a/drivers/net/ethernet/apple/mace.c b/drivers/net/ethernet/apple/mace.c
> index fd1b008b7208..e6350971c707 100644
> --- a/drivers/net/ethernet/apple/mace.c
> +++ b/drivers/net/ethernet/apple/mace.c
> @@ -272,7 +272,7 @@ static int mace_probe(struct macio_dev *mdev, const struct of_device_id *match)
>  	return rc;
>  }
>  
> -static int mace_remove(struct macio_dev *mdev)
> +static void mace_remove(struct macio_dev *mdev)
>  {
>  	struct net_device *dev = macio_get_drvdata(mdev);
>  	struct mace_data *mp;
> @@ -296,8 +296,6 @@ static int mace_remove(struct macio_dev *mdev)
>  	free_netdev(dev);
>  
>  	macio_release_resources(mdev);
> -
> -	return 0;
>  }
>  
>  static void dbdma_reset(volatile struct dbdma_regs __iomem *dma)
> diff --git a/drivers/net/wireless/intersil/orinoco/airport.c b/drivers/net/wireless/intersil/orinoco/airport.c
> index a890bfa0d5cc..276a06cdd1f5 100644
> --- a/drivers/net/wireless/intersil/orinoco/airport.c
> +++ b/drivers/net/wireless/intersil/orinoco/airport.c
> @@ -85,7 +85,7 @@ airport_resume(struct macio_dev *mdev)
>  	return err;
>  }
>  
> -static int
> +static void
>  airport_detach(struct macio_dev *mdev)
>  {
>  	struct orinoco_private *priv = dev_get_drvdata(&mdev->ofdev.dev);
> @@ -111,8 +111,6 @@ airport_detach(struct macio_dev *mdev)
>  
>  	macio_set_drvdata(mdev, NULL);
>  	free_orinocodev(priv);
> -
> -	return 0;
>  }
>  
>  static int airport_hard_reset(struct orinoco_private *priv)
> diff --git a/drivers/scsi/mac53c94.c b/drivers/scsi/mac53c94.c
> index f75928f7773e..42648ca9b8ed 100644
> --- a/drivers/scsi/mac53c94.c
> +++ b/drivers/scsi/mac53c94.c
> @@ -508,7 +508,7 @@ static int mac53c94_probe(struct macio_dev *mdev, const struct of_device_id *mat
>  	return rc;
>  }
>  
> -static int mac53c94_remove(struct macio_dev *mdev)
> +static void mac53c94_remove(struct macio_dev *mdev)
>  {
>  	struct fsc_state *fp = (struct fsc_state *)macio_get_drvdata(mdev);
>  	struct Scsi_Host *host = fp->host;
> @@ -526,11 +526,8 @@ static int mac53c94_remove(struct macio_dev *mdev)
>  	scsi_host_put(host);
>  
>  	macio_release_resources(mdev);
> -
> -	return 0;
>  }
>  
> -
>  static struct of_device_id mac53c94_match[] = 
>  {
>  	{
> diff --git a/drivers/scsi/mesh.c b/drivers/scsi/mesh.c
> index 84b541a57b7b..cd2575b88c85 100644
> --- a/drivers/scsi/mesh.c
> +++ b/drivers/scsi/mesh.c
> @@ -1986,7 +1986,7 @@ static int mesh_probe(struct macio_dev *mdev, const struct of_device_id *match)
>  	return -ENODEV;
>  }
>  
> -static int mesh_remove(struct macio_dev *mdev)
> +static void mesh_remove(struct macio_dev *mdev)
>  {
>  	struct mesh_state *ms = (struct mesh_state *)macio_get_drvdata(mdev);
>  	struct Scsi_Host *mesh_host = ms->host;
> @@ -2013,11 +2013,8 @@ static int mesh_remove(struct macio_dev *mdev)
>  	macio_release_resources(mdev);
>  
>  	scsi_host_put(mesh_host);
> -
> -	return 0;
>  }
>  
> -
>  static struct of_device_id mesh_match[] = 
>  {
>  	{
> diff --git a/drivers/tty/serial/pmac_zilog.c b/drivers/tty/serial/pmac_zilog.c
> index 13668ffdb1e7..d4640479c338 100644
> --- a/drivers/tty/serial/pmac_zilog.c
> +++ b/drivers/tty/serial/pmac_zilog.c
> @@ -1507,12 +1507,12 @@ static int pmz_attach(struct macio_dev *mdev, const struct of_device_id *match)
>   * That one should not be called, macio isn't really a hotswap device,
>   * we don't expect one of those serial ports to go away...
>   */
> -static int pmz_detach(struct macio_dev *mdev)
> +static void pmz_detach(struct macio_dev *mdev)
>  {
>  	struct uart_pmac_port	*uap = dev_get_drvdata(&mdev->ofdev.dev);
>  	
>  	if (!uap)
> -		return -ENODEV;
> +		return;
>  
>  	uart_remove_one_port(&pmz_uart_reg, &uap->port);
>  
> @@ -1523,11 +1523,8 @@ static int pmz_detach(struct macio_dev *mdev)
>  	dev_set_drvdata(&mdev->ofdev.dev, NULL);
>  	uap->dev = NULL;
>  	uap->port.dev = NULL;
> -	
> -	return 0;
>  }
>  
> -
>  static int pmz_suspend(struct macio_dev *mdev, pm_message_t pm_state)
>  {
>  	struct uart_pmac_port *uap = dev_get_drvdata(&mdev->ofdev.dev);
> diff --git a/sound/aoa/soundbus/i2sbus/core.c b/sound/aoa/soundbus/i2sbus/core.c
> index 51ed2f34b276..35f39727994d 100644
> --- a/sound/aoa/soundbus/i2sbus/core.c
> +++ b/sound/aoa/soundbus/i2sbus/core.c
> @@ -364,15 +364,13 @@ static int i2sbus_probe(struct macio_dev* dev, const struct of_device_id *match)
>  	return 0;
>  }
>  
> -static int i2sbus_remove(struct macio_dev* dev)
> +static void i2sbus_remove(struct macio_dev *dev)
>  {
>  	struct i2sbus_control *control = dev_get_drvdata(&dev->ofdev.dev);
>  	struct i2sbus_dev *i2sdev, *tmp;
>  
>  	list_for_each_entry_safe(i2sdev, tmp, &control->list, item)
>  		soundbus_remove_one(&i2sdev->sound);
> -
> -	return 0;
>  }
>  
>  #ifdef CONFIG_PM
> -- 
> 2.25.1
>
  
Michael Ellerman Jan. 30, 2023, 4:47 a.m. UTC | #2
Dawei Li <set_pte_at@outlook.com> writes:
> Commit fc7a6209d571 ("bus: Make remove callback return void") forces
> bus_type::remove be void-returned, it doesn't make much sense for any
> bus based driver implementing remove callbalk to return non-void to
> its caller.
>
> This change is for macio bus based drivers.
>
> Signed-off-by: Dawei Li <set_pte_at@outlook.com>
> ---
> v1 -> v2
> - Revert unneeded changes.
> - Rebased on latest powerpc/next.
>
> v1
> - https://lore.kernel.org/all/TYCP286MB2323FCDC7ECD87F8D97CB74BCA189@TYCP286MB2323.JPNP286.PROD.OUTLOOK.COM/
> ---
>  arch/powerpc/include/asm/macio.h                | 2 +-
>  drivers/ata/pata_macio.c                        | 4 +---
>  drivers/macintosh/rack-meter.c                  | 4 +---
>  drivers/net/ethernet/apple/bmac.c               | 4 +---
>  drivers/net/ethernet/apple/mace.c               | 4 +---
>  drivers/net/wireless/intersil/orinoco/airport.c | 4 +---
>  drivers/scsi/mac53c94.c                         | 5 +----
>  drivers/scsi/mesh.c                             | 5 +----
>  drivers/tty/serial/pmac_zilog.c                 | 7 ++-----
>  sound/aoa/soundbus/i2sbus/core.c                | 4 +---
>  10 files changed, 11 insertions(+), 32 deletions(-)

I realise the patch has to be merged via a single subsystem, and powerpc
is probably the most appropriate, but please Cc the relevant lists for
the drivers touched.

AFAICS neither this version or v1 was Cc'ed to relevant lists, eg.
netdev, linux-wireless, linux-scsi, alsa-devel etc.

cheers
  
Dawei Li Jan. 30, 2023, 2:39 p.m. UTC | #3
Hi Michael,

Thanks for reviewing,

On Mon, Jan 30, 2023 at 03:47:55PM +1100, Michael Ellerman wrote:
> Dawei Li <set_pte_at@outlook.com> writes:
> > Commit fc7a6209d571 ("bus: Make remove callback return void") forces
> > bus_type::remove be void-returned, it doesn't make much sense for any
> > bus based driver implementing remove callbalk to return non-void to
> > its caller.
> >
> > This change is for macio bus based drivers.
> >
> > Signed-off-by: Dawei Li <set_pte_at@outlook.com>
> > ---
> > v1 -> v2
> > - Revert unneeded changes.
> > - Rebased on latest powerpc/next.
> >
> > v1
> > - https://lore.kernel.org/all/TYCP286MB2323FCDC7ECD87F8D97CB74BCA189@TYCP286MB2323.JPNP286.PROD.OUTLOOK.COM/
> > ---
> >  arch/powerpc/include/asm/macio.h                | 2 +-
> >  drivers/ata/pata_macio.c                        | 4 +---
> >  drivers/macintosh/rack-meter.c                  | 4 +---
> >  drivers/net/ethernet/apple/bmac.c               | 4 +---
> >  drivers/net/ethernet/apple/mace.c               | 4 +---
> >  drivers/net/wireless/intersil/orinoco/airport.c | 4 +---
> >  drivers/scsi/mac53c94.c                         | 5 +----
> >  drivers/scsi/mesh.c                             | 5 +----
> >  drivers/tty/serial/pmac_zilog.c                 | 7 ++-----
> >  sound/aoa/soundbus/i2sbus/core.c                | 4 +---
> >  10 files changed, 11 insertions(+), 32 deletions(-)
> 
> I realise the patch has to be merged via a single subsystem, and powerpc
> is probably the most appropriate, but please Cc the relevant lists for
> the drivers touched.

Copy that. Relevant lists will be cc'ed in v3.

Thanks,
        Dawei 
> 
> AFAICS neither this version or v1 was Cc'ed to relevant lists, eg.
> netdev, linux-wireless, linux-scsi, alsa-devel etc.
> 
> cheers
  

Patch

diff --git a/arch/powerpc/include/asm/macio.h b/arch/powerpc/include/asm/macio.h
index ff5fd82d9ff0..cb9c386dacf8 100644
--- a/arch/powerpc/include/asm/macio.h
+++ b/arch/powerpc/include/asm/macio.h
@@ -125,7 +125,7 @@  static inline struct pci_dev *macio_get_pci_dev(struct macio_dev *mdev)
 struct macio_driver
 {
 	int	(*probe)(struct macio_dev* dev, const struct of_device_id *match);
-	int	(*remove)(struct macio_dev* dev);
+	void	(*remove)(struct macio_dev *dev);
 
 	int	(*suspend)(struct macio_dev* dev, pm_message_t state);
 	int	(*resume)(struct macio_dev* dev);
diff --git a/drivers/ata/pata_macio.c b/drivers/ata/pata_macio.c
index 9ccaac9e2bc3..653106716a4b 100644
--- a/drivers/ata/pata_macio.c
+++ b/drivers/ata/pata_macio.c
@@ -1187,7 +1187,7 @@  static int pata_macio_attach(struct macio_dev *mdev,
 	return rc;
 }
 
-static int pata_macio_detach(struct macio_dev *mdev)
+static void pata_macio_detach(struct macio_dev *mdev)
 {
 	struct ata_host *host = macio_get_drvdata(mdev);
 	struct pata_macio_priv *priv = host->private_data;
@@ -1202,8 +1202,6 @@  static int pata_macio_detach(struct macio_dev *mdev)
 	ata_host_detach(host);
 
 	unlock_media_bay(priv->mdev->media_bay);
-
-	return 0;
 }
 
 #ifdef CONFIG_PM_SLEEP
diff --git a/drivers/macintosh/rack-meter.c b/drivers/macintosh/rack-meter.c
index c28893e41a8b..f2f83c4f3af5 100644
--- a/drivers/macintosh/rack-meter.c
+++ b/drivers/macintosh/rack-meter.c
@@ -523,7 +523,7 @@  static int rackmeter_probe(struct macio_dev* mdev,
 	return rc;
 }
 
-static int rackmeter_remove(struct macio_dev* mdev)
+static void rackmeter_remove(struct macio_dev *mdev)
 {
 	struct rackmeter *rm = dev_get_drvdata(&mdev->ofdev.dev);
 
@@ -558,8 +558,6 @@  static int rackmeter_remove(struct macio_dev* mdev)
 
 	/* Get rid of me */
 	kfree(rm);
-
-	return 0;
 }
 
 static int rackmeter_shutdown(struct macio_dev* mdev)
diff --git a/drivers/net/ethernet/apple/bmac.c b/drivers/net/ethernet/apple/bmac.c
index 9e653e2925f7..292b1f9cd9e7 100644
--- a/drivers/net/ethernet/apple/bmac.c
+++ b/drivers/net/ethernet/apple/bmac.c
@@ -1591,7 +1591,7 @@  bmac_proc_info(char *buffer, char **start, off_t offset, int length)
 }
 #endif
 
-static int bmac_remove(struct macio_dev *mdev)
+static void bmac_remove(struct macio_dev *mdev)
 {
 	struct net_device *dev = macio_get_drvdata(mdev);
 	struct bmac_data *bp = netdev_priv(dev);
@@ -1609,8 +1609,6 @@  static int bmac_remove(struct macio_dev *mdev)
 	macio_release_resources(mdev);
 
 	free_netdev(dev);
-
-	return 0;
 }
 
 static const struct of_device_id bmac_match[] =
diff --git a/drivers/net/ethernet/apple/mace.c b/drivers/net/ethernet/apple/mace.c
index fd1b008b7208..e6350971c707 100644
--- a/drivers/net/ethernet/apple/mace.c
+++ b/drivers/net/ethernet/apple/mace.c
@@ -272,7 +272,7 @@  static int mace_probe(struct macio_dev *mdev, const struct of_device_id *match)
 	return rc;
 }
 
-static int mace_remove(struct macio_dev *mdev)
+static void mace_remove(struct macio_dev *mdev)
 {
 	struct net_device *dev = macio_get_drvdata(mdev);
 	struct mace_data *mp;
@@ -296,8 +296,6 @@  static int mace_remove(struct macio_dev *mdev)
 	free_netdev(dev);
 
 	macio_release_resources(mdev);
-
-	return 0;
 }
 
 static void dbdma_reset(volatile struct dbdma_regs __iomem *dma)
diff --git a/drivers/net/wireless/intersil/orinoco/airport.c b/drivers/net/wireless/intersil/orinoco/airport.c
index a890bfa0d5cc..276a06cdd1f5 100644
--- a/drivers/net/wireless/intersil/orinoco/airport.c
+++ b/drivers/net/wireless/intersil/orinoco/airport.c
@@ -85,7 +85,7 @@  airport_resume(struct macio_dev *mdev)
 	return err;
 }
 
-static int
+static void
 airport_detach(struct macio_dev *mdev)
 {
 	struct orinoco_private *priv = dev_get_drvdata(&mdev->ofdev.dev);
@@ -111,8 +111,6 @@  airport_detach(struct macio_dev *mdev)
 
 	macio_set_drvdata(mdev, NULL);
 	free_orinocodev(priv);
-
-	return 0;
 }
 
 static int airport_hard_reset(struct orinoco_private *priv)
diff --git a/drivers/scsi/mac53c94.c b/drivers/scsi/mac53c94.c
index f75928f7773e..42648ca9b8ed 100644
--- a/drivers/scsi/mac53c94.c
+++ b/drivers/scsi/mac53c94.c
@@ -508,7 +508,7 @@  static int mac53c94_probe(struct macio_dev *mdev, const struct of_device_id *mat
 	return rc;
 }
 
-static int mac53c94_remove(struct macio_dev *mdev)
+static void mac53c94_remove(struct macio_dev *mdev)
 {
 	struct fsc_state *fp = (struct fsc_state *)macio_get_drvdata(mdev);
 	struct Scsi_Host *host = fp->host;
@@ -526,11 +526,8 @@  static int mac53c94_remove(struct macio_dev *mdev)
 	scsi_host_put(host);
 
 	macio_release_resources(mdev);
-
-	return 0;
 }
 
-
 static struct of_device_id mac53c94_match[] = 
 {
 	{
diff --git a/drivers/scsi/mesh.c b/drivers/scsi/mesh.c
index 84b541a57b7b..cd2575b88c85 100644
--- a/drivers/scsi/mesh.c
+++ b/drivers/scsi/mesh.c
@@ -1986,7 +1986,7 @@  static int mesh_probe(struct macio_dev *mdev, const struct of_device_id *match)
 	return -ENODEV;
 }
 
-static int mesh_remove(struct macio_dev *mdev)
+static void mesh_remove(struct macio_dev *mdev)
 {
 	struct mesh_state *ms = (struct mesh_state *)macio_get_drvdata(mdev);
 	struct Scsi_Host *mesh_host = ms->host;
@@ -2013,11 +2013,8 @@  static int mesh_remove(struct macio_dev *mdev)
 	macio_release_resources(mdev);
 
 	scsi_host_put(mesh_host);
-
-	return 0;
 }
 
-
 static struct of_device_id mesh_match[] = 
 {
 	{
diff --git a/drivers/tty/serial/pmac_zilog.c b/drivers/tty/serial/pmac_zilog.c
index 13668ffdb1e7..d4640479c338 100644
--- a/drivers/tty/serial/pmac_zilog.c
+++ b/drivers/tty/serial/pmac_zilog.c
@@ -1507,12 +1507,12 @@  static int pmz_attach(struct macio_dev *mdev, const struct of_device_id *match)
  * That one should not be called, macio isn't really a hotswap device,
  * we don't expect one of those serial ports to go away...
  */
-static int pmz_detach(struct macio_dev *mdev)
+static void pmz_detach(struct macio_dev *mdev)
 {
 	struct uart_pmac_port	*uap = dev_get_drvdata(&mdev->ofdev.dev);
 	
 	if (!uap)
-		return -ENODEV;
+		return;
 
 	uart_remove_one_port(&pmz_uart_reg, &uap->port);
 
@@ -1523,11 +1523,8 @@  static int pmz_detach(struct macio_dev *mdev)
 	dev_set_drvdata(&mdev->ofdev.dev, NULL);
 	uap->dev = NULL;
 	uap->port.dev = NULL;
-	
-	return 0;
 }
 
-
 static int pmz_suspend(struct macio_dev *mdev, pm_message_t pm_state)
 {
 	struct uart_pmac_port *uap = dev_get_drvdata(&mdev->ofdev.dev);
diff --git a/sound/aoa/soundbus/i2sbus/core.c b/sound/aoa/soundbus/i2sbus/core.c
index 51ed2f34b276..35f39727994d 100644
--- a/sound/aoa/soundbus/i2sbus/core.c
+++ b/sound/aoa/soundbus/i2sbus/core.c
@@ -364,15 +364,13 @@  static int i2sbus_probe(struct macio_dev* dev, const struct of_device_id *match)
 	return 0;
 }
 
-static int i2sbus_remove(struct macio_dev* dev)
+static void i2sbus_remove(struct macio_dev *dev)
 {
 	struct i2sbus_control *control = dev_get_drvdata(&dev->ofdev.dev);
 	struct i2sbus_dev *i2sdev, *tmp;
 
 	list_for_each_entry_safe(i2sdev, tmp, &control->list, item)
 		soundbus_remove_one(&i2sdev->sound);
-
-	return 0;
 }
 
 #ifdef CONFIG_PM