diff mbox

drm: fix uninitialized acquire_ctx fields (v2)

Message ID 1402152939-25485-1-git-send-email-robdclark@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Rob Clark June 7, 2014, 2:55 p.m. UTC
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>
---
 drivers/gpu/drm/drm_modeset_lock.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Ville Syrjala June 18, 2014, 11:12 a.m. UTC | #1
On Sat, Jun 07, 2014 at 10:55:39AM -0400, Rob Clark wrote:
> 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>

I thought I already gave these. Well here they are again:
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Tested-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

> ---
>  drivers/gpu/drm/drm_modeset_lock.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/gpu/drm/drm_modeset_lock.c b/drivers/gpu/drm/drm_modeset_lock.c
> index 7c2497d..0dc57d5 100644
> --- a/drivers/gpu/drm/drm_modeset_lock.c
> +++ b/drivers/gpu/drm/drm_modeset_lock.c
> @@ -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);
>  }
> -- 
> 1.9.3
Jani Nikula June 23, 2014, 9:02 a.m. UTC | #2
On Wed, 18 Jun 2014, Ville Syrjälä <ville.syrjala@linux.intel.com> wrote:
> On Sat, Jun 07, 2014 at 10:55:39AM -0400, Rob Clark wrote:
>> 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>
>
> I thought I already gave these. Well here they are again:
> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Tested-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

https://bugzilla.kernel.org/show_bug.cgi?id=78401

>
>> ---
>>  drivers/gpu/drm/drm_modeset_lock.c | 1 +
>>  1 file changed, 1 insertion(+)
>> 
>> diff --git a/drivers/gpu/drm/drm_modeset_lock.c b/drivers/gpu/drm/drm_modeset_lock.c
>> index 7c2497d..0dc57d5 100644
>> --- a/drivers/gpu/drm/drm_modeset_lock.c
>> +++ b/drivers/gpu/drm/drm_modeset_lock.c
>> @@ -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);
>>  }
>> -- 
>> 1.9.3
>
> -- 
> Ville Syrjälä
> Intel OTC
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
diff mbox

Patch

diff --git a/drivers/gpu/drm/drm_modeset_lock.c b/drivers/gpu/drm/drm_modeset_lock.c
index 7c2497d..0dc57d5 100644
--- a/drivers/gpu/drm/drm_modeset_lock.c
+++ b/drivers/gpu/drm/drm_modeset_lock.c
@@ -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);
 }