OSDN Git Service

drm: Change the return type of the unload hook to void
authorGabriel Krisman Bertazi <krisman@collabora.co.uk>
Fri, 6 Jan 2017 17:57:31 +0000 (15:57 -0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Mon, 9 Jan 2017 10:25:22 +0000 (11:25 +0100)
The integer returned by the unload hook is ignored by the drm core, so
let's make it void.

This patch was created using the following Coccinelle semantic script
(except for the declaration and comment in drm_drv.h):

Compile-tested only.

// <smpl>
@ get_name @
struct drm_driver drv;
identifier fn;
@@
drv.unload = fn;

@ replace_type @
identifier get_name.fn;
@@
- int
+ void
fn (...)
{
...
}

@ remove_return_param @
identifier get_name.fn;
@@
void fn (...)
{
<...
if (...)
return
- ...
;
...>
 }

@ drop_final_return @
identifier get_name.fn;
@@
void fn (...)
{
...

- return 0;
}
// </smpl>

Suggested-by: Daniel Vetter <daniel.vetter@intel.com>
Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.co.uk>
Acked-by: Christian König <christian.koenig@amd.com>.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/20170106175731.29196-1-krisman@collabora.co.uk
33 files changed:
drivers/gpu/drm/amd/amdgpu/amdgpu.h
drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
drivers/gpu/drm/ast/ast_drv.h
drivers/gpu/drm/ast/ast_main.c
drivers/gpu/drm/bochs/bochs_drv.c
drivers/gpu/drm/cirrus/cirrus_drv.h
drivers/gpu/drm/cirrus/cirrus_main.c
drivers/gpu/drm/exynos/exynos_drm_drv.c
drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
drivers/gpu/drm/gma500/psb_drv.c
drivers/gpu/drm/mga/mga_dma.c
drivers/gpu/drm/mga/mga_drv.h
drivers/gpu/drm/mgag200/mgag200_drv.h
drivers/gpu/drm/mgag200/mgag200_main.c
drivers/gpu/drm/nouveau/nouveau_drm.c
drivers/gpu/drm/omapdrm/omap_drv.c
drivers/gpu/drm/qxl/qxl_drv.h
drivers/gpu/drm/qxl/qxl_kms.c
drivers/gpu/drm/radeon/radeon_drv.c
drivers/gpu/drm/radeon/radeon_kms.c
drivers/gpu/drm/savage/savage_bci.c
drivers/gpu/drm/savage/savage_drv.h
drivers/gpu/drm/shmobile/shmob_drm_drv.c
drivers/gpu/drm/sis/sis_drv.c
drivers/gpu/drm/tegra/drm.c
drivers/gpu/drm/udl/udl_drv.h
drivers/gpu/drm/udl/udl_main.c
drivers/gpu/drm/via/via_drv.h
drivers/gpu/drm/via/via_map.c
drivers/gpu/drm/virtio/virtgpu_drv.h
drivers/gpu/drm/virtio/virtgpu_kms.c
drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
include/drm/drm_drv.h

index 54ac8a8..7077ed6 100644 (file)
@@ -1711,7 +1711,7 @@ extern const struct drm_ioctl_desc amdgpu_ioctls_kms[];
 extern const int amdgpu_max_kms_ioctl;
 
 int amdgpu_driver_load_kms(struct drm_device *dev, unsigned long flags);
-int amdgpu_driver_unload_kms(struct drm_device *dev);
+void amdgpu_driver_unload_kms(struct drm_device *dev);
 void amdgpu_driver_lastclose_kms(struct drm_device *dev);
 int amdgpu_driver_open_kms(struct drm_device *dev, struct drm_file *file_priv);
 void amdgpu_driver_postclose_kms(struct drm_device *dev,
index 9af87ea..8aef258 100644 (file)
@@ -50,12 +50,12 @@ static inline bool amdgpu_has_atpx(void) { return false; }
  * This is the main unload function for KMS (all asics).
  * Returns 0 on success.
  */
-int amdgpu_driver_unload_kms(struct drm_device *dev)
+void amdgpu_driver_unload_kms(struct drm_device *dev)
 {
        struct amdgpu_device *adev = dev->dev_private;
 
        if (adev == NULL)
-               return 0;
+               return;
 
        if (adev->rmmio == NULL)
                goto done_free;
@@ -74,7 +74,6 @@ int amdgpu_driver_unload_kms(struct drm_device *dev)
 done_free:
        kfree(adev);
        dev->dev_private = NULL;
-       return 0;
 }
 
 /**
index 6f3b6f5..1051181 100644 (file)
@@ -122,7 +122,7 @@ struct ast_private {
 };
 
 int ast_driver_load(struct drm_device *dev, unsigned long flags);
-int ast_driver_unload(struct drm_device *dev);
+void ast_driver_unload(struct drm_device *dev);
 
 struct ast_gem_object;
 
index d85af0f..5b59888 100644 (file)
@@ -476,7 +476,7 @@ out_free:
        return ret;
 }
 
-int ast_driver_unload(struct drm_device *dev)
+void ast_driver_unload(struct drm_device *dev)
 {
        struct ast_private *ast = dev->dev_private;
 
@@ -489,7 +489,6 @@ int ast_driver_unload(struct drm_device *dev)
        pci_iounmap(dev->pdev, ast->ioregs);
        pci_iounmap(dev->pdev, ast->regs);
        kfree(ast);
-       return 0;
 }
 
 int ast_gem_create(struct drm_device *dev,
index 15a293e..8a12b3f 100644 (file)
@@ -19,7 +19,7 @@ MODULE_PARM_DESC(fbdev, "register fbdev device");
 /* ---------------------------------------------------------------------- */
 /* drm interface                                                          */
 
-static int bochs_unload(struct drm_device *dev)
+static void bochs_unload(struct drm_device *dev)
 {
        struct bochs_device *bochs = dev->dev_private;
 
@@ -29,7 +29,6 @@ static int bochs_unload(struct drm_device *dev)
        bochs_hw_fini(dev);
        kfree(bochs);
        dev->dev_private = NULL;
-       return 0;
 }
 
 static int bochs_load(struct drm_device *dev, unsigned long flags)
index b59aeef..8690352 100644 (file)
@@ -231,7 +231,7 @@ irqreturn_t cirrus_driver_irq_handler(int irq, void *arg);
 
                                /* cirrus_kms.c */
 int cirrus_driver_load(struct drm_device *dev, unsigned long flags);
-int cirrus_driver_unload(struct drm_device *dev);
+void cirrus_driver_unload(struct drm_device *dev);
 extern struct drm_ioctl_desc cirrus_ioctls[];
 extern int cirrus_max_ioctl;
 
index 52d901f..e7fc95f 100644 (file)
@@ -208,18 +208,17 @@ out:
        return r;
 }
 
-int cirrus_driver_unload(struct drm_device *dev)
+void cirrus_driver_unload(struct drm_device *dev)
 {
        struct cirrus_device *cdev = dev->dev_private;
 
        if (cdev == NULL)
-               return 0;
+               return;
        cirrus_modeset_fini(cdev);
        cirrus_mm_fini(cdev);
        cirrus_device_fini(cdev);
        kfree(cdev);
        dev->dev_private = NULL;
-       return 0;
 }
 
 int cirrus_gem_create(struct drm_device *dev,
index 739180a..3ec0535 100644 (file)
@@ -186,7 +186,7 @@ err_free_private:
        return ret;
 }
 
-static int exynos_drm_unload(struct drm_device *dev)
+static void exynos_drm_unload(struct drm_device *dev)
 {
        exynos_drm_device_subdrv_remove(dev);
 
@@ -200,8 +200,6 @@ static int exynos_drm_unload(struct drm_device *dev)
 
        kfree(dev->dev_private);
        dev->dev_private = NULL;
-
-       return 0;
 }
 
 static int commit_is_pending(struct exynos_drm_private *priv, u32 crtcs)
index 9a31711..4870524 100644 (file)
@@ -116,7 +116,7 @@ done:
        return ret;
 }
 
