The driver core ignores the return value of struct device_driver::remove because there is only little that can be done. To simplify the quest to make this function return void, let struct sa1111_driver::remove return void, too. All users already unconditionally return 0, this commit makes it obvious that returning an error code is a bad idea and ensures future users behave accordingly. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx> --- arch/arm/common/sa1111.c | 6 +++--- arch/arm/include/asm/hardware/sa1111.h | 2 +- drivers/input/serio/sa1111ps2.c | 4 +--- drivers/pcmcia/sa1111_generic.c | 3 +-- drivers/usb/host/ohci-sa1111.c | 4 +--- 5 files changed, 7 insertions(+), 12 deletions(-) diff --git a/arch/arm/common/sa1111.c b/arch/arm/common/sa1111.c index f89c1ea327a2..ff5e0d04cb89 100644 --- a/arch/arm/common/sa1111.c +++ b/arch/arm/common/sa1111.c @@ -1368,11 +1368,11 @@ static int sa1111_bus_remove(struct device *dev) { struct sa1111_dev *sadev = to_sa1111_device(dev); struct sa1111_driver *drv = SA1111_DRV(dev->driver); - int ret = 0; if (drv->remove) - ret = drv->remove(sadev); - return ret; + drv->remove(sadev); + + return 0; } struct bus_type sa1111_bus_type = { diff --git a/arch/arm/include/asm/hardware/sa1111.h b/arch/arm/include/asm/hardware/sa1111.h index d134b9a5ff94..2e70db6f22ea 100644 --- a/arch/arm/include/asm/hardware/sa1111.h +++ b/arch/arm/include/asm/hardware/sa1111.h @@ -403,7 +403,7 @@ struct sa1111_driver { struct device_driver drv; unsigned int devid; int (*probe)(struct sa1111_dev *); - int (*remove)(struct sa1111_dev *); + void (*remove)(struct sa1111_dev *); }; #define SA1111_DRV(_d) container_of((_d), struct sa1111_driver, drv) diff --git a/drivers/input/serio/sa1111ps2.c b/drivers/input/serio/sa1111ps2.c index 7b8ceb702a74..68fac4801e2e 100644 --- a/drivers/input/serio/sa1111ps2.c +++ b/drivers/input/serio/sa1111ps2.c @@ -344,7 +344,7 @@ static int ps2_probe(struct sa1111_dev *dev) /* * Remove one device from this driver. */ -static int ps2_remove(struct sa1111_dev *dev) +static void ps2_remove(struct sa1111_dev *dev) { struct ps2if *ps2if = sa1111_get_drvdata(dev); @@ -353,8 +353,6 @@ static int ps2_remove(struct sa1111_dev *dev) sa1111_set_drvdata(dev, NULL); kfree(ps2if); - - return 0; } /* diff --git a/drivers/pcmcia/sa1111_generic.c b/drivers/pcmcia/sa1111_generic.c index 11783410223b..29fdd174bc23 100644 --- a/drivers/pcmcia/sa1111_generic.c +++ b/drivers/pcmcia/sa1111_generic.c @@ -238,7 +238,7 @@ static int pcmcia_probe(struct sa1111_dev *dev) return ret; } -static int pcmcia_remove(struct sa1111_dev *dev) +static void pcmcia_remove(struct sa1111_dev *dev) { struct sa1111_pcmcia_socket *next, *s = dev_get_drvdata(&dev->dev); @@ -252,7 +252,6 @@ static int pcmcia_remove(struct sa1111_dev *dev) release_mem_region(dev->res.start, 512); sa1111_disable_device(dev); - return 0; } static struct sa1111_driver pcmcia_driver = { diff --git a/drivers/usb/host/ohci-sa1111.c b/drivers/usb/host/ohci-sa1111.c index 8e19a5eb5b62..feca826d3f6a 100644 --- a/drivers/usb/host/ohci-sa1111.c +++ b/drivers/usb/host/ohci-sa1111.c @@ -236,7 +236,7 @@ static int ohci_hcd_sa1111_probe(struct sa1111_dev *dev) * Reverses the effect of ohci_hcd_sa1111_probe(), first invoking * the HCD's stop() method. */ -static int ohci_hcd_sa1111_remove(struct sa1111_dev *dev) +static void ohci_hcd_sa1111_remove(struct sa1111_dev *dev) { struct usb_hcd *hcd = sa1111_get_drvdata(dev); @@ -244,8 +244,6 @@ static int ohci_hcd_sa1111_remove(struct sa1111_dev *dev) sa1111_stop_hc(dev); release_mem_region(hcd->rsrc_start, hcd->rsrc_len); usb_put_hcd(hcd); - - return 0; } static void ohci_hcd_sa1111_shutdown(struct device *_dev) -- 2.29.2