On Fri, Aug 08, 2014 at 09:32:20PM +0300, Ville Syrjälä wrote: > On Fri, Aug 08, 2014 at 07:25:57PM +0100, Damien Lespiau wrote: > > adj was defined as u8. The issue is last_adj can be negative and adj is > > initialized with: > > > > adj = dev_priv->rps.last_adj; > > > > and we were also happily doing things like: > > > > if (adj < 0) > > > > (thank static analysers!) > > > > v2: Make new_delay an int in case we overflow the u8 in the intermediate > > computations. new_delay will get clamped at the end anyway. (Ville) > > > > Cc: Deepak S <deepak.s@xxxxxxxxxxxxxxx> > > Cc: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > > Signed-off-by: Damien Lespiau <damien.lespiau@xxxxxxxxx> > > Reviewed-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> Queued for -next, thanks for the patch. -Daniel > > > --- > > drivers/gpu/drm/i915/i915_irq.c | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c > > index 9fdf738..8e6729e 100644 > > --- a/drivers/gpu/drm/i915/i915_irq.c > > +++ b/drivers/gpu/drm/i915/i915_irq.c > > @@ -1327,10 +1327,10 @@ static u32 vlv_c0_residency(struct drm_i915_private *dev_priv, > > * @dev_priv: DRM device private > > * > > */ > > -static u32 vlv_calc_delay_from_C0_counters(struct drm_i915_private *dev_priv) > > +static int vlv_calc_delay_from_C0_counters(struct drm_i915_private *dev_priv) > > { > > u32 residency_C0_up = 0, residency_C0_down = 0; > > - u8 new_delay, adj; > > + int new_delay, adj; > > > > dev_priv->rps.ei_interrupt_count++; > > > > -- > > 1.8.3.1 > > -- > Ville Syrjälä > Intel OTC > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx