On Mon, Jul 15, 2024 at 08:22:19AM +0000, David Laight wrote: > From: Leon Romanovsky > > Sent: 01 July 2024 12:50 > > To: David Laight <David.Laight@xxxxxxxxxx> > ... > > > > BTW, this can be written as: > > > > req->npages = max_t(s32, npages, MAX_RECLAIM_NPAGES); > > > > > > That shouldn't need all the (s32) casts. > > > > #define doesn't have a type, so it is better to be explicit here. > > The constant has a type, the cast just hides any checking that might be done. According to the C standard, type can be int, long int or long long int: "The type of an integer constant is the first of the corresponding list in which its value can be represented.". > Would you really write: > if ((s32)npages > (s32)-50000) > ... > Because that is what you are generating. > So instead of comparing s32 with int, which can be misleading. I prefer to compare s32 with s32. > Here it probably doesn't matter, but it is really bad practise. > If, for example, 'npages' is 64 bit than the cast can change the value. In our case npages is s32. Thanks