-static int fsl_dcu_unload(struct drm_device *dev)
+static void fsl_dcu_unload(struct drm_device *dev)
 {
        struct fsl_dcu_drm_device *fsl_dev = dev->dev_private;
 
@@ -131,8 +131,6 @@ static int fsl_dcu_unload(struct drm_device *dev)
        drm_irq_uninstall(dev);
 
        dev->dev_private = NULL;
-
-       return 0;
 }
 
 static irqreturn_t fsl_dcu_drm_irq(int irq, void *arg)
index ff37ea5..0dc7ba2 100644 (file)
@@ -159,7 +159,7 @@ static int psb_do_init(struct drm_device *dev)
        return 0;
 }
 
-static int psb_driver_unload(struct drm_device *dev)
+static void psb_driver_unload(struct drm_device *dev)
 {
        struct drm_psb_private *dev_priv = dev->dev_private;
 
@@ -220,7 +220,6 @@ static int psb_driver_unload(struct drm_device *dev)
                dev->dev_private = NULL;
        }
        gma_power_uninit(dev);
-       return 0;
 }
 
 static int psb_driver_load(struct drm_device *dev, unsigned long flags)
index 1f2f9ca..a1d8dd1 100644 (file)
@@ -1127,12 +1127,10 @@ int mga_dma_buffers(struct drm_device *dev, void *data,
 /**
  * Called just before the module is unloaded.
  */
-int mga_driver_unload(struct drm_device *dev)
+void mga_driver_unload(struct drm_device *dev)
 {
        kfree(dev->dev_private);
        dev->dev_private = NULL;
-
-       return 0;
 }
 
 /**
index bb31233..d5ce829 100644 (file)
@@ -166,7 +166,7 @@ extern int mga_dma_reset(struct drm_device *dev, void *data,
 extern int mga_dma_buffers(struct drm_device *dev, void *data,
                           struct drm_file *file_priv);
 extern int mga_driver_load(struct drm_device *dev, unsigned long flags);
-extern int mga_driver_unload(struct drm_device *dev);
+extern void mga_driver_unload(struct drm_device *dev);
 extern void mga_driver_lastclose(struct drm_device *dev);
 extern int mga_driver_dma_quiescent(struct drm_device *dev);
 
index 87e0934..0d6e998 100644 (file)
@@ -258,7 +258,7 @@ int mgag200_framebuffer_init(struct drm_device *dev,
 
 
 int mgag200_driver_load(struct drm_device *dev, unsigned long flags);
-int mgag200_driver_unload(struct drm_device *dev);
+void mgag200_driver_unload(struct drm_device *dev);
 int mgag200_gem_create(struct drm_device *dev,
                   u32 size, bool iskernel,
                       struct drm_gem_object **obj);
index da8ba6c..dce8a3e 100644 (file)
@@ -264,18 +264,17 @@ err_mm:
        return r;
 }
 
-int mgag200_driver_unload(struct drm_device *dev)
+void mgag200_driver_unload(struct drm_device *dev)
 {
        struct mga_device *mdev = dev->dev_private;
 
        if (mdev == NULL)
-               return 0;
+               return;
        mgag200_modeset_fini(mdev);
        mgag200_fbdev_fini(mdev);
        drm_mode_config_cleanup(dev);
        mgag200_mm_fini(mdev);
        dev->dev_private = NULL;
-       return 0;
 }
 
 int mgag200_gem_create(struct drm_device *dev,
index 59348fc..dd7b52a 100644 (file)
@@ -502,7 +502,7 @@ fail_device:
        return ret;
 }
 
-static int
+static void
 nouveau_drm_unload(struct drm_device *dev)
 {
        struct nouveau_drm *drm = nouveau_drm(dev);
@@ -531,7 +531,6 @@ nouveau_drm_unload(struct drm_device *dev)
        if (drm->hdmi_device)
                pci_dev_put(drm->hdmi_device);
        nouveau_cli_destroy(&drm->client);
-       return 0;
 }
 
 void
index fdc83cb..4fd2e17 100644 (file)
@@ -694,7 +694,7 @@ static int dev_load(struct drm_device *dev, unsigned long flags)
        return 0;
 }
 
-static int dev_unload(struct drm_device *dev)
+static void dev_unload(struct drm_device *dev)
 {
        struct omap_drm_private *priv = dev->dev_private;
 
@@ -717,8 +717,6 @@ static int dev_unload(struct drm_device *dev)
        dev->dev_private = NULL;
 
        dev_set_drvdata(dev->dev, NULL);
-
-       return 0;
 }
 
 static int dev_open(struct drm_device *dev, struct drm_file *file)
index f15ddd0..883d863 100644 (file)
@@ -337,7 +337,7 @@ extern const struct drm_ioctl_desc qxl_ioctls[];
 extern int qxl_max_ioctl;
 
 int qxl_driver_load(struct drm_device *dev, unsigned long flags);
-int qxl_driver_unload(struct drm_device *dev);
+void qxl_driver_unload(struct drm_device *dev);
 
 int qxl_modeset_init(struct qxl_device *qdev);
 void qxl_modeset_fini(struct qxl_device *qdev);
index af685f1..b249140 100644 (file)
@@ -285,12 +285,12 @@ static void qxl_device_fini(struct qxl_device *qdev)
        qxl_debugfs_remove_files(qdev);
 }
 
-int qxl_driver_unload(struct drm_device *dev)
+void qxl_driver_unload(struct drm_device *dev)
 {
        struct qxl_device *qdev = dev->dev_private;
 
        if (qdev == NULL)
-               return 0;
+               return;
 
        drm_vblank_cleanup(dev);
 
@@ -299,7 +299,6 @@ int qxl_driver_unload(struct drm_device *dev)
 
        kfree(qdev);
        dev->dev_private = NULL;
-       return 0;
 }
 
 int qxl_driver_load(struct drm_device *dev, unsigned long flags)
index 00ea000..af3bbe8 100644 (file)
 #define KMS_DRIVER_MINOR       48
 #define KMS_DRIVER_PATCHLEVEL  0
 int radeon_driver_load_kms(struct drm_device *dev, unsigned long flags);
-int radeon_driver_unload_kms(struct drm_device *dev);
+void radeon_driver_unload_kms(struct drm_device *dev);
 void radeon_driver_lastclose_kms(struct drm_device *dev);
 int radeon_driver_open_kms(struct drm_device *dev, struct drm_file *file_priv);
 void radeon_driver_postclose_kms(struct drm_device *dev,
index 4388dde..116cf0d 100644 (file)
@@ -53,12 +53,12 @@ static inline bool radeon_has_atpx(void) { return false; }
  * the rest of the device (CP, writeback, etc.).
  * Returns 0 on success.
  */
-int radeon_driver_unload_kms(struct drm_device *dev)
+void radeon_driver_unload_kms(struct drm_device *dev)
 {
        struct radeon_device *rdev = dev->dev_private;
 
        if (rdev == NULL)
-               return 0;
+               return;
 
        if (rdev->rmmio == NULL)
                goto done_free;
@@ -78,7 +78,6 @@ int radeon_driver_unload_kms(struct drm_device *dev)
 done_free:
        kfree(rdev);
        dev->dev_private = NULL;
-       return 0;
 }
 
 /**
index d47dff9..2a5b846 100644 (file)
@@ -655,13 +655,11 @@ void savage_driver_lastclose(struct drm_device *dev)
        }
 }
 
-int savage_driver_unload(struct drm_device *dev)
+void savage_driver_unload(struct drm_device *dev)
 {
        drm_savage_private_t *dev_priv = dev->dev_private;
 
        kfree(dev_priv);
-
-       return 0;
 }
 
 static int savage_do_init_bci(struct drm_device * dev, drm_savage_init_t * init)
index 37b6995..44a1009 100644 (file)
@@ -210,7 +210,7 @@ extern uint32_t *savage_dma_alloc(drm_savage_private_t * dev_priv,
 extern int savage_driver_load(struct drm_device *dev, unsigned long chipset);
 extern int savage_driver_firstopen(struct drm_device *dev);
 extern void savage_driver_lastclose(struct drm_device *dev);
-extern int savage_driver_unload(struct drm_device *dev);
+extern void savage_driver_unload(struct drm_device *dev);
 extern void savage_reclaim_buffers(struct drm_device *dev,
                                   struct drm_file *file_priv);
 
index 38dd55f..33cec3d 100644 (file)
@@ -104,7 +104,7 @@ static int shmob_drm_setup_clocks(struct shmob_drm_device *sdev,
  * DRM operations
  */
 
-static int shmob_drm_unload(struct drm_device *dev)
+static void shmob_drm_unload(struct drm_device *dev)
 {
        drm_kms_helper_poll_fini(dev);
        drm_mode_config_cleanup(dev);
@@ -112,8 +112,6 @@ static int shmob_drm_unload(struct drm_device *dev)
        drm_irq_uninstall(dev);
 
        dev->dev_private = NULL;
-
-       return 0;
 }
 
 static int shmob_drm_load(struct drm_device *dev, unsigned long flags)
index a836451..7f05da1 100644 (file)
@@ -54,15 +54,13 @@ static int sis_driver_load(struct drm_device *dev, unsigned long chipset)
        return 0;
 }
 
