bus: fsl-mc: Make remove function return void
authorUwe Kleine-König <uwe@kleine-koenig.org>
Fri, 10 Mar 2023 22:41:28 +0000 (23:41 +0100)
committerLi Yang <leoyang.li@nxp.com>
Tue, 30 May 2023 23:58:43 +0000 (18:58 -0500)
The value returned by an fsl-mc driver's remove function is mostly
ignored.  (Only an error message is printed if the value is non-zero
and then device removal continues unconditionally.)

So change the prototype of the remove function to return no value. This
way driver authors are not tempted to assume that passing an error to
the upper layer is a good idea. All drivers are adapted accordingly.
There is no intended change of behaviour, all callbacks were prepared to
return 0 before.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Reviewed-by: Ioana Ciornei <ioana.ciornei@nxp.com>
Tested-by: Ioana Ciornei <ioana.ciornei@nxp.com> # sanity checks
Reviewed-by: Laurentiu Tudor <laurentiu.tudor@nxp.com>
Tested-by: Laurentiu Tudor <laurentiu.tudor@nxp.com>
Signed-off-by: Li Yang <leoyang.li@nxp.com>
drivers/bus/fsl-mc/dprc-driver.c
drivers/bus/fsl-mc/fsl-mc-allocator.c
drivers/bus/fsl-mc/fsl-mc-bus.c
drivers/crypto/caam/caamalg_qi2.c
drivers/dma/fsl-dpaa2-qdma/dpaa2-qdma.c
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
drivers/net/ethernet/freescale/dpaa2/dpaa2-ptp.c
drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c
drivers/soc/fsl/dpio/dpio-driver.c
drivers/vfio/fsl-mc/vfio_fsl_mc.c
include/linux/fsl/mc.h

index ef4f43f67b801affd2bb3fbdb1301b9596bba964..595d4cecd0413fa64426d2e0e2476cf1b0c98f88 100644 (file)
@@ -835,13 +835,13 @@ EXPORT_SYMBOL_GPL(dprc_cleanup);
  * It tears down the interrupts that were configured for the DPRC device.
  * It destroys the interrupt pool associated with this MC bus.
  */
-static int dprc_remove(struct fsl_mc_device *mc_dev)
+static void dprc_remove(struct fsl_mc_device *mc_dev)
 {
        struct fsl_mc_bus *mc_bus = to_fsl_mc_bus(mc_dev);
 
        if (!mc_bus->irq_resources) {
                dev_err(&mc_dev->dev, "No irq resources, so unbinding the device failed\n");
-               return 0;
+               return;
        }
 
        if (dev_get_msi_domain(&mc_dev->dev))
@@ -852,7 +852,6 @@ static int dprc_remove(struct fsl_mc_device *mc_dev)
        dprc_cleanup(mc_dev);
 
        dev_info(&mc_dev->dev, "DPRC device unbound from driver");
-       return 0;
 }
 
 static const struct fsl_mc_device_id match_id_table[] = {
index 36f70e5e418bfcebed1d57cd09d800f1b0e491f9..0ad68099684e6f32134bf48fc197f9dc281b502d 100644 (file)
@@ -614,19 +614,18 @@ static int fsl_mc_allocator_probe(struct fsl_mc_device *mc_dev)
  * fsl_mc_allocator_remove - callback invoked when an allocatable device is
  * being removed from the system
  */
-static int fsl_mc_allocator_remove(struct fsl_mc_device *mc_dev)
+static void fsl_mc_allocator_remove(struct fsl_mc_device *mc_dev)
 {
        int error;
 
        if (mc_dev->resource) {
                error = fsl_mc_resource_pool_remove_device(mc_dev);
                if (error < 0)
-                       return 0;
+                       return;
        }
 
        dev_dbg(&mc_dev->dev,
                "Allocatable fsl-mc device unbound from fsl_mc_allocator driver");
-       return 0;
 }
 
 static const struct fsl_mc_device_id match_id_table[] = {
index 410693ff7335e76a8d5699821e345829b266430d..4352745a923ceaf7d25ed699c3cfc5f5df2b9344 100644 (file)
@@ -454,11 +454,8 @@ static int fsl_mc_driver_remove(struct device *dev)
 {
        struct fsl_mc_driver *mc_drv = to_fsl_mc_driver(dev->driver);
        struct fsl_mc_device *mc_dev = to_fsl_mc_device(dev);
-       int error;
 
-       error = mc_drv->remove(mc_dev);
-       if (error < 0)
-               dev_err(dev, "%s failed: %d\n", __func__, error);
+       mc_drv->remove(mc_dev);
 
        return 0;
 }
index 5c8d35edaa1cdc6ae60d7cf99053d9481bc1ad13..9156bbe038b7b0820608066e0c428f7daa260ce4 100644 (file)
@@ -5402,7 +5402,7 @@ err_dma_mask:
        return err;
 }
 
-static int __cold dpaa2_caam_remove(struct fsl_mc_device *ls_dev)
+static void __cold dpaa2_caam_remove(struct fsl_mc_device *ls_dev)
 {
        struct device *dev;
        struct dpaa2_caam_priv *priv;
@@ -5443,8 +5443,6 @@ static int __cold dpaa2_caam_remove(struct fsl_mc_device *ls_dev)
        free_percpu(priv->ppriv);
        fsl_mc_portal_free(priv->mc_io);
        kmem_cache_destroy(qi_cache);
-
-       return 0;
 }
 
 int dpaa2_caam_enqueue(struct device *dev, struct caam_request *req)
index 8dd40d00a672a7ac5943ebf0bcbc22fafd058011..a42a37634881b29f1184000d066edd404841188a 100644 (file)
@@ -765,7 +765,7 @@ err_mcportal:
        return err;
 }
 
