From: Ville Syrjälä <ville.syrj...@linux.intel.com>

v2: kstrdup() the name passed by the caller (Jani)

Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
---
 drivers/gpu/drm/drm_atomic.c        | 12 ++++++------
 drivers/gpu/drm/drm_atomic_helper.c |  4 ++--
 drivers/gpu/drm/drm_crtc.c          | 11 ++++++++++-
 include/drm/drm_crtc.h              |  2 ++
 4 files changed, 20 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
index 2944655..df84060 100644
--- a/drivers/gpu/drm/drm_atomic.c
+++ b/drivers/gpu/drm/drm_atomic.c
@@ -543,8 +543,8 @@ drm_atomic_get_plane_state(struct drm_atomic_state *state,
        state->planes[index] = plane;
        plane_state->state = state;

-       DRM_DEBUG_ATOMIC("Added [PLANE:%d] %p state to %p\n",
-                        plane->base.id, plane_state, state);
+       DRM_DEBUG_ATOMIC("Added [PLANE:%d:%s] %p state to %p\n",
+                        plane->base.id, plane->name, plane_state, state);

        if (plane_state->crtc) {
                struct drm_crtc_state *crtc_state;
@@ -755,8 +755,8 @@ static int drm_atomic_plane_check(struct drm_plane *plane,
        }

        if (plane_switching_crtc(state->state, plane, state)) {
-               DRM_DEBUG_ATOMIC("[PLANE:%d] switching CRTC directly\n",
-                                plane->base.id);
+               DRM_DEBUG_ATOMIC("[PLANE:%d:%s] switching CRTC directly\n",
+                                plane->base.id, plane->name);
                return -EINVAL;
        }

@@ -1229,8 +1229,8 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
        for_each_plane_in_state(state, plane, plane_state, i) {
                ret = drm_atomic_plane_check(plane, plane_state);
                if (ret) {
-                       DRM_DEBUG_ATOMIC("[PLANE:%d] atomic core check 
failed\n",
-                                        plane->base.id);
+                       DRM_DEBUG_ATOMIC("[PLANE:%d:%s] atomic core check 
failed\n",
+                                        plane->base.id, plane->name);
                        return ret;
                }
        }
diff --git a/drivers/gpu/drm/drm_atomic_helper.c 
b/drivers/gpu/drm/drm_atomic_helper.c
index fc90af50..387d95c 100644
--- a/drivers/gpu/drm/drm_atomic_helper.c
+++ b/drivers/gpu/drm/drm_atomic_helper.c
@@ -503,8 +503,8 @@ drm_atomic_helper_check_planes(struct drm_device *dev,

                ret = funcs->atomic_check(plane, plane_state);
                if (ret) {
-                       DRM_DEBUG_ATOMIC("[PLANE:%d] atomic driver check 
failed\n",
-                                        plane->base.id);
+                       DRM_DEBUG_ATOMIC("[PLANE:%d:%s] atomic driver check 
failed\n",
+                                        plane->base.id, plane->name);
                        return ret;
                }
        }
diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
index 399ded5..29f5a2a 100644
--- a/drivers/gpu/drm/drm_crtc.c
+++ b/drivers/gpu/drm/drm_crtc.c
@@ -1174,9 +1174,15 @@ int drm_universal_plane_init(struct drm_device *dev, 
struct drm_plane *plane,
        struct drm_mode_config *config = &dev->mode_config;
        int ret;

+       plane->name = kstrdup(name, GFP_KERNEL);
+       if (!plane->name)
+               return -ENOMEM;
+
        ret = drm_mode_object_get(dev, &plane->base, DRM_MODE_OBJECT_PLANE);
-       if (ret)
+       if (ret) {
+               kfree(plane->name);
                return ret;
+       }

        drm_modeset_lock_init(&plane->mutex);

@@ -1188,6 +1194,7 @@ int drm_universal_plane_init(struct drm_device *dev, 
struct drm_plane *plane,
        if (!plane->format_types) {
                DRM_DEBUG_KMS("out of memory when allocating plane\n");
                drm_mode_object_put(dev, &plane->base);
+               kfree(plane->name);
                return -ENOMEM;
        }

@@ -1281,6 +1288,8 @@ void drm_plane_cleanup(struct drm_plane *plane)
        if (plane->state && plane->funcs->atomic_destroy_state)
                plane->funcs->atomic_destroy_state(plane, plane->state);

+       kfree(plane->name);
+
        memset(plane, 0, sizeof(*plane));
 }
 EXPORT_SYMBOL(drm_plane_cleanup);
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
index 4d47a73..5c1c583 100644
--- a/include/drm/drm_crtc.h
+++ b/include/drm/drm_crtc.h
@@ -848,6 +848,8 @@ struct drm_plane {
        struct drm_device *dev;
        struct list_head head;

+       char *name;
+
        struct drm_modeset_lock mutex;

        struct drm_mode_object base;
-- 
2.4.10

Reply via email to