diff mbox

drm: Change the return type of the unload hook to void

Message ID 20170106175731.29196-1-krisman@collabora.co.uk (mailing list archive)
State New, archived
Headers show

Commit Message

Gabriel Krisman Bertazi Jan. 6, 2017, 5:57 p.m. UTC
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>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu.h       | 2 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c   | 5 ++---
 drivers/gpu/drm/ast/ast_drv.h             | 2 +-
 drivers/gpu/drm/ast/ast_main.c            | 3 +--
 drivers/gpu/drm/bochs/bochs_drv.c         | 3 +--
 drivers/gpu/drm/cirrus/cirrus_drv.h       | 2 +-
 drivers/gpu/drm/cirrus/cirrus_main.c      | 5 ++---
 drivers/gpu/drm/exynos/exynos_drm_drv.c   | 4 +---
 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c | 4 +---
 drivers/gpu/drm/gma500/psb_drv.c          | 3 +--
 drivers/gpu/drm/mga/mga_dma.c             | 4 +---
 drivers/gpu/drm/mga/mga_drv.h             | 2 +-
 drivers/gpu/drm/mgag200/mgag200_drv.h     | 2 +-
 drivers/gpu/drm/mgag200/mgag200_main.c    | 5 ++---
 drivers/gpu/drm/nouveau/nouveau_drm.c     | 3 +--
 drivers/gpu/drm/omapdrm/omap_drv.c        | 4 +---
 drivers/gpu/drm/qxl/qxl_drv.h             | 2 +-
 drivers/gpu/drm/qxl/qxl_kms.c             | 5 ++---
 drivers/gpu/drm/radeon/radeon_drv.c       | 2 +-
 drivers/gpu/drm/radeon/radeon_kms.c       | 5 ++---
 drivers/gpu/drm/savage/savage_bci.c       | 4 +---
 drivers/gpu/drm/savage/savage_drv.h       | 2 +-
 drivers/gpu/drm/shmobile/shmob_drm_drv.c  | 4 +---
 drivers/gpu/drm/sis/sis_drv.c             | 4 +---
 drivers/gpu/drm/tegra/drm.c               | 6 ++----
 drivers/gpu/drm/udl/udl_drv.h             | 2 +-
 drivers/gpu/drm/udl/udl_main.c            | 3 +--
 drivers/gpu/drm/via/via_drv.h             | 2 +-
 drivers/gpu/drm/via/via_map.c             | 4 +---
 drivers/gpu/drm/virtio/virtgpu_drv.h      | 2 +-
 drivers/gpu/drm/virtio/virtgpu_kms.c      | 3 +--
 drivers/gpu/drm/vmwgfx/vmwgfx_drv.c       | 4 +---
 include/drm/drm_drv.h                     | 5 +----
 33 files changed, 39 insertions(+), 73 deletions(-)

Comments

Christian König Jan. 6, 2017, 6:04 p.m. UTC | #1
Am 06.01.2017 um 18:57 schrieb Gabriel Krisman Bertazi:
> 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>.

> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu.h       | 2 +-
>   drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c   | 5 ++---
>   drivers/gpu/drm/ast/ast_drv.h             | 2 +-
>   drivers/gpu/drm/ast/ast_main.c            | 3 +--
>   drivers/gpu/drm/bochs/bochs_drv.c         | 3 +--
>   drivers/gpu/drm/cirrus/cirrus_drv.h       | 2 +-
>   drivers/gpu/drm/cirrus/cirrus_main.c      | 5 ++---
>   drivers/gpu/drm/exynos/exynos_drm_drv.c   | 4 +---
>   drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c | 4 +---
>   drivers/gpu/drm/gma500/psb_drv.c          | 3 +--
>   drivers/gpu/drm/mga/mga_dma.c             | 4 +---
>   drivers/gpu/drm/mga/mga_drv.h             | 2 +-
>   drivers/gpu/drm/mgag200/mgag200_drv.h     | 2 +-
>   drivers/gpu/drm/mgag200/mgag200_main.c    | 5 ++---
>   drivers/gpu/drm/nouveau/nouveau_drm.c     | 3 +--
>   drivers/gpu/drm/omapdrm/omap_drv.c        | 4 +---
>   drivers/gpu/drm/qxl/qxl_drv.h             | 2 +-
>   drivers/gpu/drm/qxl/qxl_kms.c             | 5 ++---
>   drivers/gpu/drm/radeon/radeon_drv.c       | 2 +-
>   drivers/gpu/drm/radeon/radeon_kms.c       | 5 ++---
>   drivers/gpu/drm/savage/savage_bci.c       | 4 +---
>   drivers/gpu/drm/savage/savage_drv.h       | 2 +-
>   drivers/gpu/drm/shmobile/shmob_drm_drv.c  | 4 +---
>   drivers/gpu/drm/sis/sis_drv.c             | 4 +---
>   drivers/gpu/drm/tegra/drm.c               | 6 ++----
>   drivers/gpu/drm/udl/udl_drv.h             | 2 +-
>   drivers/gpu/drm/udl/udl_main.c            | 3 +--
>   drivers/gpu/drm/via/via_drv.h             | 2 +-
>   drivers/gpu/drm/via/via_map.c             | 4 +---
>   drivers/gpu/drm/virtio/virtgpu_drv.h      | 2 +-
>   drivers/gpu/drm/virtio/virtgpu_kms.c      | 3 +--
>   drivers/gpu/drm/vmwgfx/vmwgfx_drv.c       | 4 +---
>   include/drm/drm_drv.h                     | 5 +----
>   33 files changed, 39 insertions(+), 73 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> index 54ac8a845e9f..7077ed65d403 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> @@ -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,
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
> index 9af87eaf8ee3..8aef25828888 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
> @@ -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;
>   }
>   
>   /**
> diff --git a/drivers/gpu/drm/ast/ast_drv.h b/drivers/gpu/drm/ast/ast_drv.h
> index 6f3b6f50cf52..1051181d8c0d 100644
> --- a/drivers/gpu/drm/ast/ast_drv.h
> +++ b/drivers/gpu/drm/ast/ast_drv.h
> @@ -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;
>   
> diff --git a/drivers/gpu/drm/ast/ast_main.c b/drivers/gpu/drm/ast/ast_main.c
> index d85af0ff2653..5b59888426cf 100644
> --- a/drivers/gpu/drm/ast/ast_main.c
> +++ b/drivers/gpu/drm/ast/ast_main.c
> @@ -476,7 +476,7 @@ int ast_driver_load(struct drm_device *dev, unsigned long flags)
>   	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,
> diff --git a/drivers/gpu/drm/bochs/bochs_drv.c b/drivers/gpu/drm/bochs/bochs_drv.c
> index 15a293e65b31..8a12b3f6fc66 100644
> --- a/drivers/gpu/drm/bochs/bochs_drv.c
> +++ b/drivers/gpu/drm/bochs/bochs_drv.c
> @@ -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)
> diff --git a/drivers/gpu/drm/cirrus/cirrus_drv.h b/drivers/gpu/drm/cirrus/cirrus_drv.h
> index b59aeef4635a..8690352d96f7 100644
> --- a/drivers/gpu/drm/cirrus/cirrus_drv.h
> +++ b/drivers/gpu/drm/cirrus/cirrus_drv.h
> @@ -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;
>   
> diff --git a/drivers/gpu/drm/cirrus/cirrus_main.c b/drivers/gpu/drm/cirrus/cirrus_main.c
> index 52d901fa8687..e7fc95f63dca 100644
> --- a/drivers/gpu/drm/cirrus/cirrus_main.c
> +++ b/drivers/gpu/drm/cirrus/cirrus_main.c
> @@ -208,18 +208,17 @@ int cirrus_driver_load(struct drm_device *dev, unsigned long flags)
>   	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,
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.c b/drivers/gpu/drm/exynos/exynos_drm_drv.c
> index 44b4d07eefb5..9f1862d6e9ae 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_drv.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_drv.c
> @@ -186,7 +186,7 @@ static int exynos_drm_load(struct drm_device *dev, unsigned long flags)
>   	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)
> diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
> index 9a31711d5158..48705248f894 100644
> --- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
> +++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
> @@ -116,7 +116,7 @@ static int fsl_dcu_load(struct drm_device *dev, unsigned long flags)
>   	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)
> diff --git a/drivers/gpu/drm/gma500/psb_drv.c b/drivers/gpu/drm/gma500/psb_drv.c
> index ff37ea585664..0dc7ba2fdc22 100644
> --- a/drivers/gpu/drm/gma500/psb_drv.c
> +++ b/drivers/gpu/drm/gma500/psb_drv.c
> @@ -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)
> diff --git a/drivers/gpu/drm/mga/mga_dma.c b/drivers/gpu/drm/mga/mga_dma.c
> index 1f2f9ca25901..a1d8dd15b131 100644
> --- a/drivers/gpu/drm/mga/mga_dma.c
> +++ b/drivers/gpu/drm/mga/mga_dma.c
> @@ -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;
>   }
>   
>   /**
> diff --git a/drivers/gpu/drm/mga/mga_drv.h b/drivers/gpu/drm/mga/mga_drv.h
> index bb312339e0b0..d5ce829b3199 100644
> --- a/drivers/gpu/drm/mga/mga_drv.h
> +++ b/drivers/gpu/drm/mga/mga_drv.h
> @@ -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);
>   
> diff --git a/drivers/gpu/drm/mgag200/mgag200_drv.h b/drivers/gpu/drm/mgag200/mgag200_drv.h
> index 87e0934773de..0d6e998d63e6 100644
> --- a/drivers/gpu/drm/mgag200/mgag200_drv.h
> +++ b/drivers/gpu/drm/mgag200/mgag200_drv.h
> @@ -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);
> diff --git a/drivers/gpu/drm/mgag200/mgag200_main.c b/drivers/gpu/drm/mgag200/mgag200_main.c
> index da8ba6c154e3..dce8a3eb5a10 100644
> --- a/drivers/gpu/drm/mgag200/mgag200_main.c
> +++ b/drivers/gpu/drm/mgag200/mgag200_main.c
> @@ -264,18 +264,17 @@ int mgag200_driver_load(struct drm_device *dev, unsigned long flags)
>   	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,
> diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c
> index 59348fc41c77..dd7b52ab505a 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_drm.c
> +++ b/drivers/gpu/drm/nouveau/nouveau_drm.c
> @@ -502,7 +502,7 @@ nouveau_drm_load(struct drm_device *dev, unsigned long flags)
>   	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
> diff --git a/drivers/gpu/drm/omapdrm/omap_drv.c b/drivers/gpu/drm/omapdrm/omap_drv.c
> index fdc83cbcde61..4fd2e1799a88 100644
> --- a/drivers/gpu/drm/omapdrm/omap_drv.c
> +++ b/drivers/gpu/drm/omapdrm/omap_drv.c
> @@ -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)
> diff --git a/drivers/gpu/drm/qxl/qxl_drv.h b/drivers/gpu/drm/qxl/qxl_drv.h
> index f15ddd0eb85b..883d8639c04e 100644
> --- a/drivers/gpu/drm/qxl/qxl_drv.h
> +++ b/drivers/gpu/drm/qxl/qxl_drv.h
> @@ -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);
> diff --git a/drivers/gpu/drm/qxl/qxl_kms.c b/drivers/gpu/drm/qxl/qxl_kms.c
> index af685f1d91f8..b2491407b616 100644
> --- a/drivers/gpu/drm/qxl/qxl_kms.c
> +++ b/drivers/gpu/drm/qxl/qxl_kms.c
> @@ -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)
> diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c
> index 00ea0002b539..af3bbe82fd48 100644
> --- a/drivers/gpu/drm/radeon/radeon_drv.c
> +++ b/drivers/gpu/drm/radeon/radeon_drv.c
> @@ -102,7 +102,7 @@
>   #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,
> diff --git a/drivers/gpu/drm/radeon/radeon_kms.c b/drivers/gpu/drm/radeon/radeon_kms.c
> index 4388ddeec8d2..116cf0d23595 100644
> --- a/drivers/gpu/drm/radeon/radeon_kms.c
> +++ b/drivers/gpu/drm/radeon/radeon_kms.c
> @@ -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;
>   }
>   
>   /**
> diff --git a/drivers/gpu/drm/savage/savage_bci.c b/drivers/gpu/drm/savage/savage_bci.c
> index d47dff95fe52..2a5b8466d806 100644
> --- a/drivers/gpu/drm/savage/savage_bci.c
> +++ b/drivers/gpu/drm/savage/savage_bci.c
> @@ -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)
> diff --git a/drivers/gpu/drm/savage/savage_drv.h b/drivers/gpu/drm/savage/savage_drv.h
> index 37b699571ad0..44a1009b6ecb 100644
> --- a/drivers/gpu/drm/savage/savage_drv.h
> +++ b/drivers/gpu/drm/savage/savage_drv.h
> @@ -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);
>   
> diff --git a/drivers/gpu/drm/shmobile/shmob_drm_drv.c b/drivers/gpu/drm/shmobile/shmob_drm_drv.c
> index 38dd55f4af81..33cec3d42389 100644
> --- a/drivers/gpu/drm/shmobile/shmob_drm_drv.c
> +++ b/drivers/gpu/drm/shmobile/shmob_drm_drv.c
> @@ -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)
> diff --git a/drivers/gpu/drm/sis/sis_drv.c b/drivers/gpu/drm/sis/sis_drv.c
> index a836451920f0..7f05da13ea5e 100644
> --- a/drivers/gpu/drm/sis/sis_drv.c
> +++ b/drivers/gpu/drm/sis/sis_drv.c
> @@ -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 = {
> diff --git a/drivers/gpu/drm/tegra/drm.c b/drivers/gpu/drm/tegra/drm.c
> index 2817f43f3344..0f4eacb0af4f 100644
> --- a/drivers/gpu/drm/tegra/drm.c
> +++ b/drivers/gpu/drm/tegra/drm.c
> @@ -214,7 +214,7 @@ static int tegra_drm_load(struct drm_device *drm, unsigned long flags)
>   	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)
> diff --git a/drivers/gpu/drm/udl/udl_drv.h b/drivers/gpu/drm/udl/udl_drv.h
> index f338a576efc8..6c4286e57362 100644
> --- a/drivers/gpu/drm/udl/udl_drv.h
> +++ b/drivers/gpu/drm/udl/udl_drv.h
> @@ -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);
> diff --git a/drivers/gpu/drm/udl/udl_main.c b/drivers/gpu/drm/udl/udl_main.c
> index 873f010d9616..a9d93b871a15 100644
> --- a/drivers/gpu/drm/udl/udl_main.c
> +++ b/drivers/gpu/drm/udl/udl_main.c
> @@ -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;
>   }
> diff --git a/drivers/gpu/drm/via/via_drv.h b/drivers/gpu/drm/via/via_drv.h
> index 286a785fab4f..9873942ca8f4 100644
> --- a/drivers/gpu/drm/via/via_drv.h
> +++ b/drivers/gpu/drm/via/via_drv.h
> @@ -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);
> diff --git a/drivers/gpu/drm/via/via_map.c b/drivers/gpu/drm/via/via_map.c
> index 0b3522dba6e8..2ad865870372 100644
> --- a/drivers/gpu/drm/via/via_map.c
> +++ b/drivers/gpu/drm/via/via_map.c
> @@ -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;
>   }
> diff --git a/drivers/gpu/drm/virtio/virtgpu_drv.h b/drivers/gpu/drm/virtio/virtgpu_drv.h
> index 025f2e3d483f..2f766735c16d 100644
> --- a/drivers/gpu/drm/virtio/virtgpu_drv.h
> +++ b/drivers/gpu/drm/virtio/virtgpu_drv.h
> @@ -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);
>   
> diff --git a/drivers/gpu/drm/virtio/virtgpu_kms.c b/drivers/gpu/drm/virtio/virtgpu_kms.c
> index 1235519853f4..fae75394b5d0 100644
> --- a/drivers/gpu/drm/virtio/virtgpu_kms.c
> +++ b/drivers/gpu/drm/virtio/virtgpu_kms.c
> @@ -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)
> diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
> index 18061a4bc2f2..be35385bb26c 100644
> --- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
> +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
> @@ -951,7 +951,7 @@ static int vmw_driver_load(struct drm_device *dev, unsigned long chipset)
>   	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,
> diff --git a/include/drm/drm_drv.h b/include/drm/drm_drv.h
> index 9c2d9f0bb043..34ece393c639 100644
> --- a/include/drm/drm_drv.h
> +++ b/include/drm/drm_drv.h
> @@ -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);
diff mbox

Patch

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
index 54ac8a845e9f..7077ed65d403 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
@@ -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,
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
index 9af87eaf8ee3..8aef25828888 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
@@ -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;
 }
 
 /**
diff --git a/drivers/gpu/drm/ast/ast_drv.h b/drivers/gpu/drm/ast/ast_drv.h
index 6f3b6f50cf52..1051181d8c0d 100644
--- a/drivers/gpu/drm/ast/ast_drv.h
+++ b/drivers/gpu/drm/ast/ast_drv.h
@@ -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;
 
diff --git a/drivers/gpu/drm/ast/ast_main.c b/drivers/gpu/drm/ast/ast_main.c
index d85af0ff2653..5b59888426cf 100644
--- a/drivers/gpu/drm/ast/ast_main.c
+++ b/drivers/gpu/drm/ast/ast_main.c
@@ -476,7 +476,7 @@  int ast_driver_load(struct drm_device *dev, unsigned long flags)
 	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,
diff --git a/drivers/gpu/drm/bochs/bochs_drv.c b/drivers/gpu/drm/bochs/bochs_drv.c
index 15a293e65b31..8a12b3f6fc66 100644
--- a/drivers/gpu/drm/bochs/bochs_drv.c
+++ b/drivers/gpu/drm/bochs/bochs_drv.c
@@ -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)
diff --git a/drivers/gpu/drm/cirrus/cirrus_drv.h b/drivers/gpu/drm/cirrus/cirrus_drv.h
index b59aeef4635a..8690352d96f7 100644
--- a/drivers/gpu/drm/cirrus/cirrus_drv.h
+++ b/drivers/gpu/drm/cirrus/cirrus_drv.h
@@ -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;
 
diff --git a/drivers/gpu/drm/cirrus/cirrus_main.c b/drivers/gpu/drm/cirrus/cirrus_main.c
index 52d901fa8687..e7fc95f63dca 100644
--- a/drivers/gpu/drm/cirrus/cirrus_main.c
+++ b/drivers/gpu/drm/cirrus/cirrus_main.c
@@ -208,18 +208,17 @@  int cirrus_driver_load(struct drm_device *dev, unsigned long flags)
 	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,
diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.c b/drivers/gpu/drm/exynos/exynos_drm_drv.c
index 44b4d07eefb5..9f1862d6e9ae 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_drv.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_drv.c
@@ -186,7 +186,7 @@  static int exynos_drm_load(struct drm_device *dev, unsigned long flags)
 	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)
diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
index 9a31711d5158..48705248f894 100644
--- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
+++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
@@ -116,7 +116,7 @@  static int fsl_dcu_load(struct drm_device *dev, unsigned long flags)
 	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)
diff --git a/drivers/gpu/drm/gma500/psb_drv.c b/drivers/gpu/drm/gma500/psb_drv.c
index ff37ea585664..0dc7ba2fdc22 100644
--- a/drivers/gpu/drm/gma500/psb_drv.c
+++ b/drivers/gpu/drm/gma500/psb_drv.c
@@ -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)
diff --git a/drivers/gpu/drm/mga/mga_dma.c b/drivers/gpu/drm/mga/mga_dma.c
index 1f2f9ca25901..a1d8dd15b131 100644
--- a/drivers/gpu/drm/mga/mga_dma.c
+++ b/drivers/gpu/drm/mga/mga_dma.c
@@ -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;
 }
 
 /**
diff --git a/drivers/gpu/drm/mga/mga_drv.h b/drivers/gpu/drm/mga/mga_drv.h
index bb312339e0b0..d5ce829b3199 100644
--- a/drivers/gpu/drm/mga/mga_drv.h
+++ b/drivers/gpu/drm/mga/mga_drv.h
@@ -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);
 
diff --git a/drivers/gpu/drm/mgag200/mgag200_drv.h b/drivers/gpu/drm/mgag200/mgag200_drv.h
index 87e0934773de..0d6e998d63e6 100644
--- a/drivers/gpu/drm/mgag200/mgag200_drv.h
+++ b/drivers/gpu/drm/mgag200/mgag200_drv.h
@@ -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);
diff --git a/drivers/gpu/drm/mgag200/mgag200_main.c b/drivers/gpu/drm/mgag200/mgag200_main.c
index da8ba6c154e3..dce8a3eb5a10 100644
--- a/drivers/gpu/drm/mgag200/mgag200_main.c
+++ b/drivers/gpu/drm/mgag200/mgag200_main.c
@@ -264,18 +264,17 @@  int mgag200_driver_load(struct drm_device *dev, unsigned long flags)
 	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,
diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c
index 59348fc41c77..dd7b52ab505a 100644
--- a/drivers/gpu/drm/nouveau/nouveau_drm.c
+++ b/drivers/gpu/drm/nouveau/nouveau_drm.c
@@ -502,7 +502,7 @@  nouveau_drm_load(struct drm_device *dev, unsigned long flags)
 	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
diff --git a/drivers/gpu/drm/omapdrm/omap_drv.c b/drivers/gpu/drm/omapdrm/omap_drv.c
index fdc83cbcde61..4fd2e1799a88 100644
--- a/drivers/gpu/drm/omapdrm/omap_drv.c
+++ b/drivers/gpu/drm/omapdrm/omap_drv.c
@@ -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)
diff --git a/drivers/gpu/drm/qxl/qxl_drv.h b/drivers/gpu/drm/qxl/qxl_drv.h
index f15ddd0eb85b..883d8639c04e 100644
--- a/drivers/gpu/drm/qxl/qxl_drv.h
+++ b/drivers/gpu/drm/qxl/qxl_drv.h
@@ -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);
diff --git a/drivers/gpu/drm/qxl/qxl_kms.c b/drivers/gpu/drm/qxl/qxl_kms.c
index af685f1d91f8..b2491407b616 100644
--- a/drivers/gpu/drm/qxl/qxl_kms.c
+++ b/drivers/gpu/drm/qxl/qxl_kms.c
@@ -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)
diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c
index 00ea0002b539..af3bbe82fd48 100644
--- a/drivers/gpu/drm/radeon/radeon_drv.c
+++ b/drivers/gpu/drm/radeon/radeon_drv.c
@@ -102,7 +102,7 @@ 
 #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,
diff --git a/drivers/gpu/drm/radeon/radeon_kms.c b/drivers/gpu/drm/radeon/radeon_kms.c
index 4388ddeec8d2..116cf0d23595 100644
--- a/drivers/gpu/drm/radeon/radeon_kms.c
+++ b/drivers/gpu/drm/radeon/radeon_kms.c
@@ -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;
 }
 
 /**
diff --git a/drivers/gpu/drm/savage/savage_bci.c b/drivers/gpu/drm/savage/savage_bci.c
index d47dff95fe52..2a5b8466d806 100644
--- a/drivers/gpu/drm/savage/savage_bci.c
+++ b/drivers/gpu/drm/savage/savage_bci.c
@@ -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)
diff --git a/drivers/gpu/drm/savage/savage_drv.h b/drivers/gpu/drm/savage/savage_drv.h
index 37b699571ad0..44a1009b6ecb 100644
--- a/drivers/gpu/drm/savage/savage_drv.h
+++ b/drivers/gpu/drm/savage/savage_drv.h
@@ -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);
 
diff --git a/drivers/gpu/drm/shmobile/shmob_drm_drv.c b/drivers/gpu/drm/shmobile/shmob_drm_drv.c
index 38dd55f4af81..33cec3d42389 100644
--- a/drivers/gpu/drm/shmobile/shmob_drm_drv.c
+++ b/drivers/gpu/drm/shmobile/shmob_drm_drv.c
@@ -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)
diff --git a/drivers/gpu/drm/sis/sis_drv.c b/drivers/gpu/drm/sis/sis_drv.c
index a836451920f0..7f05da13ea5e 100644
--- a/drivers/gpu/drm/sis/sis_drv.c
+++ b/drivers/gpu/drm/sis/sis_drv.c
@@ -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 = {
diff --git a/drivers/gpu/drm/tegra/drm.c b/drivers/gpu/drm/tegra/drm.c
index 2817f43f3344..0f4eacb0af4f 100644
--- a/drivers/gpu/drm/tegra/drm.c
+++ b/drivers/gpu/drm/tegra/drm.c
@@ -214,7 +214,7 @@  static int tegra_drm_load(struct drm_device *drm, unsigned long flags)
 	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)
diff --git a/drivers/gpu/drm/udl/udl_drv.h b/drivers/gpu/drm/udl/udl_drv.h
index f338a576efc8..6c4286e57362 100644
--- a/drivers/gpu/drm/udl/udl_drv.h
+++ b/drivers/gpu/drm/udl/udl_drv.h
@@ -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);
diff --git a/drivers/gpu/drm/udl/udl_main.c b/drivers/gpu/drm/udl/udl_main.c
index 873f010d9616..a9d93b871a15 100644
--- a/drivers/gpu/drm/udl/udl_main.c
+++ b/drivers/gpu/drm/udl/udl_main.c
@@ -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;
 }
diff --git a/drivers/gpu/drm/via/via_drv.h b/drivers/gpu/drm/via/via_drv.h
index 286a785fab4f..9873942ca8f4 100644
--- a/drivers/gpu/drm/via/via_drv.h
+++ b/drivers/gpu/drm/via/via_drv.h
@@ -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);
diff --git a/drivers/gpu/drm/via/via_map.c b/drivers/gpu/drm/via/via_map.c
index 0b3522dba6e8..2ad865870372 100644
--- a/drivers/gpu/drm/via/via_map.c
+++ b/drivers/gpu/drm/via/via_map.c
@@ -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;
 }
diff --git a/drivers/gpu/drm/virtio/virtgpu_drv.h b/drivers/gpu/drm/virtio/virtgpu_drv.h
index 025f2e3d483f..2f766735c16d 100644
--- a/drivers/gpu/drm/virtio/virtgpu_drv.h
+++ b/drivers/gpu/drm/virtio/virtgpu_drv.h
@@ -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);
 
diff --git a/drivers/gpu/drm/virtio/virtgpu_kms.c b/drivers/gpu/drm/virtio/virtgpu_kms.c
index 1235519853f4..fae75394b5d0 100644
--- a/drivers/gpu/drm/virtio/virtgpu_kms.c
+++ b/drivers/gpu/drm/virtio/virtgpu_kms.c
@@ -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)
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
index 18061a4bc2f2..be35385bb26c 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
@@ -951,7 +951,7 @@  static int vmw_driver_load(struct drm_device *dev, unsigned long chipset)
 	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,
diff --git a/include/drm/drm_drv.h b/include/drm/drm_drv.h
index 9c2d9f0bb043..34ece393c639 100644
--- a/include/drm/drm_drv.h
+++ b/include/drm/drm_drv.h
@@ -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);