-static int dpaa2_qdma_remove(struct fsl_mc_device *ls_dev)
+static void dpaa2_qdma_remove(struct fsl_mc_device *ls_dev)
 {
        struct dpaa2_qdma_engine *dpaa2_qdma;
        struct dpaa2_qdma_priv *priv;
@@ -787,8 +787,6 @@ static int dpaa2_qdma_remove(struct fsl_mc_device *ls_dev)
        dma_async_device_unregister(&dpaa2_qdma->dma_dev);
        kfree(priv);
        kfree(dpaa2_qdma);
-
-       return 0;
 }
 
 static void dpaa2_qdma_shutdown(struct fsl_mc_device *ls_dev)
index a62cffaf6ff115629f9d24db67b4ded092584273..a9676d0dece8edac2cae1d19e0d205a295efbaea 100644 (file)
@@ -5025,7 +5025,7 @@ err_wq_alloc:
        return err;
 }
 
-static int dpaa2_eth_remove(struct fsl_mc_device *ls_dev)
+static void dpaa2_eth_remove(struct fsl_mc_device *ls_dev)
 {
        struct device *dev;
        struct net_device *net_dev;
@@ -5073,8 +5073,6 @@ static int dpaa2_eth_remove(struct fsl_mc_device *ls_dev)
        dev_dbg(net_dev->dev.parent, "Removed interface %s\n", net_dev->name);
 
        free_netdev(net_dev);
-
-       return 0;
 }
 
 static const struct fsl_mc_device_id dpaa2_eth_match_id_table[] = {
index 90d23ab1ce9d9eb3268553d65267920c102da8b2..4497e3c0456d1828afd4e8a067cafefa40dab622 100644 (file)
@@ -219,7 +219,7 @@ err_exit:
        return err;
 }
 
