[Intel-gfx] [PATCH v2 1/8] drm/i915: Fix unsigned overflow when calculating total data rate

Maarten Lankhorst maarten.lankhorst at linux.intel.com
Fri Oct 19 14:15:32 UTC 2018


Op 19-10-18 om 15:06 schreef Chris Wilson:
> Quoting Maarten Lankhorst (2018-10-19 14:03:47)
>> Op 18-10-18 om 17:11 schreef Ville Syrjälä:
>>> On Thu, Oct 18, 2018 at 01:51:27PM +0200, Maarten Lankhorst wrote:
>>>> @@ -4402,8 +4401,7 @@ skl_allocate_pipe_ddb(struct intel_crtc_state *cstate,
>>>>               * result is < available as data_rate / total_data_rate < 1
>>>>               */
>>>>              plane_blocks = minimum[plane_id];
>>>> -            plane_blocks += div_u64((uint64_t)alloc_size * data_rate,
>>>> -                                    total_data_rate);
>>>> +            plane_blocks += alloc_size * data_rate / total_data_rate;
>>> I failed to spot the raw 64bit divisions here. Fortunately CI caught
>>> them (yay). Need to be fixed.
>> No we can't, if we make the per plane data rate 64-bits, the divisor will overflow a div_u64..
> div64_u64()
> -Chris

Right, will use that.



More information about the Intel-gfx mailing list