-static int sis_driver_unload(struct drm_device *dev)
+static void sis_driver_unload(struct drm_device *dev)
 {
        drm_sis_private_t *dev_priv = dev->dev_private;
 
        idr_destroy(&dev_priv->object_idr);
 
        kfree(dev_priv);
-
-       return 0;
 }
 
 static const struct file_operations sis_driver_fops = {
index 2817f43..0f4eacb 100644 (file)
@@ -214,7 +214,7 @@ free:
        return err;
 }
 
-static int tegra_drm_unload(struct drm_device *drm)
+static void tegra_drm_unload(struct drm_device *drm)
 {
        struct host1x_device *device = to_host1x_device(drm->dev);
        struct tegra_drm *tegra = drm->dev_private;
@@ -227,7 +227,7 @@ static int tegra_drm_unload(struct drm_device *drm)
 
        err = host1x_device_exit(device);
        if (err < 0)
-               return err;
+               return;
 
        if (tegra->domain) {
                iommu_domain_free(tegra->domain);
@@ -235,8 +235,6 @@ static int tegra_drm_unload(struct drm_device *drm)
        }
 
        kfree(tegra);
-
-       return 0;
 }
 
 static int tegra_drm_open(struct drm_device *drm, struct drm_file *filp)
index f338a57..6c4286e 100644 (file)
@@ -100,7 +100,7 @@ int udl_submit_urb(struct drm_device *dev, struct urb *urb, size_t len);
 void udl_urb_completion(struct urb *urb);
 
 int udl_driver_load(struct drm_device *dev, unsigned long flags);