-static int dpaa2_ptp_remove(struct fsl_mc_device *mc_dev)
+static void dpaa2_ptp_remove(struct fsl_mc_device *mc_dev)
 {
        struct device *dev = &mc_dev->dev;
        struct ptp_qoriq *ptp_qoriq;
@@ -232,8 +232,6 @@ static int dpaa2_ptp_remove(struct fsl_mc_device *mc_dev)
        fsl_mc_free_irqs(mc_dev);
        dprtc_close(mc_dev->mc_io, 0, mc_dev->mc_handle);
        fsl_mc_portal_free(mc_dev->mc_io);
-
-       return 0;
 }
 
 static const struct fsl_mc_device_id dpaa2_ptp_match_id_table[] = {
index f4ae4289c41ae674c1fc84318ef71b316fd178b5..21cc4e52425a976b6741c2f00e219bf6cd965a58 100644 (file)
@@ -3221,7 +3221,7 @@ static void dpaa2_switch_teardown(struct fsl_mc_device *sw_dev)
                dev_warn(dev, "dpsw_close err %d\n", err);
 }
 
-static int dpaa2_switch_remove(struct fsl_mc_device *sw_dev)
+static void dpaa2_switch_remove(struct fsl_mc_device *sw_dev)
 {
        struct ethsw_port_priv *port_priv;
        struct ethsw_core *ethsw;
@@ -3252,8 +3252,6 @@ static int dpaa2_switch_remove(struct fsl_mc_device *sw_dev)
        kfree(ethsw);
 
        dev_set_drvdata(dev, NULL);
-
-       return 0;
 }
 
 static int dpaa2_switch_probe_port(struct ethsw_core *ethsw,
index 09df5302d2556f417be4f71df26f5131ab9664b1..9e3fddd8f5a9129cc54a426c2ea4549b39b10ca4 100644 (file)
@@ -270,7 +270,7 @@ static void dpio_teardown_irqs(struct fsl_mc_device *dpio_dev)
        fsl_mc_free_irqs(dpio_dev);
 }
 
-static int dpaa2_dpio_remove(struct fsl_mc_device *dpio_dev)
+static void dpaa2_dpio_remove(struct fsl_mc_device *dpio_dev)
 {
        struct device *dev;
        struct dpio_priv *priv;
@@ -299,8 +299,6 @@ static int dpaa2_dpio_remove(struct fsl_mc_device *dpio_dev)
 
 err_open:
        fsl_mc_portal_free(dpio_dev->mc_io);
-
-       return 0;
 }
 
 static const struct fsl_mc_device_id dpaa2_dpio_match_id_table[] = {
index c89a047a4cd815cbcb827a8ad3a86457a303c039..f2140e94d41efbac306caabac83762e28ad795b4 100644 (file)
@@ -570,7 +570,7 @@ static void vfio_fsl_mc_release_dev(struct vfio_device *core_vdev)
        mutex_destroy(&vdev->igate);
 }
 
-static int vfio_fsl_mc_remove(struct fsl_mc_device *mc_dev)
+static void vfio_fsl_mc_remove(struct fsl_mc_device *mc_dev)
 {
        struct device *dev = &mc_dev->dev;
        struct vfio_fsl_mc_device *vdev = dev_get_drvdata(dev);
@@ -578,7 +578,6 @@ static int vfio_fsl_mc_remove(struct fsl_mc_device *mc_dev)
        vfio_unregister_group_dev(&vdev->vdev);
        dprc_remove_devices(mc_dev, NULL, 0);
        vfio_put_device(&vdev->vdev);
-       return 0;
 }
 
 static const struct vfio_device_ops vfio_fsl_mc_ops = {
index a86115bc799c06256d995e32bf7fb3e74c247337..a1b3de87a3d100e0482cc346afc11c023c4e9042 100644 (file)
@@ -48,7 +48,7 @@ struct fsl_mc_driver {
        struct device_driver driver;
        const struct fsl_mc_device_id *match_id_table;
        int (*probe)(struct fsl_mc_device *dev);
-       int (*remove)(struct fsl_mc_device *dev);
+       void (*remove)(struct fsl_mc_device *dev);
        void (*shutdown)(struct fsl_mc_device *dev);
        int (*suspend)(struct fsl_mc_device *dev, pm_message_t state);
        int (*resume)(struct fsl_mc_device *dev);