Re: [PATCH] drm/drm_vblank.c: avoid unsigned int to signed int cast

From: Sui Jingfeng
Date: Tue May 23 2023 - 05:55:56 EST


Hi,

On 2023/5/23 16:50, David Laight wrote:
From: 15330273260@xxxxxx <15330273260@xxxxxx>
Sent: 23 May 2023 05:27

On 2023/5/22 19:29, Jani Nikula wrote:
In general, do not use unsigned types in arithmethic to avoid negative
values, because most people will be tripped over by integer promotion
rules, and you'll get negative values anyway.

Here I'm not sure about this,

but there are plenty unsigned types arithmetic in the kernel.
The real problem is (attempted) arithmetic on types smaller than int.
Regardless of whether they are signed or unsigned.

It is about sign extend.

Yes, you may be right. I might create a wrong patch.

But this will not happen in practice, because in general case:

mode->crtc_htotal < 0x8fff;

mode->crtc_vtotal < 0x8fff;

u16 gets promoted to 'signed int' not 'unsigned int'.

Sorry  :/

David

-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)