diff options
author | Maarten Lankhorst <maarten.lankhorst@canonical.com> | 2014-06-17 09:01:48 -0400 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2014-06-18 01:49:50 -0400 |
commit | 242a42eadfc17448a0d5b2ffc0cb191c8b51971a (patch) | |
tree | 2aa266e90e59f86b04d5dd2cb7e1441b2dd18380 /drivers/gpu/drm | |
parent | 82c2b5ed6f2760caaa7871f018166fadd849d2d2 (diff) |
drm/nouveau/disp: fix oops in destructor with headless cards
If init doesn't run then disp->outp might not be initialized, resulting
in an oops.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm')
-rw-r--r-- | drivers/gpu/drm/nouveau/core/engine/disp/base.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/gpu/drm/nouveau/core/engine/disp/base.c b/drivers/gpu/drm/nouveau/core/engine/disp/base.c index c41f656abe64..9c38c5e40500 100644 --- a/drivers/gpu/drm/nouveau/core/engine/disp/base.c +++ b/drivers/gpu/drm/nouveau/core/engine/disp/base.c | |||
@@ -99,8 +99,10 @@ _nouveau_disp_dtor(struct nouveau_object *object) | |||
99 | 99 | ||
100 | nouveau_event_destroy(&disp->vblank); | 100 | nouveau_event_destroy(&disp->vblank); |
101 | 101 | ||
102 | list_for_each_entry_safe(outp, outt, &disp->outp, head) { | 102 | if (disp->outp.next) { |
103 | nouveau_object_ref(NULL, (struct nouveau_object **)&outp); | 103 | list_for_each_entry_safe(outp, outt, &disp->outp, head) { |
104 | nouveau_object_ref(NULL, (struct nouveau_object **)&outp); | ||
105 | } | ||
104 | } | 106 | } |
105 | 107 | ||
106 | nouveau_engine_destroy(&disp->base); | 108 | nouveau_engine_destroy(&disp->base); |