[PATCH v4 02/13] drm/atomic: Use __GFP_ZERO instead of explicit memset in drm_atomic_get_private_obj_state()

From: Maxime Ripard

Date: Fri Sep 18 2026 - 10:35:32 EST


The drm_atomic_get_private_obj_state() function allocates a new entry in
the private_objs array using krealloc_array(), then zeroes the new entry
with a separate memset() call.

However, since krealloc_array() already supports the __GFP_ZERO flag to
zero newly allocated memory, the explicit memset() is redundant.

Pass __GFP_ZERO to krealloc_array() and drop the manual memset().

Suggested-by: Thomas Zimmermann <tzimmermann@xxxxxxx>
Signed-off-by: Maxime Ripard <mripard@xxxxxxxxxx>
---
drivers/gpu/drm/drm_atomic.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
index aa47c647df31..43b58e9b25e4 100644
--- a/drivers/gpu/drm/drm_atomic.c
+++ b/drivers/gpu/drm/drm_atomic.c
@@ -1093,17 +1093,16 @@ drm_atomic_get_private_obj_state(struct drm_atomic_commit *state,
if (ret)
return ERR_PTR(ret);

num_objs = state->num_private_objs + 1;
arr = krealloc_array(state->private_objs, num_objs,
- sizeof(*state->private_objs), GFP_KERNEL);
+ sizeof(*state->private_objs), GFP_KERNEL | __GFP_ZERO);
if (!arr)
return ERR_PTR(-ENOMEM);

state->private_objs = arr;
index = state->num_private_objs;
- memset(&state->private_objs[index], 0, sizeof(*state->private_objs));

obj_state = obj->funcs->atomic_duplicate_state(obj);
if (!obj_state)
return ERR_PTR(-ENOMEM);


--
2.55.0