]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/atomic: Make drm_atomic_private_obj_init fallible
authorMaxime Ripard <mripard@kernel.org>
Wed, 28 Jan 2026 12:43:45 +0000 (13:43 +0100)
committerMaxime Ripard <mripard@kernel.org>
Tue, 10 Feb 2026 09:05:23 +0000 (10:05 +0100)
Since we're going to move the drm_private_obj state allocation to a
callback, we need to be able to deal with its possible failure.

Make drm_private_obj_init return an error code on failure.

Suggested-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://patch.msgid.link/20260128-drm-private-obj-reset-v4-1-90891fa3d3b0@redhat.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
drivers/gpu/drm/drm_atomic.c
include/drm/drm_atomic.h

index 52738b80ddbeb124896f6124df5628e2ac27faa4..4191a8333fc4ebdfc10f664c837a3f1693eff022 100644 (file)
@@ -927,12 +927,14 @@ static void drm_atomic_plane_print_state(struct drm_printer *p,
  *
  * Initialize the private object, which can be embedded into any
  * driver private object that needs its own atomic state.
+ *
+ * RETURNS:
+ * Zero on success, error code on failure
  */
-void
-drm_atomic_private_obj_init(struct drm_device *dev,
-                           struct drm_private_obj *obj,
-                           struct drm_private_state *state,
-                           const struct drm_private_state_funcs *funcs)
+int drm_atomic_private_obj_init(struct drm_device *dev,
+                               struct drm_private_obj *obj,
+                               struct drm_private_state *state,
+                               const struct drm_private_state_funcs *funcs)
 {
        memset(obj, 0, sizeof(*obj));
 
@@ -944,6 +946,8 @@ drm_atomic_private_obj_init(struct drm_device *dev,
        list_add_tail(&obj->head, &dev->mode_config.privobj_list);
 
        state->obj = obj;
+
+       return 0;
 }
 EXPORT_SYMBOL(drm_atomic_private_obj_init);
 
index 178f8f62c80fc58fe42e8564a716da1a99ddb7da..712f5fb977bff8a15592a3949444d9ac306e6c54 100644 (file)
@@ -723,10 +723,10 @@ struct drm_connector_state * __must_check
 drm_atomic_get_connector_state(struct drm_atomic_state *state,
                               struct drm_connector *connector);
 
-void drm_atomic_private_obj_init(struct drm_device *dev,
-                                struct drm_private_obj *obj,
-                                struct drm_private_state *state,
-                                const struct drm_private_state_funcs *funcs);
+int drm_atomic_private_obj_init(struct drm_device *dev,
+                               struct drm_private_obj *obj,
+                               struct drm_private_state *state,
+                               const struct drm_private_state_funcs *funcs);
 void drm_atomic_private_obj_fini(struct drm_private_obj *obj);
 
 struct drm_private_state * __must_check