NACK/CMNT: [SRU][R][PATCH 13/13] drm: ensure that vblank diff is never negative

Alice C. Munduruca alice.munduruca at canonical.com
Thu May 14 09:46:21 UTC 2026


On Wed May 13, 2026 at 6:48 PM CEST, Werner Sembach wrote:
> From: Aaron Erhardt <aer at tuxedocomputers.com>
>
> Handle cases, where drivers report incorrect timestamps and negative
> time differences are calculated. If the negative difference is large
> enough, negative missed vblanks are reported, but stored in an unsigned
> integer which can causes freezes. This patch prevents this case.
>
> This fix has been verified to fix problems with the i915 driver on
> modern Intel CPUs (e.g. Intel Core Ultra 7 155H).
>
> Signed-off-by: Aaron Erhardt <aer at tuxedocomputers.com>
> Signed-off-by: Werner Sembach <wse at tuxedocomputers.com>
> ---
>  drivers/gpu/drm/drm_vblank.c | 9 ++++++++-
>  1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
> index f78bf37f1e0a7..46cf78a514f23 100644
> --- a/drivers/gpu/drm/drm_vblank.c
> +++ b/drivers/gpu/drm/drm_vblank.c
> @@ -1564,7 +1564,14 @@ static void drm_vblank_restore(struct drm_device *dev, unsigned int pipe)
>  	} while (cur_vblank != __get_vblank_counter(dev, pipe) && --count > 0);
>  
>  	diff_ns = ktime_to_ns(ktime_sub(t_vblank, vblank->time));
> -	if (framedur_ns)
> +
> +	/*
> +	 * Make sure no bogus diffs result from negative differences
> +	 * when incorrect timestamps are reported by a driver.
> +	 */
> +	if (drm_WARN_ON_ONCE(dev, t_vblank < vblank->time))
> +		diff = 0;
> +	else if (framedur_ns)
>  		diff = DIV_ROUND_CLOSEST_ULL(diff_ns, framedur_ns);
>  
>  

Hi Werner,

Overall the patchset look great :)

There is however a convention that patches that are not yet sent and accepted in an upstream
tree cannot be accepted by Ubuntu kernels, not even as a "UBUNTU: SAUCE:" patch.

A small nitpick would also be to consider the SRU cover letter format [1] for the v2,
although given you have the impact section I would not NACK just for that :)

Thanks,

Nacked-by: Alice C. Munduruca <alice.munduruca at canonical.com>

[1]: https://documentation.ubuntu.com/kernel/reference/stable-patch-format/



More information about the kernel-team mailing list