From nobody Mon Jun 8 05:25:28 2026 Received: from mail-pf1-f196.google.com (mail-pf1-f196.google.com [209.85.210.196]) (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 67C5E3F39C7 for ; Tue, 2 Jun 2026 17:04:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.196 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780419843; cv=none; b=o6uEFlnly1V5t3GVatkVdl2mH7oScZuv72ZZ6HuUsHbA/Ysf4uAVzYITrjOkRhBUza2CHuTcCcfGFv1LxGLJ5umGYrwG3wlHU5Cm1xL6uEXo/dqCmXC75tu6mXXtuuJVlMGy4lmKShrKwCh8QvEoFO+CpIsbNsplNEszLgjGaPs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780419843; c=relaxed/simple; bh=KR0hla4tV1LUJkpn+oTYAc0ONp9Ic2niIOSornSkz34=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=cGFvFfMIbfol5zZjo6gH6wGFgZoju4tpJmUHNtuwIQDBzc+xsgZHHC+5ZcbJqRfqem3pyC34FxdL+n/vpuwkkt0wy1A9G6dHtCkIydMzt0UNNdcwtgcDYjLZAFRRlO+S547CkG1Cxuv9Occ402sCZALUgNHgkR49udnD3iG6N1c= 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=UF3ISLrI; arc=none smtp.client-ip=209.85.210.196 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="UF3ISLrI" Received: by mail-pf1-f196.google.com with SMTP id d2e1a72fcca58-8422f395a4aso1920651b3a.0 for ; Tue, 02 Jun 2026 10:04:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780419842; x=1781024642; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=NB9Zv1REhgPk0lZpVwIiTaf5BCrizmFFnfxV6DlwrVM=; b=UF3ISLrIZ+op0xB/rVBgEWNyw1DgIkhFQKtI5Qwd8d5u4pAFXOwBI+PP+cT1eX9vFf KYkWUAPLL+cxDK1FnJqq/XVAqVkvixVeezcp2Eu3zOH4up0l64f9saPaEjCUj/2ky8g9 9ZyTqf+Me94B6L6+Y8iutQfPErxku2peOZ8ea8HrkMIHBwfQ3n8l6zzNTdSTQ9PGupab KLtSEgiiIjab+OJW1LmldYSWX3w6Vcd5BaU2wC0AX1ZMAkRrmHxXgL41E80F6jh61tQY ZG533sPMqkZj/YZHcMV7f+DkuOL6jah7CGLPXIQq1U3Pal0cTBoUtLbyrdyIYaCqUE+p ZEGg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780419842; x=1781024642; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=NB9Zv1REhgPk0lZpVwIiTaf5BCrizmFFnfxV6DlwrVM=; b=SifFDqKsFsjdHSoMIbFixGU8aYUaxSO+MXQlnCpQnG05Z2uxcGln6kIzAN4Ui7VVLq c4ltsiZ6Eo0yar+gcxHLRcnz2GHP5Fs+TYq2zcNYK+qAOI7aQriERHu59scd/cDvIC4R h9Jeg5v0sgwaTu8T2Vt3x+VUFIA3J2Bc4Zg1N8an2RWEic5zJVDIxgSNf8QNyXN2enVc EdEPDTIHbWoXY5H71i0CWrPUgprxdYcL1HUhdebhlIQWjjCLfbUP68vmuru75QwTy9oN AkN7DFwXheqE/Lu/Kw0dq40jK5hH9kDuFTuG2Wzfab8W62aCr41yXdhpHw+esbQTGTmX fciw== X-Forwarded-Encrypted: i=1; AFNElJ9ckZOFkQewXckaqdPuBF64vWV9Xi98dNmoHDbkY+rfb3CrORVdfpC3Uq4Ern7PbfOVEsbGfWMuef0iz/Q=@vger.kernel.org X-Gm-Message-State: AOJu0Yxzx2v2x47N89gc1lFAPVhEoOTviVnIJpRt4CxZwr8y+UGIs+AJ znUCCewBWgUOA4RFOYXSRZNWP1SIhy0dDNcykNS5qyUJstk8aHvShBNO X-Gm-Gg: Acq92OEu0kvAo7vOg3EdAbUNUXHEL4uUdiyi1ycsu4T0Av7aXizCl0WLpNm66I69ylp zVAkE7MPx528pkKtjMJ5o3cY4RJWNUnqRwdv6XluvM0IGLkmR3cleHwIRfDA9C/aZX9izBbyl93 1DjyxEzYqjycsUjd/FkVVyNZ8yazEM1XVAUhBjb7+dZyBW5XZQrE5N+x9BamcvWpUtXOEC/WvBo 7AIojHt3ZWqIGVNYmZ5HtY1EPiNKU+H76ieiNJYsziSobfMrZhWlZOtJzy7jSGU2SS6pctbzuPH VpXIWvQmelo41oPZOvtq7mtJdwKVqjYkMlAI3B82thu3kDP5LNaknvxh0wa1+dMQgdeH7YYhTi6 slFwLD9H+CnpDAInVouzSdkakBknZGrNZGeub+u/YoCWB7cCBA0WzyFB5XifOsJOnv4LXIgQiPi Cx6Sd5pCYOyf8xF/GpflthxiuYG/n+rEg= X-Received: by 2002:a05:6a00:1810:b0:83f:250d:5a5 with SMTP id d2e1a72fcca58-84283e04a59mr95952b3a.16.1780419841294; Tue, 02 Jun 2026 10:04:01 -0700 (PDT) Received: from laptop ([223.131.147.119]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-842820e8e6asm390585b3a.0.2026.06.02.10.03.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Jun 2026 10:04:00 -0700 (PDT) From: Woojin Ji To: Quentin Monnet , bpf@vger.kernel.org Cc: Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , Martin KaFai Lau , Eduard Zingerman , Kumar Kartikeya Dwivedi , Song Liu , Yonghong Song , Jiri Olsa , Stanislav Fomichev , Jakub Kicinski , linux-kernel@vger.kernel.org, Woojin Ji Subject: [PATCH bpf] bpftool: Use libbpf error code for flow dissector query Date: Wed, 3 Jun 2026 02:03:50 +0900 Message-ID: <20260602170350.261035-1-random6.xyz@gmail.com> X-Mailer: git-send-email 2.54.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" bpf_prog_query() returns a negative errno on failure. query_flow_dissector() currently closes the namespace fd and then reads errno to decide whether -EINVAL means that the running kernel does not support flow dissector queri= es. That errno check controls behavior, not just diagnostics: -EINVAL is handled as a non-fatal old-kernel case, while any other error makes bpftool net fai= l. Reading errno after close() is fragile, because close() can overwrite errno before the check. Use the libbpf-returned error code instead so the compatibility branch is based on the BPF_PROG_QUERY result itself. Keep the existing errno reset in the non-fatal path to preserve batch mode behavior. The success path is unchanged. Fixes: 7f0c57fec80f ("bpftool: show flow_dissector attachment status") Assisted-by: ChatGPT:gpt-5.5 Signed-off-by: Woojin Ji --- tools/bpf/bpftool/net.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/bpf/bpftool/net.c b/tools/bpf/bpftool/net.c index 974189da8a91..dba28755d284 100644 --- a/tools/bpf/bpftool/net.c +++ b/tools/bpf/bpftool/net.c @@ -603,14 +603,14 @@ static int query_flow_dissector(struct bpf_attach_inf= o *attach_info) &attach_flags, prog_ids, &prog_cnt); close(fd); if (err) { - if (errno =3D=3D EINVAL) { + if (err =3D=3D -EINVAL) { /* Older kernel's don't support querying * flow dissector programs. */ errno =3D 0; return 0; } - p_err("can't query prog: %s", strerror(errno)); + p_err("can't query prog: %s", strerror(-err)); return -1; } =20 --=20 2.54.0