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
