aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGabriel Krisman Bertazi <krisman@collabora.co.uk>2017-01-06 12:57:31 -0500
committerDaniel Vetter <daniel.vetter@ffwll.ch>2017-01-09 05:25:22 -0500
commit11b3c20bdd15d17382068be569740de1dccb173d (patch)
tree149ab965e3bd31ee3885c8361cb262ba450f9fb0
parent931c670d209b64a6033c1a2857ff309eee88f9c8 (diff)
drm: Change the return type of the unload hook to void
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
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu.h2
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c5
-rw-r--r--drivers/gpu/drm/ast/ast_drv.h2
-rw-r--r--drivers/gpu/drm/ast/ast_main.c3
-rw-r--r--drivers/gpu/drm/bochs/bochs_drv.c3
-rw-r--r--drivers/gpu/drm/cirrus/cirrus_drv.h2
-rw-r--r--drivers/gpu/drm/cirrus/cirrus_main.c5
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_drv.c4
-rw-r--r--drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c4
-rw-r--r--drivers/gpu/drm/gma500/psb_drv.c3
-rw-r--r--drivers/gpu/drm/mga/mga_dma.c4
-rw-r--r--drivers/gpu/drm/mga/mga_drv.h2
-rw-r--r--drivers/gpu/drm/mgag200/mgag200_drv.h2
-rw-r--r--drivers/gpu/drm/mgag200/mgag200_main.c5
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_drm.c3
-rw-r--r--drivers/gpu/drm/omapdrm/omap_drv.c4
-rw-r--r--drivers/gpu/drm/qxl/qxl_drv.h2
-rw-r--r--drivers/gpu/drm/qxl/qxl_kms.c5
-rw-r--r--drivers/gpu/drm/radeon/radeon_drv.c2
-rw-r--r--drivers/gpu/drm/radeon/radeon_kms.c5
-rw-r--r--drivers/gpu/drm/savage/savage_bci.c4
-rw-r--r--drivers/gpu/drm/savage/savage_drv.h2
-rw-r--r--drivers/gpu/drm/shmobile/shmob_drm_drv.c4
-rw-r--r--drivers/gpu/drm/sis/sis_drv.c4
-rw-r--r--drivers/gpu/drm/tegra/drm.c6
-rw-r--r--drivers/gpu/drm/udl/udl_drv.h2
-rw-r--r--drivers/gpu/drm/udl/udl_main.c3
-rw-r--r--drivers/gpu/drm/via/via_drv.h2
-rw-r--r--drivers/gpu/drm/via/via_map.c4
-rw-r--r--drivers/gpu/drm/virtio/virtgpu_drv.h2
-rw-r--r--drivers/gpu/drm/virtio/virtgpu_kms.c3
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_drv.c4
-rw-r--r--include/drm/drm_drv.h5
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[];
1711extern const int amdgpu_max_kms_ioctl; 1711extern const int amdgpu_max_kms_ioctl;
1712 1712
1713int amdgpu_driver_load_kms(struct drm_device *dev, unsigned long flags); 1713int amdgpu_driver_load_kms(struct drm_device *dev, unsigned long flags);
1714int amdgpu_driver_unload_kms(struct drm_device *dev); 1714void amdgpu_driver_unload_kms(struct drm_device *dev);
1715void amdgpu_driver_lastclose_kms(struct drm_device *dev); 1715void amdgpu_driver_lastclose_kms(struct drm_device *dev);
1716int amdgpu_driver_open_kms(struct drm_device *dev, struct drm_file *file_priv); 1716int amdgpu_driver_open_kms(struct drm_device *dev, struct drm_file *file_priv);
1717void amdgpu_driver_postclose_kms(struct drm_device *dev, 1717void 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; }
50 * This is the main unload function for KMS (all asics). 50 * This is the main unload function for KMS (all asics).
51 * Returns 0 on success. 51 * Returns 0 on success.
52 */ 52 */
53int amdgpu_driver_unload_kms(struct drm_device *dev) 53void amdgpu_driver_unload_kms(struct drm_device *dev)
54{ 54{
55 struct amdgpu_device *adev = dev->dev_private; 55 struct amdgpu_device *adev = dev->dev_private;
56 56
57 if (adev == NULL) 57 if (adev == NULL)
58 return 0; 58 return;
59 59
60 if (adev->rmmio == NULL) 60 if (adev->rmmio == NULL)
61 goto done_free; 61 goto done_free;
@@ -74,7 +74,6 @@ int amdgpu_driver_unload_kms(struct drm_device *dev)
74done_free: 74done_free:
75 kfree(adev); 75 kfree(adev);
76 dev->dev_private = NULL; 76 dev->dev_private = NULL;
77 return 0;
78} 77}
79 78
80/** 79/**
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 {
122}; 122};
123 123
124int ast_driver_load(struct drm_device *dev, unsigned long flags); 124int ast_driver_load(struct drm_device *dev, unsigned long flags);
125int ast_driver_unload(struct drm_device *dev); 125void ast_driver_unload(struct drm_device *dev);
126 126
127struct ast_gem_object; 127struct ast_gem_object;
128 128
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 @@ out_free:
476 return ret; 476 return ret;
477} 477}
478 478
479int ast_driver_unload(struct drm_device *dev) 479void ast_driver_unload(struct drm_device *dev)
480{ 480{
481 struct ast_private *ast = dev->dev_private; 481 struct ast_private *ast = dev->dev_private;
482 482
@@ -489,7 +489,6 @@ int ast_driver_unload(struct drm_device *dev)
489 pci_iounmap(dev->pdev, ast->ioregs); 489 pci_iounmap(dev->pdev, ast->ioregs);
490 pci_iounmap(dev->pdev, ast->regs); 490 pci_iounmap(dev->pdev, ast->regs);
491 kfree(ast); 491 kfree(ast);
492 return 0;
493} 492}
494 493
495int ast_gem_create(struct drm_device *dev, 494int 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");
19/* ---------------------------------------------------------------------- */ 19/* ---------------------------------------------------------------------- */
20/* drm interface */ 20/* drm interface */
21 21
22static int bochs_unload(struct drm_device *dev) 22static void bochs_unload(struct drm_device *dev)
23{ 23{
24 struct bochs_device *bochs = dev->dev_private; 24 struct bochs_device *bochs = dev->dev_private;
25 25
@@ -29,7 +29,6 @@ static int bochs_unload(struct drm_device *dev)
29 bochs_hw_fini(dev); 29 bochs_hw_fini(dev);
30 kfree(bochs); 30 kfree(bochs);
31 dev->dev_private = NULL; 31 dev->dev_private = NULL;
32 return 0;
33} 32}
34 33
35static int bochs_load(struct drm_device *dev, unsigned long flags) 34static 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);
231 231
232 /* cirrus_kms.c */ 232 /* cirrus_kms.c */
233int cirrus_driver_load(struct drm_device *dev, unsigned long flags); 233int cirrus_driver_load(struct drm_device *dev, unsigned long flags);
234int cirrus_driver_unload(struct drm_device *dev); 234void cirrus_driver_unload(struct drm_device *dev);
235extern struct drm_ioctl_desc cirrus_ioctls[]; 235extern struct drm_ioctl_desc cirrus_ioctls[];
236extern int cirrus_max_ioctl; 236extern int cirrus_max_ioctl;
237 237
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 @@ out:
208 return r; 208 return r;
209} 209}
210 210
211int cirrus_driver_unload(struct drm_device *dev) 211void cirrus_driver_unload(struct drm_device *dev)
212{ 212{
213 struct cirrus_device *cdev = dev->dev_private; 213 struct cirrus_device *cdev = dev->dev_private;
214 214
215 if (cdev == NULL) 215 if (cdev == NULL)
216 return 0; 216 return;
217 cirrus_modeset_fini(cdev); 217 cirrus_modeset_fini(cdev);
218 cirrus_mm_fini(cdev); 218 cirrus_mm_fini(cdev);
219 cirrus_device_fini(cdev); 219 cirrus_device_fini(cdev);
220 kfree(cdev); 220 kfree(cdev);
221 dev->dev_private = NULL; 221 dev->dev_private = NULL;
222 return 0;
223} 222}
224 223
225int cirrus_gem_create(struct drm_device *dev, 224int 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 739180ac3da5..3ec053542e93 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_drv.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_drv.c
@@ -186,7 +186,7 @@ err_free_private:
186 return ret; 186 return ret;
187} 187}
188 188
189static int exynos_drm_unload(struct drm_device *dev) 189static void exynos_drm_unload(struct drm_device *dev)
190{ 190{
191 exynos_drm_device_subdrv_remove(dev); 191 exynos_drm_device_subdrv_remove(dev);
192 192
@@ -200,8 +200,6 @@ static int exynos_drm_unload(struct drm_device *dev)
200 200
201 kfree(dev->dev_private); 201 kfree(dev->dev_private);
202 dev->dev_private = NULL; 202 dev->dev_private = NULL;
203
204 return 0;
205} 203}
206 204
207static int commit_is_pending(struct exynos_drm_private *priv, u32 crtcs) 205static 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 @@ done:
116 return ret; 116 return ret;
117} 117}
118 118
119static int fsl_dcu_unload(struct drm_device *dev) 119static void fsl_dcu_unload(struct drm_device *dev)
120{ 120{
121 struct fsl_dcu_drm_device *fsl_dev = dev->dev_private; 121 struct fsl_dcu_drm_device *fsl_dev = dev->dev_private;
122 122
@@ -131,8 +131,6 @@ static int fsl_dcu_unload(struct drm_device *dev)
131 drm_irq_uninstall(dev); 131 drm_irq_uninstall(dev);
132 132
133 dev->dev_private = NULL; 133 dev->dev_private = NULL;
134
135 return 0;
136} 134}
137 135
138static irqreturn_t fsl_dcu_drm_irq(int irq, void *arg) 136static 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)
159 return 0; 159 return 0;
160} 160}
161 161
162static int psb_driver_unload(struct drm_device *dev) 162static void psb_driver_unload(struct drm_device *dev)
163{ 163{
164 struct drm_psb_private *dev_priv = dev->dev_private; 164 struct drm_psb_private *dev_priv = dev->dev_private;
165 165
@@ -220,7 +220,6 @@ static int psb_driver_unload(struct drm_device *dev)
220 dev->dev_private = NULL; 220 dev->dev_private = NULL;
221 } 221 }
222 gma_power_uninit(dev); 222 gma_power_uninit(dev);
223 return 0;
224} 223}
225 224
226static int psb_driver_load(struct drm_device *dev, unsigned long flags) 225static 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,
1127/** 1127/**
1128 * Called just before the module is unloaded. 1128 * Called just before the module is unloaded.
1129 */ 1129 */
1130int mga_driver_unload(struct drm_device *dev) 1130void mga_driver_unload(struct drm_device *dev)
1131{ 1131{
1132 kfree(dev->dev_private); 1132 kfree(dev->dev_private);
1133 dev->dev_private = NULL; 1133 dev->dev_private = NULL;
1134
1135 return 0;
1136} 1134}
1137 1135
1138/** 1136/**
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,
166extern int mga_dma_buffers(struct drm_device *dev, void *data, 166extern int mga_dma_buffers(struct drm_device *dev, void *data,
167 struct drm_file *file_priv); 167 struct drm_file *file_priv);
168extern int mga_driver_load(struct drm_device *dev, unsigned long flags); 168extern int mga_driver_load(struct drm_device *dev, unsigned long flags);
169extern int mga_driver_unload(struct drm_device *dev); 169extern void mga_driver_unload(struct drm_device *dev);
170extern void mga_driver_lastclose(struct drm_device *dev); 170extern void mga_driver_lastclose(struct drm_device *dev);
171extern int mga_driver_dma_quiescent(struct drm_device *dev); 171extern int mga_driver_dma_quiescent(struct drm_device *dev);
172 172
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,
258 258
259 259
260int mgag200_driver_load(struct drm_device *dev, unsigned long flags); 260int mgag200_driver_load(struct drm_device *dev, unsigned long flags);
261int mgag200_driver_unload(struct drm_device *dev); 261void mgag200_driver_unload(struct drm_device *dev);
262int mgag200_gem_create(struct drm_device *dev, 262int mgag200_gem_create(struct drm_device *dev,
263 u32 size, bool iskernel, 263 u32 size, bool iskernel,
264 struct drm_gem_object **obj); 264 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 @@ err_mm:
264 return r; 264 return r;
265} 265}
266 266
267int mgag200_driver_unload(struct drm_device *dev) 267void mgag200_driver_unload(struct drm_device *dev)
268{ 268{
269 struct mga_device *mdev = dev->dev_private; 269 struct mga_device *mdev = dev->dev_private;
270 270
271 if (mdev == NULL) 271 if (mdev == NULL)
272 return 0; 272 return;
273 mgag200_modeset_fini(mdev); 273 mgag200_modeset_fini(mdev);
274 mgag200_fbdev_fini(mdev); 274 mgag200_fbdev_fini(mdev);
275 drm_mode_config_cleanup(dev); 275 drm_mode_config_cleanup(dev);
276 mgag200_mm_fini(mdev); 276 mgag200_mm_fini(mdev);
277 dev->dev_private = NULL; 277 dev->dev_private = NULL;
278 return 0;
279} 278}
280 279
281int mgag200_gem_create(struct drm_device *dev, 280int 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 @@ fail_device:
502 return ret; 502 return ret;
503} 503}
504 504
505static int 505static void
506nouveau_drm_unload(struct drm_device *dev) 506nouveau_drm_unload(struct drm_device *dev)
507{ 507{
508 struct nouveau_drm *drm = nouveau_drm(dev); 508 struct nouveau_drm *drm = nouveau_drm(dev);
@@ -531,7 +531,6 @@ nouveau_drm_unload(struct drm_device *dev)
531 if (drm->hdmi_device) 531 if (drm->hdmi_device)
532 pci_dev_put(drm->hdmi_device); 532 pci_dev_put(drm->hdmi_device);
533 nouveau_cli_destroy(&drm->client); 533 nouveau_cli_destroy(&drm->client);
534 return 0;
535} 534}
536 535
537void 536void
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)
694 return 0; 694 return 0;
695} 695}
696 696
697static int dev_unload(struct drm_device *dev) 697static void dev_unload(struct drm_device *dev)
698{ 698{
699 struct omap_drm_private *priv = dev->dev_private; 699 struct omap_drm_private *priv = dev->dev_private;
700 700
@@ -717,8 +717,6 @@ static int dev_unload(struct drm_device *dev)
717 dev->dev_private = NULL; 717 dev->dev_private = NULL;
718 718
719 dev_set_drvdata(dev->dev, NULL); 719 dev_set_drvdata(dev->dev, NULL);
720
721 return 0;
722} 720}
723 721
724static int dev_open(struct drm_device *dev, struct drm_file *file) 722static 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[];
337extern int qxl_max_ioctl; 337extern int qxl_max_ioctl;
338 338
339int qxl_driver_load(struct drm_device *dev, unsigned long flags); 339int qxl_driver_load(struct drm_device *dev, unsigned long flags);
340int qxl_driver_unload(struct drm_device *dev); 340void qxl_driver_unload(struct drm_device *dev);
341 341
342int qxl_modeset_init(struct qxl_device *qdev); 342int qxl_modeset_init(struct qxl_device *qdev);
343void qxl_modeset_fini(struct qxl_device *qdev); 343void 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)
285 qxl_debugfs_remove_files(qdev); 285 qxl_debugfs_remove_files(qdev);
286} 286}
287 287
288int qxl_driver_unload(struct drm_device *dev) 288void qxl_driver_unload(struct drm_device *dev)
289{ 289{
290 struct qxl_device *qdev = dev->dev_private; 290 struct qxl_device *qdev = dev->dev_private;
291 291
292 if (qdev == NULL) 292 if (qdev == NULL)
293 return 0; 293 return;
294 294
295 drm_vblank_cleanup(dev); 295 drm_vblank_cleanup(dev);
296 296
@@ -299,7 +299,6 @@ int qxl_driver_unload(struct drm_device *dev)
299 299
300 kfree(qdev); 300 kfree(qdev);
301 dev->dev_private = NULL; 301 dev->dev_private = NULL;
302 return 0;
303} 302}
304 303
305int qxl_driver_load(struct drm_device *dev, unsigned long flags) 304int 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 @@
102#define KMS_DRIVER_MINOR 48 102#define KMS_DRIVER_MINOR 48
103#define KMS_DRIVER_PATCHLEVEL 0 103#define KMS_DRIVER_PATCHLEVEL 0
104int radeon_driver_load_kms(struct drm_device *dev, unsigned long flags); 104int radeon_driver_load_kms(struct drm_device *dev, unsigned long flags);
105int radeon_driver_unload_kms(struct drm_device *dev); 105void radeon_driver_unload_kms(struct drm_device *dev);
106void radeon_driver_lastclose_kms(struct drm_device *dev); 106void radeon_driver_lastclose_kms(struct drm_device *dev);
107int radeon_driver_open_kms(struct drm_device *dev, struct drm_file *file_priv); 107int radeon_driver_open_kms(struct drm_device *dev, struct drm_file *file_priv);
108void radeon_driver_postclose_kms(struct drm_device *dev, 108void 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; }
53 * the rest of the device (CP, writeback, etc.). 53 * the rest of the device (CP, writeback, etc.).
54 * Returns 0 on success. 54 * Returns 0 on success.
55 */ 55 */
56int radeon_driver_unload_kms(struct drm_device *dev) 56void radeon_driver_unload_kms(struct drm_device *dev)
57{ 57{
58 struct radeon_device *rdev = dev->dev_private; 58 struct radeon_device *rdev = dev->dev_private;
59 59
60 if (rdev == NULL) 60 if (rdev == NULL)
61 return 0; 61 return;
62 62
63 if (rdev->rmmio == NULL) 63 if (rdev->rmmio == NULL)
64 goto done_free; 64 goto done_free;
@@ -78,7 +78,6 @@ int radeon_driver_unload_kms(struct drm_device *dev)
78done_free: 78done_free:
79 kfree(rdev); 79 kfree(rdev);
80 dev->dev_private = NULL; 80 dev->dev_private = NULL;
81 return 0;
82} 81}
83 82
84/** 83/**
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)
655 } 655 }
656} 656}
657 657
658int savage_driver_unload(struct drm_device *dev) 658void savage_driver_unload(struct drm_device *dev)
659{ 659{
660 drm_savage_private_t *dev_priv = dev->dev_private; 660 drm_savage_private_t *dev_priv = dev->dev_private;
661 661
662 kfree(dev_priv); 662 kfree(dev_priv);
663
664 return 0;
665} 663}
666 664
667static int savage_do_init_bci(struct drm_device * dev, drm_savage_init_t * init) 665static 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,
210extern int savage_driver_load(struct drm_device *dev, unsigned long chipset); 210extern int savage_driver_load(struct drm_device *dev, unsigned long chipset);
211extern int savage_driver_firstopen(struct drm_device *dev); 211extern int savage_driver_firstopen(struct drm_device *dev);
212extern void savage_driver_lastclose(struct drm_device *dev); 212extern void savage_driver_lastclose(struct drm_device *dev);
213extern int savage_driver_unload(struct drm_device *dev); 213extern void savage_driver_unload(struct drm_device *dev);
214extern void savage_reclaim_buffers(struct drm_device *dev, 214extern void savage_reclaim_buffers(struct drm_device *dev,
215 struct drm_file *file_priv); 215 struct drm_file *file_priv);
216 216
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,
104 * DRM operations 104 * DRM operations
105 */ 105 */
106 106
107static int shmob_drm_unload(struct drm_device *dev) 107static void shmob_drm_unload(struct drm_device *dev)
108{ 108{
109 drm_kms_helper_poll_fini(dev); 109 drm_kms_helper_poll_fini(dev);
110 drm_mode_config_cleanup(dev); 110 drm_mode_config_cleanup(dev);
@@ -112,8 +112,6 @@ static int shmob_drm_unload(struct drm_device *dev)
112 drm_irq_uninstall(dev); 112 drm_irq_uninstall(dev);
113 113
114 dev->dev_private = NULL; 114 dev->dev_private = NULL;
115
116 return 0;
117} 115}
118 116
119static int shmob_drm_load(struct drm_device *dev, unsigned long flags) 117static 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)
54 return 0; 54 return 0;
55} 55}
56 56
57static int sis_driver_unload(struct drm_device *dev) 57static void sis_driver_unload(struct drm_device *dev)
58{ 58{
59 drm_sis_private_t *dev_priv = dev->dev_private; 59 drm_sis_private_t *dev_priv = dev->dev_private;
60 60
61 idr_destroy(&dev_priv->object_idr); 61 idr_destroy(&dev_priv->object_idr);
62 62
63 kfree(dev_priv); 63 kfree(dev_priv);
64
65 return 0;
66} 64}
67 65
68static const struct file_operations sis_driver_fops = { 66static 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 @@ free:
214 return err; 214 return err;
215} 215}
216 216
217static int tegra_drm_unload(struct drm_device *drm) 217static void tegra_drm_unload(struct drm_device *drm)
218{ 218{
219 struct host1x_device *device = to_host1x_device(drm->dev); 219 struct host1x_device *device = to_host1x_device(drm->dev);
220 struct tegra_drm *tegra = drm->dev_private; 220 struct tegra_drm *tegra = drm->dev_private;
@@ -227,7 +227,7 @@ static int tegra_drm_unload(struct drm_device *drm)
227 227
228 err = host1x_device_exit(device); 228 err = host1x_device_exit(device);
229 if (err < 0) 229 if (err < 0)
230 return err; 230 return;
231 231
232 if (tegra->domain) { 232 if (tegra->domain) {
233 iommu_domain_free(tegra->domain); 233 iommu_domain_free(tegra->domain);
@@ -235,8 +235,6 @@ static int tegra_drm_unload(struct drm_device *drm)
235 } 235 }
236 236
237 kfree(tegra); 237 kfree(tegra);
238
239 return 0;
240} 238}
241 239
242static int tegra_drm_open(struct drm_device *drm, struct drm_file *filp) 240static 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);
100void udl_urb_completion(struct urb *urb); 100void udl_urb_completion(struct urb *urb);
101 101
102int udl_driver_load(struct drm_device *dev, unsigned long flags); 102int udl_driver_load(struct drm_device *dev, unsigned long flags);
103int udl_driver_unload(struct drm_device *dev); 103void udl_driver_unload(struct drm_device *dev);
104 104
105int udl_fbdev_init(struct drm_device *dev); 105int udl_fbdev_init(struct drm_device *dev);
106void udl_fbdev_cleanup(struct drm_device *dev); 106void 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)
367 return 0; 367 return 0;
368} 368}
369 369
370int udl_driver_unload(struct drm_device *dev) 370void udl_driver_unload(struct drm_device *dev)
371{ 371{
372 struct udl_device *udl = dev->dev_private; 372 struct udl_device *udl = dev->dev_private;
373 373
@@ -379,5 +379,4 @@ int udl_driver_unload(struct drm_device *dev)
379 udl_fbdev_cleanup(dev); 379 udl_fbdev_cleanup(dev);
380 udl_modeset_cleanup(dev); 380 udl_modeset_cleanup(dev);
381 kfree(udl); 381 kfree(udl);
382 return 0;
383} 382}
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
134extern int via_dma_blit(struct drm_device *dev, void *data, struct drm_file *file_priv); 134extern int via_dma_blit(struct drm_device *dev, void *data, struct drm_file *file_priv);
135 135
136extern int via_driver_load(struct drm_device *dev, unsigned long chipset); 136extern int via_driver_load(struct drm_device *dev, unsigned long chipset);
137extern int via_driver_unload(struct drm_device *dev); 137extern void via_driver_unload(struct drm_device *dev);
138 138
139extern int via_init_context(struct drm_device *dev, int context); 139extern int via_init_context(struct drm_device *dev, int context);
140extern int via_final_context(struct drm_device *dev, int context); 140extern 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)
116 return 0; 116 return 0;
117} 117}
118 118
119int via_driver_unload(struct drm_device *dev) 119void via_driver_unload(struct drm_device *dev)
120{ 120{
121 drm_via_private_t *dev_priv = dev->dev_private; 121 drm_via_private_t *dev_priv = dev->dev_private;
122 122
123 idr_destroy(&dev_priv->object_idr); 123 idr_destroy(&dev_priv->object_idr);
124 124
125 kfree(dev_priv); 125 kfree(dev_priv);
126
127 return 0;
128} 126}
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];
215 215
216/* virtio_kms.c */ 216/* virtio_kms.c */
217int virtio_gpu_driver_load(struct drm_device *dev, unsigned long flags); 217int virtio_gpu_driver_load(struct drm_device *dev, unsigned long flags);
218int virtio_gpu_driver_unload(struct drm_device *dev); 218void virtio_gpu_driver_unload(struct drm_device *dev);
219int virtio_gpu_driver_open(struct drm_device *dev, struct drm_file *file); 219int virtio_gpu_driver_open(struct drm_device *dev, struct drm_file *file);
220void virtio_gpu_driver_postclose(struct drm_device *dev, struct drm_file *file); 220void virtio_gpu_driver_postclose(struct drm_device *dev, struct drm_file *file);
221 221
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)
246 } 246 }
247} 247}
248 248
249int virtio_gpu_driver_unload(struct drm_device *dev) 249void virtio_gpu_driver_unload(struct drm_device *dev)
250{ 250{
251 struct virtio_gpu_device *vgdev = dev->dev_private; 251 struct virtio_gpu_device *vgdev = dev->dev_private;
252 252
@@ -262,7 +262,6 @@ int virtio_gpu_driver_unload(struct drm_device *dev)
262 virtio_gpu_cleanup_cap_cache(vgdev); 262 virtio_gpu_cleanup_cap_cache(vgdev);
263 kfree(vgdev->capsets); 263 kfree(vgdev->capsets);
264 kfree(vgdev); 264 kfree(vgdev);
265 return 0;
266} 265}
267 266
268int virtio_gpu_driver_open(struct drm_device *dev, struct drm_file *file) 267int 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 @@ out_err0:
951 return ret; 951 return ret;
952} 952}
953 953
954static int vmw_driver_unload(struct drm_device *dev) 954static void vmw_driver_unload(struct drm_device *dev)
955{ 955{
956 struct vmw_private *dev_priv = vmw_priv(dev); 956 struct vmw_private *dev_priv = vmw_priv(dev);
957 enum vmw_res_type i; 957 enum vmw_res_type i;
@@ -998,8 +998,6 @@ static int vmw_driver_unload(struct drm_device *dev)
998 idr_destroy(&dev_priv->res_idr[i]); 998 idr_destroy(&dev_priv->res_idr[i]);
999 999
1000 kfree(dev_priv); 1000 kfree(dev_priv);
1001
1002 return 0;
1003} 1001}
1004 1002
1005static void vmw_postclose(struct drm_device *dev, 1003static 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 {
101 * The unload() hook is called right after unregistering 101 * The unload() hook is called right after unregistering
102 * the device. 102 * the device.
103 * 103 *
104 * Returns:
105 *
106 * The return value is ignored.
107 */ 104 */
108 int (*unload) (struct drm_device *); 105 void (*unload) (struct drm_device *);
109 int (*dma_ioctl) (struct drm_device *dev, void *data, struct drm_file *file_priv); 106 int (*dma_ioctl) (struct drm_device *dev, void *data, struct drm_file *file_priv);
110 int (*dma_quiescent) (struct drm_device *); 107 int (*dma_quiescent) (struct drm_device *);
111 int (*context_dtor) (struct drm_device *dev, int context); 108 int (*context_dtor) (struct drm_device *dev, int context);