On Thu, 10 Nov 2011 10:51:26 -0200, Eugeni Dodonov <[email protected]> 
wrote:
> This prevents an in-kernel division by zero which happens when we are
> asking for i915_chipset_val too quickly, or within a race condition
> between the power monitoring thread and userspace accesses via debugfs.
> 
> The issue can be reproduced easily via the following command:
> while ``; do cat /sys/kernel/debug/dri/0/i915_emon_status; done
> 
> This is particularly dangerous because it can be triggered by
> a non-privileged user by just reading the debugfs entry.
> 
> This issue was also found independently by Konstantin Belousov
> <[email protected]>, who proposed a similar patch.
> 
> Reported-by: Konstantin Belousov <[email protected]>
> Acked-by: Jesse Barnes <[email protected]>
> Acked-by: Keith Packard <[email protected]>
> Cc: <[email protected]>
> Signed-off-by: Eugeni Dodonov <[email protected]>
Reviewed-by: Chris Wilson <[email protected]>

Just spotted a typo...
> ---
>  drivers/gpu/drm/i915/i915_dma.c |   10 ++++++++++
>  drivers/gpu/drm/i915/i915_drv.h |    1 +
>  2 files changed, 11 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
> index 8a3942c..de199e7 100644
> --- a/drivers/gpu/drm/i915/i915_dma.c
> +++ b/drivers/gpu/drm/i915/i915_dma.c
> @@ -1453,6 +1453,14 @@ unsigned long i915_chipset_val(struct drm_i915_private 
> *dev_priv)
>  
>       diff1 = now - dev_priv->last_time1;
>  
> +     /* Prevent division-by-zero if we are asking too fast.
> +      * Also, we don't get interesting results in we are polling
s/in/if/
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre
_______________________________________________
Intel-gfx mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to