Browse Source

drm/armada: fix incorrect overlay plane cleanup

The Armada overlay plane wasn't being properly cleaned up as it was
missing a call to drm_plane_cleanup().  It also wasn't freeing the
right type of pointer (although we were still freeing the right
pointer value.)

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Russell King 10 years ago
parent
commit
41dbb2dba2
1 changed files with 5 additions and 1 deletions
  1. 5 1
      drivers/gpu/drm/armada/armada_overlay.c

+ 5 - 1
drivers/gpu/drm/armada/armada_overlay.c

@@ -279,7 +279,11 @@ static int armada_plane_disable(struct drm_plane *plane)
 
 static void armada_plane_destroy(struct drm_plane *plane)
 {
-	kfree(plane);
+	struct armada_plane *dplane = drm_to_armada_plane(plane);
+
+	drm_plane_cleanup(plane);
+
+	kfree(dplane);
 }
 
 static int armada_plane_set_property(struct drm_plane *plane,