Hi David,

On Thu, Feb 05 2026, David Binderman wrote:

> Hello there,
>
> Source code analyser cppcheck says:
>
> linux-6.19-rc8/kernel/liveupdate/kexec_handover.c:1089:15: style: int result 
> is
> assigned to long variable. If the variable is long to avoid loss of 
> information,
> then you have loss of information. [truncLongCastAssignment]
>
> Source code is
>
>     contig_pages = (1 << order);
>
> I admit the error message is hard to understand, but AFAIK
> if local variable order remains under 30 or so, then there is no problem.
>
> However, if it goes above 32, then there will be loss of data. 
> Expression 1 << order is type int.
>
> Suggest add some code or comment to document the expected range
> of local variable order. If it ever goes above 32, suggest new code
>
>     contig_pages = 1UL << order;

If order is 32, with 4k pages, that means 16 TiB. It is unlikely that we
will see vmalloc area backed by pages this large any time soon. So I am
not worried about any practical problems.

But I think this is still a good idea to do for code hygiene. So a patch
would be much appreciated.

-- 
Regards,
Pratyush Yadav

Reply via email to