All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] parisc: Make struct parisc_driver::remove() return void
@ 2021-08-06  9:39 ` Uwe Kleine-König
  0 siblings, 0 replies; 9+ messages in thread
From: Uwe Kleine-König @ 2021-08-06  9:39 UTC (permalink / raw)
  To: James E.J. Bottomley, Helge Deller
  Cc: Corey Minyard, Dmitry Torokhov, David S. Miller, Jakub Kicinski,
	Sudip Mukherjee, Martin K. Petersen, Greg Kroah-Hartman,
	Jiri Slaby, Jaroslav Kysela, Takashi Iwai, linux-parisc,
	openipmi-developer, linux-input, netdev, linux-scsi,
	linux-serial, alsa-devel, kernel

The caller of this function (parisc_driver_remove() in
arch/parisc/kernel/drivers.c) ignores the return value, so better don't
return any value at all to not wake wrong expectations in driver authors.

The only function that could return a non-zero value before was
ipmi_parisc_remove() which returns the return value of
ipmi_si_remove_by_dev(). Make this function return void, too, as for all
other callers the value is ignored, too.

Also fold in a small checkpatch fix for:

WARNING: Unnecessary space before function pointer arguments
+	void (*remove) (struct parisc_device *dev);

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
---
 arch/parisc/include/asm/parisc-device.h  | 4 ++--
 drivers/char/ipmi/ipmi_si_intf.c         | 6 +-----
 drivers/char/ipmi/ipmi_si_parisc.c       | 4 ++--
 drivers/char/ipmi/ipmi_si_platform.c     | 4 +++-
 drivers/input/keyboard/hilkbd.c          | 4 +---
 drivers/input/serio/gscps2.c             | 3 +--
 drivers/net/ethernet/i825xx/lasi_82596.c | 3 +--
 drivers/parport/parport_gsc.c            | 3 +--
 drivers/scsi/lasi700.c                   | 4 +---
 drivers/scsi/zalon.c                     | 4 +---
 drivers/tty/serial/mux.c                 | 3 +--
 sound/parisc/harmony.c                   | 3 +--
 12 files changed, 16 insertions(+), 29 deletions(-)

diff --git a/arch/parisc/include/asm/parisc-device.h b/arch/parisc/include/asm/parisc-device.h
index d02d144c6012..4de3b391d812 100644
--- a/arch/parisc/include/asm/parisc-device.h
+++ b/arch/parisc/include/asm/parisc-device.h
@@ -34,8 +34,8 @@ struct parisc_driver {
 	struct parisc_driver *next;
 	char *name; 
 	const struct parisc_device_id *id_table;
-	int (*probe) (struct parisc_device *dev); /* New device discovered */
-	int (*remove) (struct parisc_device *dev);
+	int (*probe)(struct parisc_device *dev); /* New device discovered */
+	void (*remove)(struct parisc_device *dev);
 	struct device_driver drv;
 };
 
diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c
index 62929a3e397e..bb466981dc1b 100644
--- a/drivers/char/ipmi/ipmi_si_intf.c
+++ b/drivers/char/ipmi/ipmi_si_intf.c
@@ -2228,22 +2228,18 @@ static void cleanup_one_si(struct smi_info *smi_info)
 	kfree(smi_info);
 }
 
-int ipmi_si_remove_by_dev(struct device *dev)
+void ipmi_si_remove_by_dev(struct device *dev)
 {
 	struct smi_info *e;
-	int rv = -ENOENT;
 
 	mutex_lock(&smi_infos_lock);
 	list_for_each_entry(e, &smi_infos, link) {
 		if (e->io.dev == dev) {
 			cleanup_one_si(e);
-			rv = 0;
 			break;
 		}
 	}
 	mutex_unlock(&smi_infos_lock);
-
-	return rv;
 }
 
 struct device *ipmi_si_remove_by_data(int addr_space, enum si_type si_type,
diff --git a/drivers/char/ipmi/ipmi_si_parisc.c b/drivers/char/ipmi/ipmi_si_parisc.c
index 11c9160275df..2be2967f6b5f 100644
--- a/drivers/char/ipmi/ipmi_si_parisc.c
+++ b/drivers/char/ipmi/ipmi_si_parisc.c
@@ -29,9 +29,9 @@ static int __init ipmi_parisc_probe(struct parisc_device *dev)
 	return ipmi_si_add_smi(&io);
 }
 
-static int __exit ipmi_parisc_remove(struct parisc_device *dev)
+static void __exit ipmi_parisc_remove(struct parisc_device *dev)
 {
-	return ipmi_si_remove_by_dev(&dev->dev);
+	ipmi_si_remove_by_dev(&dev->dev);
 }
 
 static const struct parisc_device_id ipmi_parisc_tbl[] __initconst = {
diff --git a/drivers/char/ipmi/ipmi_si_platform.c b/drivers/char/ipmi/ipmi_si_platform.c
index 380a6a542890..505cc978c97a 100644
--- a/drivers/char/ipmi/ipmi_si_platform.c
+++ b/drivers/char/ipmi/ipmi_si_platform.c
@@ -411,7 +411,9 @@ static int ipmi_probe(struct platform_device *pdev)
 
 static int ipmi_remove(struct platform_device *pdev)
 {
-	return ipmi_si_remove_by_dev(&pdev->dev);
+	ipmi_si_remove_by_dev(&pdev->dev);
+
+	return 0;
 }
 
 static int pdev_match_name(struct device *dev, const void *data)
diff --git a/drivers/input/keyboard/hilkbd.c b/drivers/input/keyboard/hilkbd.c
index 62ccfebf2f60..c1a4d5055de6 100644
--- a/drivers/input/keyboard/hilkbd.c
+++ b/drivers/input/keyboard/hilkbd.c
@@ -316,11 +316,9 @@ static int __init hil_probe_chip(struct parisc_device *dev)
 	return hil_keyb_init();
 }
 
-static int __exit hil_remove_chip(struct parisc_device *dev)
+static void __exit hil_remove_chip(struct parisc_device *dev)
 {
 	hil_keyb_exit();
-
-	return 0;
 }
 
 static const struct parisc_device_id hil_tbl[] __initconst = {
diff --git a/drivers/input/serio/gscps2.c b/drivers/input/serio/gscps2.c
index 2f9775de3c5b..a9065c6ab550 100644
--- a/drivers/input/serio/gscps2.c
+++ b/drivers/input/serio/gscps2.c
@@ -411,7 +411,7 @@ static int __init gscps2_probe(struct parisc_device *dev)
  * @return: success/error report
  */
 
-static int __exit gscps2_remove(struct parisc_device *dev)
+static void __exit gscps2_remove(struct parisc_device *dev)
 {
 	struct gscps2port *ps2port = dev_get_drvdata(&dev->dev);
 
@@ -425,7 +425,6 @@ static int __exit gscps2_remove(struct parisc_device *dev)
 #endif
 	dev_set_drvdata(&dev->dev, NULL);
 	kfree(ps2port);
-	return 0;
 }
 
 
diff --git a/drivers/net/ethernet/i825xx/lasi_82596.c b/drivers/net/ethernet/i825xx/lasi_82596.c
index 96c6f4f36904..48e001881c75 100644
--- a/drivers/net/ethernet/i825xx/lasi_82596.c
+++ b/drivers/net/ethernet/i825xx/lasi_82596.c
@@ -196,7 +196,7 @@ lan_init_chip(struct parisc_device *dev)
 	return retval;
 }
 
-static int __exit lan_remove_chip(struct parisc_device *pdev)
+static void __exit lan_remove_chip(struct parisc_device *pdev)
 {
 	struct net_device *dev = parisc_get_drvdata(pdev);
 	struct i596_private *lp = netdev_priv(dev);
@@ -205,7 +205,6 @@ static int __exit lan_remove_chip(struct parisc_device *pdev)
 	dma_free_noncoherent(&pdev->dev, sizeof(struct i596_private), lp->dma,
 		       lp->dma_addr, DMA_BIDIRECTIONAL);
 	free_netdev (dev);
-	return 0;
 }
 
 static const struct parisc_device_id lan_tbl[] __initconst = {
diff --git a/drivers/parport/parport_gsc.c b/drivers/parport/parport_gsc.c
index 1e43b3f399a8..4332692ca4b8 100644
--- a/drivers/parport/parport_gsc.c
+++ b/drivers/parport/parport_gsc.c
@@ -378,7 +378,7 @@ static int __init parport_init_chip(struct parisc_device *dev)
 	return 0;
 }
 
-static int __exit parport_remove_chip(struct parisc_device *dev)
+static void __exit parport_remove_chip(struct parisc_device *dev)
 {
 	struct parport *p = dev_get_drvdata(&dev->dev);
 	if (p) {
@@ -397,7 +397,6 @@ static int __exit parport_remove_chip(struct parisc_device *dev)
 		parport_put_port(p);
 		kfree (ops); /* hope no-one cached it */
 	}
-	return 0;
 }
 
 static const struct parisc_device_id parport_tbl[] __initconst = {
diff --git a/drivers/scsi/lasi700.c b/drivers/scsi/lasi700.c
index 6d14a7a94d0b..86fe19e0468d 100644
--- a/drivers/scsi/lasi700.c
+++ b/drivers/scsi/lasi700.c
@@ -134,7 +134,7 @@ lasi700_probe(struct parisc_device *dev)
 	return -ENODEV;
 }
 
-static int __exit
+static void __exit
 lasi700_driver_remove(struct parisc_device *dev)
 {
 	struct Scsi_Host *host = dev_get_drvdata(&dev->dev);
@@ -146,8 +146,6 @@ lasi700_driver_remove(struct parisc_device *dev)
 	free_irq(host->irq, host);
 	iounmap(hostdata->base);
 	kfree(hostdata);
-
-	return 0;
 }
 
 static struct parisc_driver lasi700_driver __refdata = {
diff --git a/drivers/scsi/zalon.c b/drivers/scsi/zalon.c
index 7eac76cccc4c..f1e5cf8a17d9 100644
--- a/drivers/scsi/zalon.c
+++ b/drivers/scsi/zalon.c
@@ -168,15 +168,13 @@ static const struct parisc_device_id zalon_tbl[] __initconst = {
 
 MODULE_DEVICE_TABLE(parisc, zalon_tbl);
 
-static int __exit zalon_remove(struct parisc_device *dev)
+static void __exit zalon_remove(struct parisc_device *dev)
 {
 	struct Scsi_Host *host = dev_get_drvdata(&dev->dev);
 
 	scsi_remove_host(host);
 	ncr53c8xx_release(host);
 	free_irq(dev->irq, host);
-
-	return 0;
 }
 
 static struct parisc_driver zalon_driver __refdata = {
diff --git a/drivers/tty/serial/mux.c b/drivers/tty/serial/mux.c
index be640d9863cd..643dfbcc43f9 100644
--- a/drivers/tty/serial/mux.c
+++ b/drivers/tty/serial/mux.c
@@ -496,7 +496,7 @@ static int __init mux_probe(struct parisc_device *dev)
 	return 0;
 }
 
-static int __exit mux_remove(struct parisc_device *dev)
+static void __exit mux_remove(struct parisc_device *dev)
 {
 	int i, j;
 	int port_count = (long)dev_get_drvdata(&dev->dev);
@@ -518,7 +518,6 @@ static int __exit mux_remove(struct parisc_device *dev)
 	}
 
 	release_mem_region(dev->hpa.start + MUX_OFFSET, port_count * MUX_LINE_OFFSET);
-	return 0;
 }
 
 /* Hack.  This idea was taken from the 8250_gsc.c on how to properly order
diff --git a/sound/parisc/harmony.c b/sound/parisc/harmony.c
index 1440db8b4177..2e3e5aa47682 100644
--- a/sound/parisc/harmony.c
+++ b/sound/parisc/harmony.c
@@ -968,11 +968,10 @@ snd_harmony_probe(struct parisc_device *padev)
 	return err;
 }
 
-static int __exit
+static void __exit
 snd_harmony_remove(struct parisc_device *padev)
 {
 	snd_card_free(parisc_get_drvdata(padev));
-	return 0;
 }
 
 static struct parisc_driver snd_harmony_driver __refdata = {
-- 
2.30.2


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

* [PATCH] parisc: Make struct parisc_driver::remove() return void
@ 2021-08-06  9:39 ` Uwe Kleine-König
  0 siblings, 0 replies; 9+ messages in thread