-int udl_driver_unload(struct drm_device *dev);
+void udl_driver_unload(struct drm_device *dev);
 
 int udl_fbdev_init(struct drm_device *dev);
 void udl_fbdev_cleanup(struct drm_device *dev);
index 873f010..a9d93b8 100644 (file)
@@ -367,7 +367,7 @@ int udl_drop_usb(struct drm_device *dev)
        return 0;
 }
 
-int udl_driver_unload(struct drm_device *dev)
+void udl_driver_unload(struct drm_device *dev)
 {
        struct udl_device *udl = dev->dev_private;
 
@@ -379,5 +379,4 @@ int udl_driver_unload(struct drm_device *dev)
        udl_fbdev_cleanup(dev);
        udl_modeset_cleanup(dev);
        kfree(udl);
-       return 0;
 }
index 286a785..9873942 100644 (file)
@@ -134,7 +134,7 @@ extern int via_dma_blit_sync(struct drm_device *dev, void *data, struct drm_file
 extern int via_dma_blit(struct drm_device *dev, void *data, struct drm_file *file_priv);
 
 extern int via_driver_load(struct drm_device *dev, unsigned long chipset);
-extern int via_driver_unload(struct drm_device *dev);
+extern void via_driver_unload(struct drm_device *dev);
 
 extern int via_init_context(struct drm_device *dev, int context);
 extern int via_final_context(struct drm_device *dev, int context);
index 0b3522d..2ad8658 100644 (file)
@@ -116,13 +116,11 @@ int via_driver_load(struct drm_device *dev, unsigned long chipset)
        return 0;
 }
 
