From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wr1-f46.google.com (mail-wr1-f46.google.com [209.85.221.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 99E2A242D84 for ; Fri, 21 Nov 2025 21:40:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.46 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763761251; cv=none; b=FjSie5G5MwvnialPpPHD+u5qWMosZEh7aNd5iAowIMXeXLv/BJcQoKTTvFgZo8rV0JDJzqEEi2z37W+pmOyedIEfw7zTHu/kFILbNBSyH5HEteB7tOryoyRS4AdrYAOpF13vUc1bIk5CMuBT9q/CfRsxq6uCObZeAyzsjHeT/u4= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763761251; c=relaxed/simple; bh=FRZ50aYUtcrgGU6T19iGqtHp4MvFQNOJJrYNa3+byPE=; h=MIME-Version:References:In-Reply-To:From:Date:Message-ID:Subject: To:Cc:Content-Type; b=bEDvEFLq3MJRKqZkS/ZnECdaC+jav366vdL/50vJXHg2PfZe4uAFKOULQl5YkcTwwNiUpmWtKfAfD1NYSaR17kAr9M1Knri4qokKBEeRUVudS+NywJnWkGZU2JMzGtV2H7teNkDeQlU0daZTGBeoxga7rimsaccAAuhA7RrqamI= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=N96HfCcE; arc=none smtp.client-ip=209.85.221.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="N96HfCcE" Received: by mail-wr1-f46.google.com with SMTP id ffacd0b85a97d-42b3c965df5so1301518f8f.1 for ; Fri, 21 Nov 2025 13:40:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1763761248; x=1764366048; darn=vger.kernel.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=STfVZTvJ5u/1DSHeWAxiKxp8wq8NwPWQjK8gQ1lGFGQ=; b=N96HfCcEcgO5QjIyqMQUjg2k0xeE+XNJltSsta5oAvjz2E1ippNjyqV3LUYQtjPYzK zLcgK5S1YhjYXSrMp01kxBgkJZdkkaYA4rof54Ma2dBjrzM4+qx5tOH8Yu+WHDKa0GJo 9cBWUMH17EkqZVsrxr3u2wFFTzqOocz/W6qbCA3SPryQXtaZfm4aDF1Ngi9sSWTFwNZ2 mArPkEfUH860ai3mWjK7/kw5JeH0xJ9rXt3ihqsfNsp8VU60/1fM46XVOnSlpcCGe36C zQsFLKB6vwM2EgtNF1P9zY3E0VfIoHznHT3gcc52eykOZlxJ/XtLN2B+8s844JkkVMvt ww2A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763761248; x=1764366048; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=STfVZTvJ5u/1DSHeWAxiKxp8wq8NwPWQjK8gQ1lGFGQ=; b=laGcBQaOFV/TzPdyKCjH+O6Nd+Snk4nx8YwtMNVCYsvBZ10mK3hAZvNmURW807k0r7 qu31StqrAfMfo7y5mRYQ2mB2Z4hhG2bdfJmVM358nEXPeFOF6qUsMcuU5s2wwztV2yu8 fAn5L0QWMvm2jW9WlHeZp2737rMUyVO5dfyKwRU69XartvUfXvxR2brWzYYlFXMnRs7j mitTNy8SgxpGqQsXPbyulPs6Jb326mS5mZn6wWYXyFwzdtNhqnDw84sAkYXeN8FDSL8P 3OM8qYkgv2JzJi4MM42SQxwXN1LbiGKQV8R/1YRnGNHP8PGOk2eWvym/61VP5zXO2rhT UHPA== X-Gm-Message-State: AOJu0YzAmfstb72rF5HDzAGuniRXYH8CE8POwqFT8hm5iSmPg4/Kck+h Xqz2Rfaq9cX5hXvaPLL9K+mDduL9S92gSpT2EQun8+/c3vTcFKj0+gJC5kDV2G7zOUZ1gPvtJlw Ec/4eWkusbTE/3/fqUzC3dGq60gqeevo= X-Gm-Gg: ASbGncu+YKHcjTdPB3Rdiq1pFyzjWFO4lcRjGo0dueN2cf19IQU/KsIWmJ7Q+fgL6Dm oYOKjcORHN/kZfhwD6BGRbpjXS4J2VfDKuujUKzzc7oMnysDzTlyrontUaRJL7IanT4KTOgOI7u RI+EwU38UHzA4WZNW9g00BcpcQOOw7fDbbiIg8B2zEraTI7cdINzWilHUnRrspFR6BhQ2k78UYA ZQcG7cY4UnlqNBCS6FHc2yhTKfQB+xegC95wIfysCR3n5f0+vJUm/wompg0hpBFprjqjq9If9eH vIyDSRBhXZOahCzLFG69fAP6b5iWAU0UY0c1MMs= X-Google-Smtp-Source: AGHT+IE57OgXWGpaWjQKE3XKXQ8tZakolTW28uTm/uZoNVLyCv12VeiNDH3vN49WeqmBnI0JM8eSjJVhBSND98wh6f8= X-Received: by 2002:a05:6000:2902:b0:425:75c6:7125 with SMTP id ffacd0b85a97d-42cc1cbb516mr4005417f8f.16.1763761247743; Fri, 21 Nov 2025 13:40:47 -0800 (PST) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 References: <20251119224140.8616-1-david.laight.linux@gmail.com> <20251119224140.8616-7-david.laight.linux@gmail.com> In-Reply-To: <20251119224140.8616-7-david.laight.linux@gmail.com> From: Alexei Starovoitov Date: Fri, 21 Nov 2025 13:40:36 -0800 X-Gm-Features: AWmQ_bkrDq5Sy9ZDwUnEnBRGSTSoJnIDtxROTDLoYODXJgIZb-Zn1Fl-VND75l8 Message-ID: Subject: Re: [PATCH 06/44] bpf: Verifier, remove some unusual uses of min_t() and max_t() To: david.laight.linux@gmail.com Cc: LKML , bpf , Alexei Starovoitov , Andrii Nakryiko , Daniel Borkmann Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, Nov 19, 2025 at 2:42=E2=80=AFPM wrot= e: > > From: David Laight > > min_t() and max_t() are normally used to change the signedness > of a positive value to avoid a signed-v-unsigned compare warning. > > However they are used here to convert an unsigned 64bit pattern > to a signed to a 32/64bit signed number. > To avoid any confusion use plain min()/max() and explicitely cast > the u64 expression to the correct signed value. > > Use a simple max() for the max_pkt_offset calulation and delete the > comment about why the cast to u32 is safe. > > Signed-off-by: David Laight > --- > kernel/bpf/verifier.c | 29 +++++++++++------------------ > 1 file changed, 11 insertions(+), 18 deletions(-) > > diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c > index ff40e5e65c43..22fa9769fbdb 100644 > --- a/kernel/bpf/verifier.c > +++ b/kernel/bpf/verifier.c > @@ -2319,12 +2319,12 @@ static void __update_reg32_bounds(struct bpf_reg_= state *reg) > struct tnum var32_off =3D tnum_subreg(reg->var_off); > > /* min signed is max(sign bit) | min(other bits) */ > - reg->s32_min_value =3D max_t(s32, reg->s32_min_value, > - var32_off.value | (var32_off.mask & S32_MIN)); > + reg->s32_min_value =3D max(reg->s32_min_value, > + (s32)(var32_off.value | (var32_off.mask & S32_MIN= ))); > /* max signed is min(sign bit) | max(other bits) */ > - reg->s32_max_value =3D min_t(s32, reg->s32_max_value, > - var32_off.value | (var32_off.mask & S32_MAX)); > - reg->u32_min_value =3D max_t(u32, reg->u32_min_value, (u32)var32_= off.value); > + reg->s32_max_value =3D min(reg->s32_max_value, > + (s32)(var32_off.value | (var32_off.mask & S32_MAX= ))); Nack. This is plain ugly for no good reason. Leave the code as-is. pw-bot: cr