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 at intel.com> > Signed-off-by: Gabriel Krisman Bertazi <krisman at collabora.co.uk>
Acked-by: Christian König <christian.koenig at 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);