From: Uwe Kleine-König @ 2021-08-06  9:39 UTC (permalink / raw)
  To: James E.J. Bottomley, Helge Deller
  Cc: kernel, alsa-devel, Corey Minyard, Martin K. Petersen,
	Greg Kroah-Hartman, Dmitry Torokhov, Takashi Iwai,
	Sudip Mukherjee, linux-scsi, netdev, linux-parisc, linux-serial,
	linux-input, Jakub Kicinski, openipmi-developer, Jiri Slaby,
	David S. Miller

The caller of this function (parisc_driver_remove() in
arch/parisc/kernel/drivers.c) ignores the return value, so better don't
return any value at all to not wake wrong expectations in driver authors.

The only function that could return a non-zero value before was
ipmi_parisc_remove() which returns the return value of
ipmi_si_remove_by_dev(). Make this function return void, too, as for all
other callers the value is ignored, too.

Also fold in a small checkpatch fix for:

WARNING: Unnecessary space before function pointer arguments
+	void (*remove) (struct parisc_device *dev);

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
---
 arch/parisc/include/asm/parisc-device.h  | 4 ++--
 drivers/char/ipmi/ipmi_si_intf.c         | 6 +-----
 drivers/char/ipmi/ipmi_si_parisc.c       | 4 ++--
 drivers/char/ipmi/ipmi_si_platform.c     | 4 +++-
 drivers/input/keyboard/hilkbd.c          | 4 +---
 drivers/input/serio/gscps2.c             | 3 +--
 drivers/net/ethernet/i825xx/lasi_82596.c | 3 +--
 drivers/parport/parport_gsc.c            | 3 +--
 drivers/scsi/lasi700.c                   | 4 +---
 drivers/scsi/zalon.c                     | 4 +---
 drivers/tty/serial/mux.c                 | 3 +--
 sound/parisc/harmony.c                   | 3 +--
 12 files changed, 16 insertions(+), 29 deletions(-)

diff --git a/arch/parisc/include/asm/parisc-device.h b/arch/parisc/include/asm/parisc-device.h
index d02d144c6012..4de3b391d812 100644
--- a/arch/parisc/include/asm/parisc-device.h
+++ b/arch/parisc/include/asm/parisc-device.h
@@ -34,8 +34,8 @@ struct parisc_driver {
 	struct parisc_driver *next;
 	char *name; 
 	const struct parisc_device_id *id_table;
-	int (*probe) (struct parisc_device *dev); /* New device discovered */
-	int (*remove) (struct parisc_device *dev);
+	int (*probe)(struct parisc_device *dev); /* New device discovered */
+	void (*remove)(struct parisc_device *dev);
 	struct device_driver drv;
 };
 
diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c
index 62929a3e397e..bb466981dc1b 100644
--- a/drivers/char/ipmi/ipmi_si_intf.c
+++ b/drivers/char/ipmi/ipmi_si_intf.c
@@ -2228,22 +2228,18 @@ static void cleanup_one_si(struct smi_info *smi_info)
 	kfree(smi_info);
 }
 
-int ipmi_si_remove_by_dev(struct device *dev)
+void ipmi_si_remove_by_dev(struct device *dev)
 {
 	struct smi_info *e;
-	int rv = -ENOENT;
 
 	mutex_lock(&smi_infos_lock);
 	list_for_each_entry(e, &smi_infos, link) {
 		if (e->io.dev == dev) {
 			cleanup_one_si(e);
-			rv = 0;
 			break;
 		}
 	}
 	mutex_unlock(&smi_infos_lock);
-
-	return rv;
 }
 
 struct device *ipmi_si_remove_by_data(int addr_space, enum si_type si_type,
diff --git a/drivers/char/ipmi/ipmi_si_parisc.c b/drivers/char/ipmi/ipmi_si_parisc.c
index 11c9160275df..2be2967f6b5f 100644
--- a/drivers/char/ipmi/ipmi_si_parisc.c
+++ b/drivers/char/ipmi/ipmi_si_parisc.c
@@ -29,9 +29,9 @@ static int __init ipmi_parisc_probe(struct parisc_device *dev)
 	return ipmi_si_add_smi(&io);
 }
 
-static int __exit ipmi_parisc_remove(struct parisc_device *dev)
+static void __exit ipmi_parisc_remove(struct parisc_device *dev)
 {
-	return ipmi_si_remove_by_dev(&dev->dev);
+	ipmi_si_remove_by_dev(&dev->dev);
 }
 
 static const struct parisc_device_id ipmi_parisc_tbl[] __initconst = {
diff --git a/drivers/char/ipmi/ipmi_si_platform.c b/drivers/char/ipmi/ipmi_si_platform.c
index 380a6a542890..505cc978c97a 100644
--- a/drivers/char/ipmi/ipmi_si_platform.c
+++ b/drivers/char/ipmi/ipmi_si_platform.c
@@ -411,7 +411,9 @@ static int ipmi_probe(struct platform_device *pdev)
 
 static int ipmi_remove(struct platform_device *pdev)
 {
-	return ipmi_si_remove_by_dev(&pdev->dev);
+	ipmi_si_remove_by_dev(&pdev->dev);
+
+	return 0;
 }
 
 static int pdev_match_name(struct device *dev, const void *data)
diff --git a/drivers/input/keyboard/hilkbd.c b/drivers/input/keyboard/hilkbd.c
index 62ccfebf2f60..c1a4d5055de6 100644
--- a/drivers/input/keyboard/hilkbd.c
+++ b/drivers/input/keyboard/hilkbd.c
@@ -316,11 +316,9 @@ static int __init hil_probe_chip(struct parisc_device *dev)
 	return hil_keyb_init();
 }
 
-static int __exit hil_remove_chip(struct parisc_device *dev)
+static void __exit hil_remove_chip(struct parisc_device *dev)
 {
 	hil_keyb_exit();
-
-	return 0;
 }
 
 static const struct parisc_device_id hil_tbl[] __initconst = {
diff --git a/drivers/input/serio/gscps2.c b/drivers/input/serio/gscps2.c
index 2f9775de3c5b..a9065c6ab550 100644
--- a/drivers/input/serio/gscps2.c
+++ b/drivers/input/serio/gscps2.c
@@ -411,7 +411,7 @@ static int __init gscps2_probe(struct parisc_device *dev)
  * @return: success/error report
  */
 
-static int __exit gscps2_remove(struct parisc_device *dev)
+static void __exit gscps2_remove(struct parisc_device *dev)
 {
 	struct gscps2port *ps2port = dev_get_drvdata(&dev->dev);
 
@@ -425,7 +425,6 @@ static int __exit gscps2_remove(struct parisc_device *dev)
 #endif
 	dev_set_drvdata(&dev->dev, NULL);
 	kfree(ps2port);
-	return 0;
 }
 
 
diff --git a/drivers/net/ethernet/i825xx/lasi_82596.c b/drivers/net/ethernet/i825xx/lasi_82596.c
index 96c6f4f36904..48e001881c75 100644
--- a/drivers/net/ethernet/i825xx/lasi_82596.c
+++ b/drivers/net/ethernet/i825xx/lasi_82596.c
@@ -196,7 +196,7 @@ lan_init_chip(struct parisc_device *dev)
 	return retval;
 }
 
-static int __exit lan_remove_chip(struct parisc_device *pdev)
+static void __exit lan_remove_chip(struct parisc_device *pdev)
 {
 	struct net_device *dev = parisc_get_drvdata(pdev);
 	struct i596_private *lp = netdev_priv(dev);
@@ -205,7 +205,6 @@ static int __exit lan_remove_chip(struct parisc_device *pdev)
 	dma_free_noncoherent(&pdev->dev, sizeof(struct i596_private), lp->dma,
 		       lp->dma_addr, DMA_BIDIRECTIONAL);
 	free_netdev (dev);
-	return 0;
 }
 
 static const struct parisc_device_id lan_tbl[] __initconst = {
diff --git a/drivers/parport/parport_gsc.c b/drivers/parport/parport_gsc.c
index 1e43b3f399a8..4332692ca4b8 100644
--- a/drivers/parport/parport_gsc.c
+++ b/drivers/parport/parport_gsc.c
@@ -378,7 +378,7 @@ static int __init parport_init_chip(struct parisc_device *dev)
 	return 0;
 }
 
-static int __exit parport_remove_chip(struct parisc_device *dev)
+static void __exit parport_remove_chip(struct parisc_device *dev)
 {
 	struct parport *p = dev_get_drvdata(&dev->dev);
 	if (p) {
@@ -397,7 +397,6 @@ static int __exit parport_remove_chip(struct parisc_device *dev)
 		parport_put_port(p);
 		kfree (ops); /* hope no-one cached it */
 	}
-	return 0;
 }
 
 static const struct parisc_device_id parport_tbl[] __initconst = {
diff --git a/drivers/scsi/lasi700.c b/drivers/scsi/lasi700.c
index 6d14a7a94d0b..86fe19e0468d 100644
--- a/drivers/scsi/lasi700.c
+++ b/drivers/scsi/lasi700.c
@@ -134,7 +134,7 @@ lasi700_probe(struct parisc_device *dev)
 	return -ENODEV;
 }
 
