From faceb3260ab264402ac7515538f1bb73179f6b08 Mon Sep 17 00:00:00 2001 From: Stephen Hemminger Date: Tue, 28 Jul 2026 14:31:22 -0700 Subject: [PATCH] ip: drop unnecessary fallback to ioctl for tx queue length Kernel has been reporting TxQ length with netlink since the 2.5 so the ioctl path is dead code. Signed-off-by: Stephen Hemminger --- ip/ipaddress.c | 25 +++---------------------- 1 file changed, 3 insertions(+), 22 deletions(-) diff --git a/ip/ipaddress.c b/ip/ipaddress.c index 7e4cb77c..6fa02c77 100644 --- a/ip/ipaddress.c +++ b/ip/ipaddress.c @@ -159,30 +159,11 @@ int get_operstate(const char *name) static void print_queuelen(FILE *f, struct rtattr *tb[IFLA_MAX + 1]) { - int qlen; + if (tb[IFLA_TXQLEN]) { + __u32 qlen = rta_getattr_u32(tb[IFLA_TXQLEN]); - if (tb[IFLA_TXQLEN]) - qlen = rta_getattr_u32(tb[IFLA_TXQLEN]); - else { - struct ifreq ifr = {}; - int s = socket(AF_INET, SOCK_STREAM, 0); - - if (s < 0) - return; - - strcpy(ifr.ifr_name, rta_getattr_str(tb[IFLA_IFNAME])); - if (ioctl(s, SIOCGIFTXQLEN, &ifr) < 0) { - fprintf(stderr, - "ioctl(SIOCGIFTXQLEN) failed: %s\n", - strerror(errno)); - close(s); - return; - } - close(s); - qlen = ifr.ifr_qlen; + print_uint(PRINT_ANY, "txqlen", "qlen %u", qlen); } - if (qlen) - print_int(PRINT_ANY, "txqlen", "qlen %d", qlen); } static const char *link_modes[] = { -- 2.47.3