[Nouveau] [PATCH 03/14] drm/nouveau/device: Simplify init, fini fuction
Emil Velikov
emil.l.velikov at gmail.com
Sun May 20 16:14:52 PDT 2012
Removes unnecessary goto statement
fini subdevices before destroying them
Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
---
drivers/gpu/drm/nouveau/nouveau_device.c | 26 +++++++++++++++-----------
1 file changed, 15 insertions(+), 11 deletions(-)
diff --git a/drivers/gpu/drm/nouveau/nouveau_device.c b/drivers/gpu/drm/nouveau/nouveau_device.c
index 9cc21d1..38ed71a 100644
--- a/drivers/gpu/drm/nouveau/nouveau_device.c
+++ b/drivers/gpu/drm/nouveau/nouveau_device.c
@@ -55,13 +55,13 @@ nouveau_device_init(struct nouveau_device *ndev)
for (i = 0; i < NVDEV_SUBDEV_NR; i++) {
ret = nouveau_subdev_init(ndev, i, 0);
- if (ret)
- goto error;
+ if (ret) {
+ for (--i; i >= 0; i--)
+ nouveau_subdev_fini(ndev, i, false);
+ break;
+ }
}
-error:
- for (--i; ret && i >= 0; i--)
- nouveau_subdev_fini(ndev, i, false);
return ret;
}
@@ -72,13 +72,13 @@ nouveau_device_fini(struct nouveau_device *ndev, bool suspend)
for (i = NVDEV_SUBDEV_NR - 1; i >= 0; i--) {
ret = nouveau_subdev_fini(ndev, i, suspend);
- if (ret)
- goto error;
+ if (ret) {
+ for (--i; i >= 0; i--)
+ nouveau_subdev_init(ndev, i, 0);
+ break;
+ }
}
-error:
- for (--i; ret && i >= 0; i--)
- nouveau_subdev_init(ndev, i, 0);
return ret;
}
@@ -96,6 +96,7 @@ nouveau_device_create(struct nouveau_device *ndev)
{
int disable = nouveau_noaccel;
int ret = 0;
+ int i;
/* mask out any engines that are known not to work as they should,
* these can be overridden by the user
@@ -553,7 +554,10 @@ nouveau_device_create(struct nouveau_device *ndev)
break;
}
- if (ret)
+ if (ret) {
+ for (i = NVDEV_SUBDEV_NR - 1; i >= 0; i--)
+ nouveau_subdev_fini(ndev, i, false);
nouveau_device_destroy(ndev);
+ }
return ret;
}
--
1.7.10.2
More information about the Nouveau
mailing list