-static int __exit
+static void __exit
 lasi700_driver_remove(struct parisc_device *dev)
 {
 	struct Scsi_Host *host = dev_get_drvdata(&dev->dev);
@@ -146,8 +146,6 @@ lasi700_driver_remove(struct parisc_device *dev)
 	free_irq(host->irq, host);
 	iounmap(hostdata->base);
 	kfree(hostdata);
-
-	return 0;
 }
 
 static struct parisc_driver lasi700_driver __refdata = {
diff --git a/drivers/scsi/zalon.c b/drivers/scsi/zalon.c
index 7eac76cccc4c..f1e5cf8a17d9 100644
--- a/drivers/scsi/zalon.c
+++ b/drivers/scsi/zalon.c
@@ -168,15 +168,13 @@ static const struct parisc_device_id zalon_tbl[] __initconst = {
 
 MODULE_DEVICE_TABLE(parisc, zalon_tbl);
 
-static int __exit zalon_remove(struct parisc_device *dev)
+static void __exit zalon_remove(struct parisc_device *dev)
 {
 	struct Scsi_Host *host = dev_get_drvdata(&dev->dev);
 
 	scsi_remove_host(host);
 	ncr53c8xx_release(host);
 	free_irq(dev->irq, host);
-
-	return 0;
 }
 
 static struct parisc_driver zalon_driver __refdata = {
diff --git a/drivers/tty/serial/mux.c b/drivers/tty/serial/mux.c
index be640d9863cd..643dfbcc43f9 100644
--- a/drivers/tty/serial/mux.c
+++ b/drivers/tty/serial/mux.c
@@ -496,7 +496,7 @@ static int __init mux_probe(struct parisc_device *dev)
 	return 0;
 }
 
-static int __exit mux_remove(struct parisc_device *dev)
+static void __exit mux_remove(struct parisc_device *dev)
 {
 	int i, j;
 	int port_count = (long)dev_get_drvdata(&dev->dev);
@@ -518,7 +518,6 @@ static int __exit mux_remove(struct parisc_device *dev)
 	}
 
 	release_mem_region(dev->hpa.start + MUX_OFFSET, port_count * MUX_LINE_OFFSET);
-	return 0;
 }
 
 /* Hack.  This idea was taken from the 8250_gsc.c on how to properly order
diff --git a/sound/parisc/harmony.c b/sound/parisc/harmony.c
index 1440db8b4177..2e3e5aa47682 100644
--- a/sound/parisc/harmony.c
+++ b/sound/parisc/harmony.c
@@ -968,11 +968,10 @@ snd_harmony_probe(struct parisc_device *padev)
 	return err;
 }
 
-static int __exit
+static void __exit
 snd_harmony_remove(struct parisc_device *padev)
 {
 	snd_card_free(parisc_get_drvdata(padev));
-	return 0;
 }
 
 static struct parisc_driver snd_harmony_driver __refdata = {
-- 
2.30.2


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

* Re: [PATCH] parisc: Make struct parisc_driver::remove() return void
  2021-08-06  9:39 ` Uwe Kleine-König
  (?)
@ 2021-08-06 15:20 ` kernel test robot
  -1 siblings, 0 replies; 9+ messages in thread
From: kernel test robot @ 2021-08-06 15:20 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 2448 bytes --]

Hi "Uwe,

I love your patch! Yet something to improve:

[auto build test ERROR on hp-parisc/for-next]
[also build test ERROR on char-misc/char-misc-testing mkp-scsi/for-next scsi/for-next v5.14-rc4 next-20210805]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Uwe-Kleine-K-nig/parisc-Make-struct-parisc_driver-remove-return-void/20210806-174220
base:   https://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux.git for-next
config: x86_64-buildonly-randconfig-r004-20210805 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
        # https://github.com/0day-ci/linux/commit/1e227b75878229ccbb4c9146a4184099e2cdbd08
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Uwe-Kleine-K-nig/parisc-Make-struct-parisc_driver-remove-return-void/20210806-174220
        git checkout 1e227b75878229ccbb4c9146a4184099e2cdbd08
        # save the attached .config to linux build tree
        mkdir build_dir
        make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

>> drivers/char/ipmi/ipmi_si_intf.c:2231:6: error: conflicting types for 'ipmi_si_remove_by_dev'
    2231 | void ipmi_si_remove_by_dev(struct device *dev)
         |      ^~~~~~~~~~~~~~~~~~~~~
   In file included from drivers/char/ipmi/ipmi_si_intf.c:42:
   drivers/char/ipmi/ipmi_si.h:76:5: note: previous declaration of 'ipmi_si_remove_by_dev' was here
      76 | int ipmi_si_remove_by_dev(struct device *dev);
         |     ^~~~~~~~~~~~~~~~~~~~~


vim +/ipmi_si_remove_by_dev +2231 drivers/char/ipmi/ipmi_si_intf.c

  2230	
> 2231	void ipmi_si_remove_by_dev(struct device *dev)
  2232	{
  2233		struct smi_info *e;
  2234	
  2235		mutex_lock(&smi_infos_lock);
  2236		list_for_each_entry(e, &smi_infos, link) {
  2237			if (e->io.dev == dev) {
  2238				cleanup_one_si(e);
  2239				break;
  2240			}
  2241		}
  2242		mutex_unlock(&smi_infos_lock);
  2243	}
  2244	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 37512 bytes --]

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

* Re: [PATCH] parisc: Make struct parisc_driver::remove() return void
  2021-08-06  9:39 ` Uwe Kleine-König
@ 2021-08-06 17:49   ` Corey Minyard
  -1 siblings, 0 replies; 9+ messages in thread
From: Corey Minyard @ 2021-08-06 17:49 UTC (permalink / raw)
  To: Uwe Kleine-König
  Cc: James E.J. Bottomley, Helge Deller, Dmitry Torokhov,
	David S. Miller, Jakub Kicinski, Sudip Mukherjee,
	Martin K. Petersen, Greg Kroah-Hartman, Jiri Slaby,
	Jaroslav Kysela, Takashi Iwai, linux-parisc, openipmi-developer,
	linux-input, netdev, linux-scsi, linux-serial, alsa-devel,
	kernel

On Fri, Aug 06, 2021 at 11:39:38AM +0200, Uwe Kleine-König wrote:
> The caller of this function (parisc_driver_remove() in
> arch/parisc/kernel/drivers.c) ignores the return value, so better don't
> return any value at all to not wake wrong expectations in driver authors.
> 
> The only function that could return a non-zero value before was
> ipmi_parisc_remove() which returns the return value of
> ipmi_si_remove_by_dev(). Make this function return void, too, as for all
> other callers the value is ignored, too.
> 
> Also fold in a small checkpatch fix for:
> 
> WARNING: Unnecessary space before function pointer arguments
> +	void (*remove) (struct parisc_device *dev);
> 
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
> ---
>  arch/parisc/include/asm/parisc-device.h  | 4 ++--
>  drivers/char/ipmi/ipmi_si_intf.c         | 6 +-----
>  drivers/char/ipmi/ipmi_si_parisc.c       | 4 ++--
>  drivers/char/ipmi/ipmi_si_platform.c     | 4 +++-
>  drivers/input/keyboard/hilkbd.c          | 4 +---
>  drivers/input/serio/gscps2.c             | 3 +--
>  drivers/net/ethernet/i825xx/lasi_82596.c | 3 +--
>  drivers/parport/parport_gsc.c            | 3 +--
>  drivers/scsi/lasi700.c                   | 4 +---
>  drivers/scsi/zalon.c                     | 4 +---
>  drivers/tty/serial/mux.c                 | 3 +--
>  sound/parisc/harmony.c                   | 3 +--
>  12 files changed, 16 insertions(+), 29 deletions(-)
> 
> diff --git a/arch/parisc/include/asm/parisc-device.h b/arch/parisc/include/asm/parisc-device.h
> index d02d144c6012..4de3b391d812 100644
> --- a/arch/parisc/include/asm/parisc-device.h
> +++ b/arch/parisc/include/asm/parisc-device.h
> @@ -34,8 +34,8 @@ struct parisc_driver {
>  	struct parisc_driver *next;
>  	char *name; 
>  	const struct parisc_device_id *id_table;
> -	int (*probe) (struct parisc_device *dev); /* New device discovered */
> -	int (*remove) (struct parisc_device *dev);
> +	int (*probe)(struct parisc_device *dev); /* New device discovered */
> +	void (*remove)(struct parisc_device *dev);
>  	struct device_driver drv;
>  };
>  
> diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c
> index 62929a3e397e..bb466981dc1b 100644
> --- a/drivers/char/ipmi/ipmi_si_intf.c
> +++ b/drivers/char/ipmi/ipmi_si_intf.c
> @@ -2228,22 +2228,18 @@ static void cleanup_one_si(struct smi_info *smi_info)
>  	kfree(smi_info);
>  }
>  
> -int ipmi_si_remove_by_dev(struct device *dev)
> +void ipmi_si_remove_by_dev(struct device *dev)

