In insert_mappable_node(), the parameter node is cleared late in node's use with memset. insert_mappable_node() is a singleton, called only from i915_gem_gtt_prepare() which itself is only called by i915_gem_gtt_pread() and i915_gem_gtt_pwrite_fast() where the definition of node originates. Instead of using memset, initialize node to 0 at it's definitions. And remove unneeded clearing of the flags element. Signed-off-by: Tom Rix <trix@xxxxxxxxxx> --- drivers/gpu/drm/i915/i915_gem.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 2e10187cd0a0..7dbd0b325c43 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -69,7 +69,6 @@ insert_mappable_node(struct i915_ggtt *ggtt, struct drm_mm_node *node, u32 size) if (err) return err; - memset(node, 0, sizeof(*node)); err = drm_mm_insert_node_in_range(&ggtt->vm.mm, node, size, 0, I915_COLOR_UNEVICTABLE, 0, ggtt->mappable_end, @@ -328,7 +327,6 @@ static struct i915_vma *i915_gem_gtt_prepare(struct drm_i915_gem_object *obj, goto err_ww; } else if (!IS_ERR(vma)) { node->start = i915_ggtt_offset(vma); - node->flags = 0; } else { ret = insert_mappable_node(ggtt, node, PAGE_SIZE); if (ret) @@ -381,7 +379,7 @@ i915_gem_gtt_pread(struct drm_i915_gem_object *obj, struct drm_i915_private *i915 = to_i915(obj->base.dev); struct i915_ggtt *ggtt = to_gt(i915)->ggtt; intel_wakeref_t wakeref; - struct drm_mm_node node; + struct drm_mm_node node = {}; void __user *user_data; struct i915_vma *vma; u64 remain, offset; @@ -538,7 +536,7 @@ i915_gem_gtt_pwrite_fast(struct drm_i915_gem_object *obj, struct i915_ggtt *ggtt = to_gt(i915)->ggtt; struct intel_runtime_pm *rpm = &i915->runtime_pm; intel_wakeref_t wakeref; - struct drm_mm_node node; + struct drm_mm_node node = {}; struct i915_vma *vma; u64 remain, offset; void __user *user_data; -- 2.27.0