forked from Minki/linux
isa: Make the remove callback for isa drivers return void
The driver core ignores the return value of the remove callback, so don't give isa drivers the chance to provide a value. Adapt all isa_drivers with a remove callbacks accordingly; they all return 0 unconditionally anyhow. Acked-by: Marc Kleine-Budde <mkl@pengutronix.de> # for drivers/net/can/sja1000/tscan1.c Acked-by: William Breathitt Gray <vilhelm.gray@gmail.com> Acked-by: Wolfram Sang <wsa@kernel.org> # for drivers/i2c/ Reviewed-by: Takashi Iway <tiwai@suse.de> # for sound/ Reviewed-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> # for drivers/media/ Signed-off-by: Uwe Kleine-König <uwe@kleine-koenig.org> Link: https://lore.kernel.org/r/20210122092449.426097-4-uwe@kleine-koenig.org Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
7797b4e00f
commit
30e88d017f
@ -51,7 +51,7 @@ static int isa_bus_remove(struct device *dev)
|
||||
struct isa_driver *isa_driver = dev->platform_data;
|
||||
|
||||
if (isa_driver && isa_driver->remove)
|
||||
return isa_driver->remove(dev, to_isa_dev(dev)->id);
|
||||
isa_driver->remove(dev, to_isa_dev(dev)->id);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -282,7 +282,7 @@ static int elektor_probe(struct device *dev, unsigned int id)
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
static int elektor_remove(struct device *dev, unsigned int id)
|
||||
static void elektor_remove(struct device *dev, unsigned int id)
|
||||
{
|
||||
i2c_del_adapter(&pcf_isa_ops);
|
||||
|
||||
@ -298,8 +298,6 @@ static int elektor_remove(struct device *dev, unsigned int id)
|
||||
iounmap(base_iomem);
|
||||
release_mem_region(base, 2);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct isa_driver i2c_elektor_driver = {
|
||||
|
@ -161,7 +161,7 @@ static int pca_isa_probe(struct device *dev, unsigned int id)
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
static int pca_isa_remove(struct device *dev, unsigned int id)
|
||||
static void pca_isa_remove(struct device *dev, unsigned int id)
|
||||
{
|
||||
i2c_del_adapter(&pca_isa_ops);
|
||||
|
||||
@ -170,8 +170,6 @@ static int pca_isa_remove(struct device *dev, unsigned int id)
|
||||
free_irq(irq, &pca_isa_ops);
|
||||
}
|
||||
release_region(base, IO_SIZE);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct isa_driver pca_isa_driver = {
|
||||
|
@ -171,7 +171,7 @@ static int htcpen_isa_probe(struct device *dev, unsigned int id)
|
||||
return err;
|
||||
}
|
||||
|
||||
static int htcpen_isa_remove(struct device *dev, unsigned int id)
|
||||
static void htcpen_isa_remove(struct device *dev, unsigned int id)
|
||||
{
|
||||
struct input_dev *htcpen_dev = dev_get_drvdata(dev);
|
||||
|
||||
@ -182,8 +182,6 @@ static int htcpen_isa_remove(struct device *dev, unsigned int id)
|
||||
release_region(HTCPEN_PORT_INDEX, 2);
|
||||
release_region(HTCPEN_PORT_INIT, 1);
|
||||
release_region(HTCPEN_PORT_IRQ_CLEAR, 1);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
|
@ -337,13 +337,11 @@ int radio_isa_probe(struct device *pdev, unsigned int dev)
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(radio_isa_probe);
|
||||
|
||||
int radio_isa_remove(struct device *pdev, unsigned int dev)
|
||||
void radio_isa_remove(struct device *pdev, unsigned int dev)
|
||||
{
|
||||
struct radio_isa_card *isa = dev_get_drvdata(pdev);
|
||||
|
||||
radio_isa_common_remove(isa, isa->drv->region_size);
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(radio_isa_remove);
|
||||
|
||||
|
@ -91,7 +91,7 @@ struct radio_isa_driver {
|
||||
|
||||
int radio_isa_match(struct device *pdev, unsigned int dev);
|
||||
int radio_isa_probe(struct device *pdev, unsigned int dev);
|
||||
int radio_isa_remove(struct device *pdev, unsigned int dev);
|
||||
void radio_isa_remove(struct device *pdev, unsigned int dev);
|
||||
#ifdef CONFIG_PNP
|
||||
int radio_isa_pnp_probe(struct pnp_dev *dev,
|
||||
const struct pnp_device_id *dev_id);
|
||||
|
@ -293,11 +293,9 @@ static void fmr2_remove(struct fmr2 *fmr2)
|
||||
kfree(fmr2);
|
||||
}
|
||||
|
||||
static int fmr2_isa_remove(struct device *pdev, unsigned int ndev)
|
||||
static void fmr2_isa_remove(struct device *pdev, unsigned int ndev)
|
||||
{
|
||||
fmr2_remove(dev_get_drvdata(pdev));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void fmr2_pnp_remove(struct pnp_dev *pdev)
|
||||
|
@ -159,7 +159,7 @@ static int tscan1_probe(struct device *dev, unsigned id)
|
||||
return -ENXIO;
|
||||
}
|
||||
|
||||
static int tscan1_remove(struct device *dev, unsigned id /*unused*/)
|
||||
static void tscan1_remove(struct device *dev, unsigned id /*unused*/)
|
||||
{
|
||||
struct net_device *netdev;
|
||||
struct sja1000_priv *priv;
|
||||
@ -179,8 +179,6 @@ static int tscan1_remove(struct device *dev, unsigned id /*unused*/)
|
||||
release_region(pld_base, TSCAN1_PLD_SIZE);
|
||||
|
||||
free_sja1000dev(netdev);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct isa_driver tscan1_isa_driver = {
|
||||
|
@ -335,12 +335,11 @@ static int el3_isa_match(struct device *pdev, unsigned int ndev)
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int el3_isa_remove(struct device *pdev,
|
||||
static void el3_isa_remove(struct device *pdev,
|
||||
unsigned int ndev)
|
||||
{
|
||||
el3_device_remove(pdev);
|
||||
dev_set_drvdata(pdev, NULL);
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
|
@ -11459,12 +11459,11 @@ static int advansys_isa_probe(struct device *dev, unsigned int id)
|
||||
return err;
|
||||
}
|
||||
|
||||
static int advansys_isa_remove(struct device *dev, unsigned int id)
|
||||
static void advansys_isa_remove(struct device *dev, unsigned int id)
|
||||
{
|
||||
int ioport = _asc_def_iop_base[id];
|
||||
advansys_release(dev_get_drvdata(dev));
|
||||
release_region(ioport, ASC_IOADR_GAP);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct isa_driver advansys_isa_driver = {
|
||||
|
@ -1025,12 +1025,11 @@ static int aha1542_isa_match(struct device *pdev, unsigned int ndev)
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int aha1542_isa_remove(struct device *pdev,
|
||||
static void aha1542_isa_remove(struct device *pdev,
|
||||
unsigned int ndev)
|
||||
{
|
||||
aha1542_release(dev_get_drvdata(pdev));
|
||||
dev_set_drvdata(pdev, NULL);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct isa_driver aha1542_isa_driver = {
|
||||
|
@ -175,7 +175,7 @@ static int fdomain_isa_param_match(struct device *dev, unsigned int ndev)
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int fdomain_isa_remove(struct device *dev, unsigned int ndev)
|
||||
static void fdomain_isa_remove(struct device *dev, unsigned int ndev)
|
||||
{
|
||||
struct Scsi_Host *sh = dev_get_drvdata(dev);
|
||||
int base = sh->io_port;
|
||||
@ -183,7 +183,6 @@ static int fdomain_isa_remove(struct device *dev, unsigned int ndev)
|
||||
fdomain_destroy(sh);
|
||||
release_region(base, FDOMAIN_REGION_SIZE);
|
||||
dev_set_drvdata(dev, NULL);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct isa_driver fdomain_isa_driver = {
|
||||
|
@ -720,12 +720,11 @@ static int generic_NCR5380_isa_match(struct device *pdev, unsigned int ndev)
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int generic_NCR5380_isa_remove(struct device *pdev,
|
||||
unsigned int ndev)
|
||||
static void generic_NCR5380_isa_remove(struct device *pdev,
|
||||
unsigned int ndev)
|
||||
{
|
||||
generic_NCR5380_release_resources(dev_get_drvdata(pdev));
|
||||
dev_set_drvdata(pdev, NULL);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct isa_driver generic_NCR5380_isa_driver = {
|
||||
|
@ -951,7 +951,7 @@ error_request_region:
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int pcwd_isa_remove(struct device *dev, unsigned int id)
|
||||
static void pcwd_isa_remove(struct device *dev, unsigned int id)
|
||||
{
|
||||
if (debug >= DEBUG)
|
||||
pr_debug("pcwd_isa_remove id=%d\n", id);
|
||||
@ -968,8 +968,6 @@ static int pcwd_isa_remove(struct device *dev, unsigned int id)
|
||||
(pcwd_private.revision == PCWD_REVISION_A) ? 2 : 4);
|
||||
pcwd_private.io_addr = 0x0000;
|
||||
cards_found--;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void pcwd_isa_shutdown(struct device *dev, unsigned int id)
|
||||
|
@ -13,7 +13,7 @@
|
||||
struct isa_driver {
|
||||
int (*match)(struct device *, unsigned int);
|
||||
int (*probe)(struct device *, unsigned int);
|
||||
int (*remove)(struct device *, unsigned int);
|
||||
void (*remove)(struct device *, unsigned int);
|
||||
void (*shutdown)(struct device *, unsigned int);
|
||||
int (*suspend)(struct device *, unsigned int, pm_message_t);
|
||||
int (*resume)(struct device *, unsigned int);
|
||||
|
@ -118,10 +118,9 @@ out: snd_card_free(card);
|
||||
return error;
|
||||
}
|
||||
|
||||
static int snd_ad1848_remove(struct device *dev, unsigned int n)
|
||||
static void snd_ad1848_remove(struct device *dev, unsigned int n)
|
||||
{
|
||||
snd_card_free(dev_get_drvdata(dev));
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
|
@ -97,10 +97,9 @@ out: snd_card_free(card);
|
||||
return error;
|
||||
}
|
||||
|
||||
static int snd_adlib_remove(struct device *dev, unsigned int n)
|
||||
static void snd_adlib_remove(struct device *dev, unsigned int n)
|
||||
{
|
||||
snd_card_free(dev_get_drvdata(dev));
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct isa_driver snd_adlib_driver = {
|
||||
|
@ -403,7 +403,7 @@ error:
|
||||
return err;
|
||||
}
|
||||
|
||||
static int snd_cmi8328_remove(struct device *pdev, unsigned int dev)
|
||||
static void snd_cmi8328_remove(struct device *pdev, unsigned int dev)
|
||||
{
|
||||
struct snd_card *card = dev_get_drvdata(pdev);
|
||||
struct snd_cmi8328 *cmi = card->private_data;
|
||||
@ -420,7 +420,6 @@ static int snd_cmi8328_remove(struct device *pdev, unsigned int dev)
|
||||
snd_cmi8328_cfg_write(cmi->port, CFG2, 0);
|
||||
snd_cmi8328_cfg_write(cmi->port, CFG3, 0);
|
||||
snd_card_free(card);
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
|
@ -631,11 +631,10 @@ static int snd_cmi8330_isa_probe(struct device *pdev,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int snd_cmi8330_isa_remove(struct device *devptr,
|
||||
static void snd_cmi8330_isa_remove(struct device *devptr,
|
||||
unsigned int dev)
|
||||
{
|
||||
snd_card_free(dev_get_drvdata(devptr));
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
|
@ -135,10 +135,9 @@ out: snd_card_free(card);
|
||||
return error;
|
||||
}
|
||||
|
||||
static int snd_cs4231_remove(struct device *dev, unsigned int n)
|
||||
static void snd_cs4231_remove(struct device *dev, unsigned int n)
|
||||
{
|
||||
snd_card_free(dev_get_drvdata(dev));
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
|
@ -487,11 +487,10 @@ static int snd_cs423x_isa_probe(struct device *pdev,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int snd_cs423x_isa_remove(struct device *pdev,
|
||||
static void snd_cs423x_isa_remove(struct device *pdev,
|
||||
unsigned int dev)
|
||||
{
|
||||
snd_card_free(dev_get_drvdata(pdev));
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
|
@ -192,10 +192,9 @@ out:
|
||||
return error;
|
||||
}
|
||||
|
||||
static int snd_es1688_isa_remove(struct device *dev, unsigned int n)
|
||||
static void snd_es1688_isa_remove(struct device *dev, unsigned int n)
|
||||
{
|
||||
snd_card_free(dev_get_drvdata(dev));
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct isa_driver snd_es1688_driver = {
|
||||
|
@ -2210,11 +2210,10 @@ static int snd_es18xx_isa_probe(struct device *pdev, unsigned int dev)
|
||||
}
|
||||
}
|
||||
|
||||
static int snd_es18xx_isa_remove(struct device *devptr,
|
||||
unsigned int dev)
|
||||
static void snd_es18xx_isa_remove(struct device *devptr,
|
||||
unsigned int dev)
|
||||
{
|
||||
snd_card_free(dev_get_drvdata(devptr));
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
|
@ -608,10 +608,9 @@ error:
|
||||
return err;
|
||||
}
|
||||
|
||||
static int snd_galaxy_remove(struct device *dev, unsigned int n)
|
||||
static void snd_galaxy_remove(struct device *dev, unsigned int n)
|
||||
{
|
||||
snd_card_free(dev_get_drvdata(dev));
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct isa_driver snd_galaxy_driver = {
|
||||
|
@ -195,10 +195,9 @@ out: snd_card_free(card);
|
||||
return error;
|
||||
}
|
||||
|
||||
static int snd_gusclassic_remove(struct device *dev, unsigned int n)
|
||||
static void snd_gusclassic_remove(struct device *dev, unsigned int n)
|
||||
{
|
||||
snd_card_free(dev_get_drvdata(dev));
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct isa_driver snd_gusclassic_driver = {
|
||||
|
@ -324,10 +324,9 @@ out: snd_card_free(card);
|
||||
return error;
|
||||
}
|
||||
|
||||
static int snd_gusextreme_remove(struct device *dev, unsigned int n)
|
||||
static void snd_gusextreme_remove(struct device *dev, unsigned int n)
|
||||
{
|
||||
snd_card_free(dev_get_drvdata(dev));
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct isa_driver snd_gusextreme_driver = {
|
||||
|
@ -338,10 +338,9 @@ static int snd_gusmax_probe(struct device *pdev, unsigned int dev)
|
||||
return err;
|
||||
}
|
||||
|
||||
static int snd_gusmax_remove(struct device *devptr, unsigned int dev)
|
||||
static void snd_gusmax_remove(struct device *devptr, unsigned int dev)
|
||||
{
|
||||
snd_card_free(dev_get_drvdata(devptr));
|
||||
return 0;
|
||||
}
|
||||
|
||||
#define DEV_NAME "gusmax"
|
||||
|
@ -825,10 +825,9 @@ static int snd_interwave_isa_probe(struct device *pdev,
|
||||
}
|
||||
}
|
||||
|
||||
static int snd_interwave_isa_remove(struct device *devptr, unsigned int dev)
|
||||
static void snd_interwave_isa_remove(struct device *devptr, unsigned int dev)
|
||||
{
|
||||
snd_card_free(dev_get_drvdata(devptr));
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct isa_driver snd_interwave_driver = {
|
||||
|
@ -1049,10 +1049,9 @@ cfg_error:
|
||||
#endif
|
||||
}
|
||||
|
||||
static int snd_msnd_isa_remove(struct device *pdev, unsigned int dev)
|
||||
static void snd_msnd_isa_remove(struct device *pdev, unsigned int dev)
|
||||
{
|
||||
snd_msnd_unload(dev_get_drvdata(pdev));
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct isa_driver snd_msnd_driver = {
|
||||
|
@ -878,11 +878,10 @@ static int snd_opl3sa2_isa_probe(struct device *pdev,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int snd_opl3sa2_isa_remove(struct device *devptr,
|
||||
static void snd_opl3sa2_isa_remove(struct device *devptr,
|
||||
unsigned int dev)
|
||||
{
|
||||
snd_card_free(dev_get_drvdata(devptr));
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
|
@ -1480,11 +1480,10 @@ static int snd_miro_isa_probe(struct device *devptr, unsigned int n)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int snd_miro_isa_remove(struct device *devptr,
|
||||
static void snd_miro_isa_remove(struct device *devptr,
|
||||
unsigned int dev)
|
||||
{
|
||||
snd_card_free(dev_get_drvdata(devptr));
|
||||
return 0;
|
||||
}
|
||||
|
||||
#define DEV_NAME "miro"
|
||||
|
@ -1024,11 +1024,10 @@ static int snd_opti9xx_isa_probe(struct device *devptr,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int snd_opti9xx_isa_remove(struct device *devptr,
|
||||
unsigned int dev)
|
||||
static void snd_opti9xx_isa_remove(struct device *devptr,
|
||||
unsigned int dev)
|
||||
{
|
||||
snd_card_free(dev_get_drvdata(devptr));
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
|
@ -339,12 +339,11 @@ err_free:
|
||||
return err;
|
||||
}
|
||||
|
||||
static int snd_jazz16_remove(struct device *devptr, unsigned int dev)
|
||||
static void snd_jazz16_remove(struct device *devptr, unsigned int dev)
|
||||
{
|
||||
struct snd_card *card = dev_get_drvdata(devptr);
|
||||
|
||||
snd_card_free(card);
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
|
@ -547,10 +547,9 @@ static int snd_sb16_isa_probe(struct device *pdev, unsigned int dev)
|
||||
}
|
||||
}
|
||||
|
||||
static int snd_sb16_isa_remove(struct device *pdev, unsigned int dev)
|
||||
static void snd_sb16_isa_remove(struct device *pdev, unsigned int dev)
|
||||
{
|
||||
snd_card_free(dev_get_drvdata(pdev));
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
|
@ -192,10 +192,9 @@ static int snd_sb8_probe(struct device *pdev, unsigned int dev)
|
||||
return err;
|
||||
}
|
||||
|
||||
static int snd_sb8_remove(struct device *pdev, unsigned int dev)
|
||||
static void snd_sb8_remove(struct device *pdev, unsigned int dev)
|
||||
{
|
||||
snd_card_free(dev_get_drvdata(pdev));
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
|
@ -672,7 +672,7 @@ err_exit:
|
||||
return err;
|
||||
}
|
||||
|
||||
static int snd_sc6000_remove(struct device *devptr, unsigned int dev)
|
||||
static void snd_sc6000_remove(struct device *devptr, unsigned int dev)
|
||||
{
|
||||
struct snd_card *card = dev_get_drvdata(devptr);
|
||||
char __iomem **vport = card->private_data;
|
||||
@ -684,7 +684,6 @@ static int snd_sc6000_remove(struct device *devptr, unsigned int dev)
|
||||
release_region(mss_port[dev], 4);
|
||||
|
||||
snd_card_free(card);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct isa_driver snd_sc6000_driver = {
|
||||
|
@ -1183,10 +1183,9 @@ _release_card:
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int snd_sscape_remove(struct device *devptr, unsigned int dev)
|
||||
static void snd_sscape_remove(struct device *devptr, unsigned int dev)
|
||||
{
|
||||
snd_card_free(dev_get_drvdata(devptr));
|
||||
return 0;
|
||||
}
|
||||
|
||||
#define DEV_NAME "sscape"
|
||||
|
@ -565,11 +565,10 @@ static int snd_wavefront_isa_probe(struct device *pdev,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int snd_wavefront_isa_remove(struct device *devptr,
|
||||
static void snd_wavefront_isa_remove(struct device *devptr,
|
||||
unsigned int dev)
|
||||
{
|
||||
snd_card_free(dev_get_drvdata(devptr));
|
||||
return 0;
|
||||
}
|
||||
|
||||
#define DEV_NAME "wavefront"
|
||||
|
Loading…
Reference in New Issue
Block a user