summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Airlie <airlied@linux.ie>2007-05-01 14:20:22 +1000
committerDave Airlie <airlied@linux.ie>2007-05-01 14:20:22 +1000
commit3a69e2484a4a392c8fc8542fc44f9c6552589c46 (patch)
tree2c972bab77519b0f5308f6350c45dbed1a50a5da
parent89231953d108e74ee7b0eb99494ead1dd795d640 (diff)
cleanup usermodes on drm mode setting shutdown
-rw-r--r--linux-core/drm_crtc.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/linux-core/drm_crtc.c b/linux-core/drm_crtc.c
index 201137db..a8f14e17 100644
--- a/linux-core/drm_crtc.c
+++ b/linux-core/drm_crtc.c
@@ -956,6 +956,7 @@ void drm_mode_config_cleanup(drm_device_t *dev)
struct drm_output *output, *ot;
struct drm_crtc *crtc, *ct;
struct drm_framebuffer *fb, *fbt;
+ struct drm_display_mode *mode, *mt;
list_for_each_entry_safe(output, ot, &dev->mode_config.output_list, head) {
drm_output_destroy(output);
}
@@ -964,6 +965,10 @@ void drm_mode_config_cleanup(drm_device_t *dev)
drm_crtc_destroy(crtc);
}
+ list_for_each_entry_safe(mode, mt, &dev->mode_config.usermode_list, head) {
+ drm_mode_destroy(dev, mode);
+ }
+
list_for_each_entry_safe(fb, fbt, &dev->mode_config.fb_list, head) {
drmfb_remove(dev, fb);
/* If this FB was the kernel one, free it */