From: Alexandre Courbot Date: Mon, 25 Jan 2016 09:44:23 +0000 (+0900) Subject: drm/nouveau/device: call nvkm_device_fini if nvkm_device_init fails X-Git-Tag: v4.6-rc1~61^2~14^2~91 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=0529a46a7ae038761d2860b15c8d025cec448e88;p=users%2Fhch%2Fuuid.git drm/nouveau/device: call nvkm_device_fini if nvkm_device_init fails nvkm_device_fini is never called if a failure occurs in nvkm_device_init, even when unloading the module. This can lead to a resources leak (one example is the Tegra interrupt which would never be freed in that case). Fix this by calling nvkm_device_fini in nvkm_device_init's failure path. Signed-off-by: Alexandre Courbot Signed-off-by: Ben Skeggs --- diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c b/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c index b1ba1c782a2b..8ef0ae854038 100644 --- a/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c +++ b/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c @@ -2261,6 +2261,8 @@ fail_subdev: } while (--i >= 0); fail: + nvkm_device_fini(device, false); + nvdev_error(device, "init failed with %d\n", ret); return ret; }