This function is also used by ipmi_si_platform.c, so you can't change
this.

-corey

>  {
>  	struct smi_info *e;
> -	int rv = -ENOENT;
>  
>  	mutex_lock(&smi_infos_lock);
>  	list_for_each_entry(e, &smi_infos, link) {
>  		if (e->io.dev == dev) {
>  			cleanup_one_si(e);
> -			rv = 0;
>  			break;
>  		}
>  	}
>  	mutex_unlock(&smi_infos_lock);
> -
> -	return rv;
>  }
>  
>  struct device *ipmi_si_remove_by_data(int addr_space, enum si_type si_type,
> diff --git a/drivers/char/ipmi/ipmi_si_parisc.c b/drivers/char/ipmi/ipmi_si_parisc.c
> index 11c9160275df..2be2967f6b5f 100644
> --- a/drivers/char/ipmi/ipmi_si_parisc.c
> +++ b/drivers/char/ipmi/ipmi_si_parisc.c
> @@ -29,9 +29,9 @@ static int __init ipmi_parisc_probe(struct parisc_device *dev)
>  	return ipmi_si_add_smi(&io);
>  }
>  
> -static int __exit ipmi_parisc_remove(struct parisc_device *dev)
> +static void __exit ipmi_parisc_remove(struct parisc_device *dev)
>  {
> -	return ipmi_si_remove_by_dev(&dev->dev);
> +	ipmi_si_remove_by_dev(&dev->dev);
>  }
>  
>  static const struct parisc_device_id ipmi_parisc_tbl[] __initconst = {
> diff --git a/drivers/char/ipmi/ipmi_si_platform.c b/drivers/char/ipmi/ipmi_si_platform.c
> index 380a6a542890..505cc978c97a 100644
> --- a/drivers/char/ipmi/ipmi_si_platform.c
> +++ b/drivers/char/ipmi/ipmi_si_platform.c
> @@ -411,7 +411,9 @@ static int ipmi_probe(struct platform_device *pdev)
>  
>  static int ipmi_remove(struct platform_device *pdev)
>  {
> -	return ipmi_si_remove_by_dev(&pdev->dev);
> +	ipmi_si_remove_by_dev(&pdev->dev);
> +
> +	return 0;
>  }
>  
>  static int pdev_match_name(struct device *dev, const void *data)
> diff --git a/drivers/input/keyboard/hilkbd.c b/drivers/input/keyboard/hilkbd.c
> index 62ccfebf2f60..c1a4d5055de6 100644
> --- a/drivers/input/keyboard/hilkbd.c
> +++ b/drivers/input/keyboard/hilkbd.c
> @@ -316,11 +316,9 @@ static int __init hil_probe_chip(struct parisc_device *dev)
>  	return hil_keyb_init();
>  }
>  
> -static int __exit hil_remove_chip(struct parisc_device *dev)
> +static void __exit hil_remove_chip(struct parisc_device *dev)
>  {
>  	hil_keyb_exit();
> -
> -	return 0;
>  }
>  
>  static const struct parisc_device_id hil_tbl[] __initconst = {
> diff --git a/drivers/input/serio/gscps2.c b/drivers/input/serio/gscps2.c
> index 2f9775de3c5b..a9065c6ab550 100644
> --- a/drivers/input/serio/gscps2.c
> +++ b/drivers/input/serio/gscps2.c
> @@ -411,7 +411,7 @@ static int __init gscps2_probe(struct parisc_device *dev)
>   * @return: success/error report
>   */
>  
> -static int __exit gscps2_remove(struct parisc_device *dev)
> +static void __exit gscps2_remove(struct parisc_device *dev)
>  {
>  	struct gscps2port *ps2port = dev_get_drvdata(&dev->dev);
>  
> @@ -425,7 +425,6 @@ static int __exit gscps2_remove(struct parisc_device *dev)
>  #endif
>  	dev_set_drvdata(&dev->dev, NULL);
>  	kfree(ps2port);
> -	return 0;
>  }
>  
>  
> diff --git a/drivers/net/ethernet/i825xx/lasi_82596.c b/drivers/net/ethernet/i825xx/lasi_82596.c
> index 96c6f4f36904..48e001881c75 100644
> --- a/drivers/net/ethernet/i825xx/lasi_82596.c
> +++ b/drivers/net/ethernet/i825xx/lasi_82596.c
> @@ -196,7 +196,7 @@ lan_init_chip(struct parisc_device *dev)
>  	return retval;
>  }
>  
> -static int __exit lan_remove_chip(struct parisc_device *pdev)
> +static void __exit lan_remove_chip(struct parisc_device *pdev)
>  {
>  	struct net_device *dev = parisc_get_drvdata(pdev);
>  	struct i596_private *lp = netdev_priv(dev);
> @@ -205,7 +205,6 @@ static int __exit lan_remove_chip(struct parisc_device *pdev)
>  	dma_free_noncoherent(&pdev->dev, sizeof(struct i596_private), lp->dma,
>  		       lp->dma_addr, DMA_BIDIRECTIONAL);
>  	free_netdev (dev);
> -	return 0;
>  }
>  
>  static const struct parisc_device_id lan_tbl[] __initconst = {
> diff --git a/drivers/parport/parport_gsc.c b/drivers/parport/parport_gsc.c
> index 1e43b3f399a8..4332692ca4b8 100644
> --- a/drivers/parport/parport_gsc.c
> +++ b/drivers/parport/parport_gsc.c
> @@ -378,7 +378,7 @@ static int __init parport_init_chip(struct parisc_device *dev)
>  	return 0;
>  }
>  
> -static int __exit parport_remove_chip(struct parisc_device *dev)
> +static void __exit parport_remove_chip(struct parisc_device *dev)
>  {
>  	struct parport *p = dev_get_drvdata(&dev->dev);
>  	if (p) {
> @@ -397,7 +397,6 @@ static int __exit parport_remove_chip(struct parisc_device *dev)
>  		parport_put_port(p);
>  		kfree (ops); /* hope no-one cached it */
>  	}
> -	return 0;
>  }
>  
>  static const struct parisc_device_id parport_tbl[] __initconst = {
> diff --git a/drivers/scsi/lasi700.c b/drivers/scsi/lasi700.c
> index 6d14a7a94d0b..86fe19e0468d 100644
> --- a/drivers/scsi/lasi700.c
> +++ b/drivers/scsi/lasi700.c
> @@ -134,7 +134,7 @@ lasi700_probe(struct parisc_device *dev)
>  	return -ENODEV;
>  }
>  
> -static int __exit
> +static void __exit
>  lasi700_driver_remove(struct parisc_device *dev)
>  {
>  	struct Scsi_Host *host = dev_get_drvdata(&dev->dev);
> @@ -146,8 +146,6 @@ lasi700_driver_remove(struct parisc_device *dev)
>  	free_irq(host->irq, host);
>  	iounmap(hostdata->base);
>  	kfree(hostdata);
> -
> -	return 0;
>  }
>  
>  static struct parisc_driver lasi700_driver __refdata = {
> diff --git a/drivers/scsi/zalon.c b/drivers/scsi/zalon.c
> index 7eac76cccc4c..f1e5cf8a17d9 100644
> --- a/drivers/scsi/zalon.c
> +++ b/drivers/scsi/zalon.c
> @@ -168,15 +168,13 @@ static const struct parisc_device_id zalon_tbl[] __initconst = {
>  
>  MODULE_DEVICE_TABLE(parisc, zalon_tbl);
>  
> -static int __exit zalon_remove(struct parisc_device *dev)
> +static void __exit zalon_remove(struct parisc_device *dev)
>  {
>  	struct Scsi_Host *host = dev_get_drvdata(&dev->dev);
>  
>  	scsi_remove_host(host);
>  	ncr53c8xx_release(host);
>  	free_irq(dev->irq, host);
> -
> -	return 0;
>  }
>  
>  static struct parisc_driver zalon_driver __refdata = {
> diff --git a/drivers/tty/serial/mux.c b/drivers/tty/serial/mux.c
> index be640d9863cd..643dfbcc43f9 100644
> --- a/drivers/tty/serial/mux.c
> +++ b/drivers/tty/serial/mux.c
> @@ -496,7 +496,7 @@ static int __init mux_probe(struct parisc_device *dev)
>  	return 0;
>  }
>  
> -static int __exit mux_remove(struct parisc_device *dev)
> +static void __exit mux_remove(struct parisc_device *dev)
>  {
>  	int i, j;
>  	int port_count = (long)dev_get_drvdata(&dev->dev);
> @@ -518,7 +518,6 @@ static int __exit mux_remove(struct parisc_device *dev)
>  	}
>  
>  	release_mem_region(dev->hpa.start + MUX_OFFSET, port_count * MUX_LINE_OFFSET);
> -	return 0;
>  }
>  
>  /* Hack.  This idea was taken from the 8250_gsc.c on how to properly order
> diff --git a/sound/parisc/harmony.c b/sound/parisc/harmony.c
> index 1440db8b4177..2e3e5aa47682 100644
> --- a/sound/parisc/harmony.c
> +++ b/sound/parisc/harmony.c
> @@ -968,11 +968,10 @@ snd_harmony_probe(struct parisc_device *padev)
>  	return err;
>  }
>  
> -static int __exit
> +static void __exit
>  snd_harmony_remove(struct parisc_device *padev)
>  {
>  	snd_card_free(parisc_get_drvdata(padev));
> -	return 0;
>  }
>  
>  static struct parisc_driver snd_harmony_driver __refdata = {
> -- 
> 2.30.2
> 

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

* Re: [PATCH] parisc: Make struct parisc_driver::remove() return void
@ 2021-08-06 17:49   ` Corey Minyard
  0 siblings, 0 replies; 9+ messages in thread
From: Corey Minyard @ 2021-08-06 17:49 UTC (permalink / raw)
  To: Uwe Kleine-König
  Cc: kernel, alsa-devel, linux-parisc, Martin K. Petersen, linux-scsi,
	Greg Kroah-Hartman, Helge Deller, Dmitry Torokhov, Takashi Iwai,
	Sudip Mukherjee, James E.J. Bottomley, netdev, linux-serial,
	linux-input, Jakub Kicinski, openipmi-developer, Jiri Slaby,
	David S. Miller

On Fri, Aug 06, 2021 at 11:39:38AM +0200, Uwe Kleine-König wrote:
> The caller of this function (parisc_driver_remove() in
> arch/parisc/kernel/drivers.c) ignores the return value, so better don't
> return any value at all to not wake wrong expectations in driver authors.
> 
> The only function that could return a non-zero value before was
> ipmi_parisc_remove() which returns the return value of
> ipmi_si_remove_by_dev(). Make this function return void, too, as for all
> other callers the value is ignored, too.
> 
> Also fold in a small checkpatch fix for:
> 
> WARNING: Unnecessary space before function pointer arguments
> +	void (*remove) (struct parisc_device *dev);
> 
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
> ---
>  arch/parisc/include/asm/parisc-device.h  | 4 ++--
>  drivers/char/ipmi/ipmi_si_intf.c         | 6 +-----
>  drivers/char/ipmi/ipmi_si_parisc.c       | 4 ++--
>  drivers/char/ipmi/ipmi_si_platform.c     | 4 +++-
>  drivers/input/keyboard/hilkbd.c          | 4 +---
>  drivers/input/serio/gscps2.c             | 3 +--
>  drivers/net/ethernet/i825xx/lasi_82596.c | 3 +--
>  drivers/parport/parport_gsc.c            | 3 +--
>  drivers/scsi/lasi700.c                   | 4 +---
>  drivers/scsi/zalon.c                     | 4 +---
>  drivers/tty/serial/mux.c                 | 3 +--
>  sound/parisc/harmony.c                   | 3 +--
>  12 files changed, 16 insertions(+), 29 deletions(-)
> 
> diff --git a/arch/parisc/include/asm/parisc-device.h b/arch/parisc/include/asm/parisc-device.h
> index d02d144c6012..4de3b391d812 100644
> --- a/arch/parisc/include/asm/parisc-device.h
> +++ b/arch/parisc/include/asm/parisc-device.h
> @@ -34,8 +34,8 @@ struct parisc_driver {
>  	struct parisc_driver *next;
>  	char *name; 
>  	const struct parisc_device_id *id_table;
> -	int (*probe) (struct parisc_device *dev); /* New device discovered */
> -	int (*remove) (struct parisc_device *dev);
> +	int (*probe)(struct parisc_device *dev); /* New device discovered */
> +	void (*remove)(struct parisc_device *dev);
>  	struct device_driver drv;
>  };
>  
> diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c
> index 62929a3e397e..bb466981dc1b 100644
> --- a/drivers/char/ipmi/ipmi_si_intf.c
> +++ b/drivers/char/ipmi/ipmi_si_intf.c
> @@ -2228,22 +2228,18 @@ static void cleanup_one_si(struct smi_info *smi_info)
>  	kfree(smi_info);
>  }
>  
> -int ipmi_si_remove_by_dev(struct device *dev)
> +void ipmi_si_remove_by_dev(struct device *dev)

