Re: [PATCH bpf-next 05/13] bpf: remove redundant s{32,64} -> u{32,64} deduction logic

Shung-Hsi Yu
2023-11-09T08:43:28Z

On Thu, Nov 02, 2023 at 05:08:14PM -0700, Andrii Nakryiko wrote:
> Equivalent checks were recently added in more succinct and, arguably,
> safer form in:
> - f188765f23a5 ("bpf: derive smin32/smax32 from umin32/umax32 bounds");
> - 2e74aef782d3 ("bpf: derive smin/smax from umin/max bounds").
>
> The checks we are removing in this patch set do similar checks to detect
> if entire u32/u64 range has signed bit set or not set, but does it with
> two separate checks.
>
> Further, we forcefully overwrite either smin or smax (and 32-bit equvalents)
> without applying normal min/max intersection logic. It's not clear why
> that would be correct in all cases and seems to work by accident. This
> logic is also "gated" by previous signed -> unsigned derivation, which
> returns early.
>
> All this is quite confusing and seems error-prone, while we already have
> at least equivalent checks happening earlier. So remove this duplicate
> and error-prone logic to simplify things a bit.
>
> Signed-off-by: Andrii Nakryiko <andrii@kernel.org>

Acked-by: Shung-Hsi Yu <shung-hsi.yu@suse.com>