-int via_driver_unload(struct drm_device *dev)
+void via_driver_unload(struct drm_device *dev)
 {
        drm_via_private_t *dev_priv = dev->dev_private;
 
        idr_destroy(&dev_priv->object_idr);
 
        kfree(dev_priv);
-
-       return 0;
 }
index 025f2e3..2f76673 100644 (file)
@@ -215,7 +215,7 @@ extern struct drm_ioctl_desc virtio_gpu_ioctls[DRM_VIRTIO_NUM_IOCTLS];
 
 /* virtio_kms.c */
 int virtio_gpu_driver_load(struct drm_device *dev, unsigned long flags);
-int virtio_gpu_driver_unload(struct drm_device *dev);
+void virtio_gpu_driver_unload(struct drm_device *dev);
 int virtio_gpu_driver_open(struct drm_device *dev, struct drm_file *file);
 void virtio_gpu_driver_postclose(struct drm_device *dev, struct drm_file *file);
 
index 1235519..fae7539 100644 (file)
@@ -246,7 +246,7 @@ static void virtio_gpu_cleanup_cap_cache(struct virtio_gpu_device *vgdev)
        }
 }
 
-int virtio_gpu_driver_unload(struct drm_device *dev)
+void virtio_gpu_driver_unload(struct drm_device *dev)
 {
        struct virtio_gpu_device *vgdev = dev->dev_private;
 
@@ -262,7 +262,6 @@ int virtio_gpu_driver_unload(struct drm_device *dev)
        virtio_gpu_cleanup_cap_cache(vgdev);
        kfree(vgdev->capsets);
        kfree(vgdev);
-       return 0;
 }
 
 int virtio_gpu_driver_open(struct drm_device *dev, struct drm_file *file)
index 18061a4..be35385 100644 (file)
@@ -951,7 +951,7 @@ out_err0:
        return ret;
 }
 
-static int vmw_driver_unload(struct drm_device *dev)
+static void vmw_driver_unload(struct drm_device *dev)
 {
        struct vmw_private *dev_priv = vmw_priv(dev);
        enum vmw_res_type i;
@@ -998,8 +998,6 @@ static int vmw_driver_unload(struct drm_device *dev)
                idr_destroy(&dev_priv->res_idr[i]);
 
        kfree(dev_priv);
-
-       return 0;
 }
 
 static void vmw_postclose(struct drm_device *dev,
index 9c2d9f0..34ece39 100644 (file)
@@ -101,11 +101,8 @@ struct drm_driver {
         * The unload() hook is called right after unregistering
         * the device.
         *
-        * Returns:
-        *
-        * The return value is ignored.
         */
-       int (*unload) (struct drm_device *);
+       void (*unload) (struct drm_device *);
        int (*dma_ioctl) (struct drm_device *dev, void *data, struct drm_file *file_priv);
        int (*dma_quiescent) (struct drm_device *);
        int (*context_dtor) (struct drm_device *dev, int context);