This function is also used by ipmi_si_platform.c, so you can't change
this.

-corey

>  {
>  	struct smi_info *e;
> -	int rv = -ENOENT;
>  
>  	mutex_lock(&smi_infos_lock);
>  	list_for_each_entry(e, &smi_infos, link) {
>  		if (e->io.dev == dev) {
>  			cleanup_one_si(e);
> -			rv = 0;
>  			break;
>  		}
>  	}
>  	mutex_unlock(&smi_infos_lock);
> -
> -	return rv;
>  }
>  
>  struct device *ipmi_si_remove_by_data(int addr_space, enum si_type si_type,
> diff --git a/drivers/char/ipmi/ipmi_si_parisc.c b/drivers/char/ipmi/ipmi_si_parisc.c
> index 11c9160275df..2be2967f6b5f 100644
> --- a/drivers/char/ipmi/ipmi_si_parisc.c
> +++ b/drivers/char/ipmi/ipmi_si_parisc.c
> @@ -29,9 +29,9 @@ static int __init ipmi_parisc_probe(struct parisc_device *dev)
>  	return ipmi_si_add_smi(&io);
>  }
>  
> -static int __exit ipmi_parisc_remove(struct parisc_device *dev)
> +static void __exit ipmi_parisc_remove(struct parisc_device *dev)
>  {
> -	return ipmi_si_remove_by_dev(&dev->dev);
> +	ipmi_si_remove_by_dev(&dev->dev);
>  }
>  
>  static const struct parisc_device_id ipmi_parisc_tbl[] __initconst = {
> diff --git a/drivers/char/ipmi/ipmi_si_platform.c b/drivers/char/ipmi/ipmi_si_platform.c
> index 380a6a542890..505cc978c97a 100644
> --- a/drivers/char/ipmi/ipmi_si_platform.c
> +++ b/drivers/char/ipmi/ipmi_si_platform.c
> @@ -411,7 +411,9 @@ static int ipmi_probe(struct platform_device *pdev)
>  
>  static int ipmi_remove(struct platform_device *pdev)
>  {
> -	return ipmi_si_remove_by_dev(&pdev->dev);
> +	ipmi_si_remove_by_dev(&pdev->dev);
> +
> +	return 0;
>  }
>  
>  static int pdev_match_name(struct device *dev, const void *data)
> diff --git a/drivers/input/keyboard/hilkbd.c b/drivers/input/keyboard/hilkbd.c
> index 62ccfebf2f60..c1a4d5055de6 100644
> --- a/drivers/input/keyboard/hilkbd.c
> +++ b/drivers/input/keyboard/hilkbd.c
> @@ -316,11 +316,9 @@ static int __init hil_probe_chip(struct parisc_device *dev)
>  	return hil_keyb_init();
>  }
>  
> -static int __exit hil_remove_chip(struct parisc_device *dev)
> +static void __exit hil_remove_chip(struct parisc_device *dev)
>  {
>  	hil_keyb_exit();
> -
> -	return 0;
>  }
>  
>  static const struct parisc_device_id hil_tbl[] __initconst = {
> diff --git a/drivers/input/serio/gscps2.c b/drivers/input/serio/gscps2.c
> index 2f9775de3c5b..a9065c6ab550 100644
> --- a/drivers/input/serio/gscps2.c
> +++ b/drivers/input/serio/gscps2.c
> @@ -411,7 +411,7 @@ static int __init gscps2_probe(struct parisc_device *dev)
>   * @return: success/error report
>   */
>  
> -static int __exit gscps2_remove(struct parisc_device *dev)
> +static void __exit gscps2_remove(struct parisc_device *dev)
>  {
>  	struct gscps2port *ps2port = dev_get_drvdata(&dev->dev);
>  
> @@ -425,7 +425,6 @@ static int __exit gscps2_remove(struct parisc_device *dev)
>  #endif
>  	dev_set_drvdata(&dev->dev, NULL);
>  	kfree(ps2port);
> -	return 0;
>  }
>  
>  
> diff --git a/drivers/net/ethernet/i825xx/lasi_82596.c b/drivers/net/ethernet/i825xx/lasi_82596.c
> index 96c6f4f36904..48e001881c75 100644
> --- a/drivers/net/ethernet/i825xx/lasi_82596.c
> +++ b/drivers/net/ethernet/i825xx/lasi_82596.c
> @@ -196,7 +196,7 @@ lan_init_chip(struct parisc_device *dev)
>  	return retval;
>  }
>  
> -static int __exit lan_remove_chip(struct parisc_device *pdev)
> +static void __exit lan_remove_chip(struct parisc_device *pdev)
>  {
>  	struct net_device *dev = parisc_get_drvdata(pdev);
>  	struct i596_private *lp = netdev_priv(dev);
> @@ -205,7 +205,6 @@ static int __exit lan_remove_chip(struct parisc_device *pdev)
>  	dma_free_noncoherent(&pdev->dev, sizeof(struct i596_private), lp->dma,
>  		       lp->dma_addr, DMA_BIDIRECTIONAL);
>  	free_netdev (dev);
> -	return 0;
>  }
>  
>  static const struct parisc_device_id lan_tbl[] __initconst = {
> diff --git a/drivers/parport/parport_gsc.c b/drivers/parport/parport_gsc.c
> index 1e43b3f399a8..4332692ca4b8 100644
> --- a/drivers/parport/parport_gsc.c
> +++ b/drivers/parport/parport_gsc.c
> @@ -378,7 +378,7 @@ static int __init parport_init_chip(struct parisc_device *dev)
>  	return 0;
>  }
>  
> -static int __exit parport_remove_chip(struct parisc_device *dev)
> +static void __exit parport_remove_chip(struct parisc_device *dev)
>  {
>  	struct parport *p = dev_get_drvdata(&dev->dev);
>  	if (p) {
> @@ -397,7 +397,6 @@ static int __exit parport_remove_chip(struct parisc_device *dev)
>  		parport_put_port(p);
>  		kfree (ops); /* hope no-one cached it */
>  	}
> -	return 0;
>  }
>  
>  static const struct parisc_device_id parport_tbl[] __initconst = {
> diff --git a/drivers/scsi/lasi700.c b/drivers/scsi/lasi700.c
> index 6d14a7a94d0b..86fe19e0468d 100644
> --- a/drivers/scsi/lasi700.c
> +++ b/drivers/scsi/lasi700.c
> @@ -134,7 +134,7 @@ lasi700_probe(struct parisc_device *dev)
>  	return -ENODEV;
>  }
>  
> -static int __exit
> +static void __exit
>  lasi700_driver_remove(struct parisc_device *dev)
>  {
>  	struct Scsi_Host *host = dev_get_drvdata(&dev->dev);
> @@ -146,8 +146,6 @@ lasi700_driver_remove(struct parisc_device *dev)
>  	free_irq(host->irq, host);
>  	iounmap(hostdata->base);
>  	kfree(hostdata);
> -
> -	return 0;
>  }
>  
>  static struct parisc_driver lasi700_driver __refdata = {
> diff --git a/drivers/scsi/zalon.c b/drivers/scsi/zalon.c
> index 7eac76cccc4c..f1e5cf8a17d9 100644
> --- a/drivers/scsi/zalon.c
> +++ b/drivers/scsi/zalon.c
> @@ -168,15 +168,13 @@ static const struct parisc_device_id zalon_tbl[] __initconst = {
>  
>  MODULE_DEVICE_TABLE(parisc, zalon_tbl);
>  
> -static int __exit zalon_remove(struct parisc_device *dev)
> +static void __exit zalon_remove(struct parisc_device *dev)
>  {
>  	struct Scsi_Host *host = dev_get_drvdata(&dev->dev);
>  
>  	scsi_remove_host(host);
>  	ncr53c8xx_release(host);
>  	free_irq(dev->irq, host);
> -
> -	return 0;
>  }
>  
>  static struct parisc_driver zalon_driver __refdata = {
> diff --git a/drivers/tty/serial/mux.c b/drivers/tty/serial/mux.c
> index be640d9863cd..643dfbcc43f9 100644
> --- a/drivers/tty/serial/mux.c
> +++ b/drivers/tty/serial/mux.c
> @@ -496,7 +496,7 @@ static int __init mux_probe(struct parisc_device *dev)
>  	return 0;
>  }
>  
> -static int __exit mux_remove(struct parisc_device *dev)
> +static void __exit mux_remove(struct parisc_device *dev)
>  {
>  	int i, j;
>  	int port_count = (long)dev_get_drvdata(&dev->dev);
> @@ -518,7 +518,6 @@ static int __exit mux_remove(struct parisc_device *dev)
>  	}
>  
>  	release_mem_region(dev->hpa.start + MUX_OFFSET, port_count * MUX_LINE_OFFSET);
> -	return 0;
>  }
>  
>  /* Hack.  This idea was taken from the 8250_gsc.c on how to properly order
> diff --git a/sound/parisc/harmony.c b/sound/parisc/harmony.c
> index 1440db8b4177..2e3e5aa47682 100644
> --- a/sound/parisc/harmony.c
> +++ b/sound/parisc/harmony.c
> @@ -968,11 +968,10 @@ snd_harmony_probe(struct parisc_device *padev)
>  	return err;
>  }
>  
> -static int __exit
> +static void __exit
>  snd_harmony_remove(struct parisc_device *padev)
>  {
>  	snd_card_free(parisc_get_drvdata(padev));
> -	return 0;
>  }
>  
>  static struct parisc_driver snd_harmony_driver __refdata = {
> -- 
> 2.30.2
> 

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

* Re: [PATCH] parisc: Make struct parisc_driver::remove() return void
  2021-08-06  9:39 ` Uwe Kleine-König
@ 2021-08-06 18:46   ` Dmitry Torokhov
  -1 siblings, 0 replies; 9+ messages in thread
From: Dmitry Torokhov @ 2021-08-06 18:46 UTC (permalink / raw)
  To: Uwe Kleine-König
  Cc: James E.J. Bottomley, Helge Deller, Corey Minyard,
	David S. Miller, Jakub Kicinski, Sudip Mukherjee,
	Martin K. Petersen, Greg Kroah-Hartman, Jiri Slaby,
	Jaroslav Kysela, Takashi Iwai, linux-parisc, openipmi-developer,
	linux-input, netdev, linux-scsi, linux-serial, alsa-devel,
	kernel

On Fri, Aug 06, 2021 at 11:39:38AM +0200, Uwe Kleine-König wrote:
> The caller of this function (parisc_driver_remove() in
> arch/parisc/kernel/drivers.c) ignores the return value, so better don't
> return any value at all to not wake wrong expectations in driver authors.
> 
> The only function that could return a non-zero value before was
> ipmi_parisc_remove() which returns the return value of
> ipmi_si_remove_by_dev(). Make this function return void, too, as for all
> other callers the value is ignored, too.
> 
> Also fold in a small checkpatch fix for:
> 
> WARNING: Unnecessary space before function pointer arguments
> +	void (*remove) (struct parisc_device *dev);
> 
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
> ---

...

>  drivers/input/keyboard/hilkbd.c          | 4 +---
>  drivers/input/serio/gscps2.c             | 3 +--

Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>

Thanks.

-- 
Dmitry

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

* Re: [PATCH] parisc: Make struct parisc_driver::remove() return void
@ 2021-08-06 18:46   ` Dmitry Torokhov
  0 siblings, 0 replies; 9+ messages in thread
From: Dmitry Torokhov @ 2021-08-06 18:46 UTC (permalink / raw)
  To: Uwe Kleine-König
  Cc: kernel, alsa-devel, Martin K. Petersen, Corey Minyard,
	linux-scsi, Greg Kroah-Hartman, Helge Deller, Takashi Iwai,
	Sudip Mukherjee, James E.J. Bottomley, netdev, linux-parisc,
	linux-serial, linux-input, Jakub Kicinski, openipmi-developer,
	Jiri Slaby, David S. Miller

On Fri, Aug 06, 2021 at 11:39:38AM +0200, Uwe Kleine-König wrote:
> The caller of this function (parisc_driver_remove() in
> arch/parisc/kernel/drivers.c) ignores the return value, so better don't
> return any value at all to not wake wrong expectations in driver authors.
> 
> The only function that could return a non-zero value before was
> ipmi_parisc_remove() which returns the return value of
> ipmi_si_remove_by_dev(). Make this function return void, too, as for all
> other callers the value is ignored, too.
> 
> Also fold in a small checkpatch fix for:
> 
> WARNING: Unnecessary space before function pointer arguments
> +	void (*remove) (struct parisc_device *dev);
> 
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
> ---

...

>  drivers/input/keyboard/hilkbd.c          | 4 +---
>  drivers/input/serio/gscps2.c             | 3 +--

Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>

Thanks.

-- 
Dmitry

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

* Re: [PATCH] parisc: Make struct parisc_driver::remove() return void
  2021-08-06 17:49   ` Corey Minyard
@ 2021-08-07  9:11     ` Uwe Kleine-König
  -1 siblings, 0 replies; 9+ messages in thread
From: Uwe Kleine-König @ 2021-08-07  9:11 UTC (permalink / raw)
  To: Corey Minyard
  Cc: kernel, alsa-devel, linux-parisc, Martin K. Petersen,
	Greg Kroah-Hartman, Helge Deller, Dmitry Torokhov, linux-scsi,
	Takashi Iwai, Sudip Mukherjee, James E.J. Bottomley, netdev,
	linux-serial, linux-input, Jakub Kicinski, openipmi-developer,
	Jaroslav Kysela, Jiri Slaby, David S. Miller

[-- Attachment #1: Type: text/plain, Size: 884 bytes --]

Hello,

On Fri, Aug 06, 2021 at 12:49:27PM -0500, Corey Minyard wrote:
> On Fri, Aug 06, 2021 at 11:39:38AM +0200, Uwe Kleine-König wrote:
> > -int ipmi_si_remove_by_dev(struct device *dev)
> > +void ipmi_si_remove_by_dev(struct device *dev)
> 
> This function is also used by ipmi_si_platform.c, so you can't change
> this.

Did you see that I adapted ipmi_si_platform.c below? That is an instance
of "Make [ipmi_si_remove_by_dev] return void, too, as for all other
callers the value is ignored, too." (In ipmi_si_platform.c the return
value is used in a struct platform_driver::remove function. The value
returned there is ignored, see commit
e5e1c209788138f33ca6558bf9f572f6904f486d.)

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | https://www.pengutronix.de/ |

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

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

* Re: [PATCH] parisc: Make struct parisc_driver::remove() return void
@ 2021-08-07  9:11     ` Uwe Kleine-König
  0 siblings, 0 replies; 9+ messages in thread
From: Uwe Kleine-König @ 2021-08-07  9:11 UTC (permalink / raw)
  To: Corey Minyard
  Cc: linux-input, alsa-devel, Martin K. Petersen, linux-parisc,
	linux-serial, Greg Kroah-Hartman, Helge Deller, Dmitry Torokhov,
	Takashi Iwai, James E.J. Bottomley, netdev, kernel, linux-scsi,
	Jakub Kicinski, openipmi-developer, Jiri Slaby, Sudip Mukherjee,
	David S. Miller

[-- Attachment #1: Type: text/plain, Size: 884 bytes --]

Hello,

On Fri, Aug 06, 2021 at 12:49:27PM -0500, Corey Minyard wrote:
> On Fri, Aug 06, 2021 at 11:39:38AM +0200, Uwe Kleine-König wrote:
> > -int ipmi_si_remove_by_dev(struct device *dev)
> > +void ipmi_si_remove_by_dev(struct device *dev)
> 
> This function is also used by ipmi_si_platform.c, so you can't change
> this.

Did you see that I adapted ipmi_si_platform.c below? That is an instance
of "Make [ipmi_si_remove_by_dev] return void, too, as for all other
callers the value is ignored, too." (In ipmi_si_platform.c the return
value is used in a struct platform_driver::remove function. The value
returned there is ignored, see commit
e5e1c209788138f33ca6558bf9f572f6904f486d.)

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | https://www.pengutronix.de/ |

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

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

end of thread, other threads:[~2021-08-07  9:13 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-08-06  9:39 [PATCH] parisc: Make struct parisc_driver::remove() return void Uwe Kleine-König
2021-08-06  9:39 ` Uwe Kleine-König
2021-08-06 15:20 ` kernel test robot
2021-08-06 17:49 ` Corey Minyard
2021-08-06 17:49   ` Corey Minyard
2021-08-07  9:11   ` Uwe Kleine-König
2021-08-07  9:11     ` Uwe Kleine-König
2021-08-06 18:46 ` Dmitry Torokhov
2021-08-06 18:46   ` Dmitry Torokhov

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.