drm: fix uninitialized acquire_ctx fields (v2)
authorRob Clark <robdclark@gmail.com>
Sat, 7 Jun 2014 14:55:39 +0000 (10:55 -0400)
committerDave Airlie <airlied@redhat.com>
Thu, 19 Jun 2014 00:30:36 +0000 (10:30 +1000)
The acquire ctx will typically be declared on the stack, which means we
could have garbage values for any uninitialized field.  In this case, it
was triggering WARN_ON()s because 'contended' had garbage value.

Go ahead and use memset() to be more future-proof.

v2: now with extra brown paper bag

Reported-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Rob Clark <robdclark@gmail.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Tested-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/drm_modeset_lock.c

index 7c2497dea1e9924d5a63f854af6ecbae19087dc2..0dc57d5ecd10d1e7e777c04817b0fd1a67df79e9 100644 (file)
@@ -64,6 +64,7 @@
 void drm_modeset_acquire_init(struct drm_modeset_acquire_ctx *ctx,
                uint32_t flags)
 {
+       memset(ctx, 0, sizeof(*ctx));
        ww_acquire_init(&ctx->ww_ctx, &crtc_ww_class);
        INIT_LIST_HEAD(&ctx->locked);
 }