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 <deepa...@linux.intel.com>
> Cc: Ville Syrjälä <ville.syrj...@linux.intel.com>
> Signed-off-by: Damien Lespiau <damien.lesp...@intel.com>

Reviewed-by: Ville Syrjälä <ville.syrj...@linux.intel.com>

> ---
>  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@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to