From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pf1-f170.google.com (mail-pf1-f170.google.com [209.85.210.170]) (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 269F3388E64 for ; Thu, 2 Apr 2026 20:20:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.170 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775161258; cv=none; b=UazOXQcntc/EKaFD2udB+peDRWtoeX1qLMY4gu1obUiwF2F1SzvOij+plThL3LPtrr6jk/UdEzGLSs7WNgQBjeii9mNJO5+BKToU3e99Ldym9E/Ctft4JwKeRw6LcM39LIRPyEh+ozOgYjDYRFRMSLw2/1NYT4hQc6BT8ryYNB4= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775161258; c=relaxed/simple; bh=zHSDf392FBH2t9Nrhm1eNRmcRLYHbca7AmwtdKxuKvM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=keDKhB5eXYtCcS0GwL/7s4YG+u+hbbZOmURyjJQvrpTi3dgW9egK9DXuI28zvNh6xItyPpU9B6Iuw/0l+4t6hNDhQ5NcVzotsVwW0YbigaLnv6/4GCuI9ac1FM0iDoFTYtucC5d8c3hVVhb+GY3jGgLtRfR4gJsM+XnQ7M5cny0= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=networkplumber.org; spf=pass smtp.mailfrom=networkplumber.org; dkim=pass (2048-bit key) header.d=networkplumber-org.20230601.gappssmtp.com header.i=@networkplumber-org.20230601.gappssmtp.com header.b=oBNDmCN8; arc=none smtp.client-ip=209.85.210.170 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=networkplumber.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=networkplumber.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=networkplumber-org.20230601.gappssmtp.com header.i=@networkplumber-org.20230601.gappssmtp.com header.b="oBNDmCN8" Received: by mail-pf1-f170.google.com with SMTP id d2e1a72fcca58-82d0b68837aso194133b3a.2 for ; Thu, 02 Apr 2026 13:20:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20230601.gappssmtp.com; s=20230601; t=1775161256; x=1775766056; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=+G61P/m9u3BT/5+F8jusY0Eb6hWkK7ZCe5ypTAUB+ck=; b=oBNDmCN8JmMMoCVfA45sbKxLns+8+J2VmsJIegpUbO1QQthMYKjtcBxyxOTujVTN8h kZR8frOklInpuxfdYluf2wB8E38An+mUJOzOFcYazTAzQMPy4qPJq1iejK2rpQl3OBbj cTc2de297bplAoK/7r+hkx9ryvApYQ8jEh/wlykq7gmFPluiHwxY+mG8VR4TUCJPOXwg wYQpR+9sbBHvQytAGudgxXvhS+Qn5WRHWdddqmoIgttYwQILL8E+LldcdHN5VvOqR0oT +JHhvyQXqw9Wj85XKObbsq1vP/G5KTh2DTf51Y3ZFwu+s74b3H+9UIPkpOlA2dF5Xg8C h1Qw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775161256; x=1775766056; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=+G61P/m9u3BT/5+F8jusY0Eb6hWkK7ZCe5ypTAUB+ck=; b=C9NVRrwXITdeUUhvt2/883TJsbUHV+LWBjr138lahYvL5G+Fyjdc+DHlldQ0DWkZIQ bEZMvgTcDWSCFIK3kt7zTBSJ08B1WK8y2kHAyfwdo9F/WyikTxuEpd1od/umnnuArjaY J7phJPDAI6mV8Kqwh4hQomREP06QgofXNwwuOj6tsiRP0TVDcBWPvfYid+grS1i2JSka 3QD8nz+b+sFmQvXUn0iuCR3DbyIV/BQWpxC9Se7zHSoeAD0Gls/X8v7FwmBxGfP4Nu5e 1stCEopuTbUTQoTdwEnpjWqCxzoe7wCou1eeXSszG6BnHmtLdTYo5O0lbOPEVGQSHqpe 05jQ== X-Forwarded-Encrypted: i=1; AJvYcCU05dfJbK9rHr0ynK69Z+F77Qwf+U/jMPYkb6QktyZa8azZ+j+M8mXUFlrvLY+j3lPs90ByjPcVQzN4JtA=@vger.kernel.org X-Gm-Message-State: AOJu0YwrKWEzFg5lPKv52TRPU1wLxoho2ICBc9GY9tNn9H64BbyGu4dw 3acnXQTwbD24sVZtJs/kZGVWNF7Gk41qQVVuMnC9eKuM2qTNPxqOa54duZLgh7S2FSM= X-Gm-Gg: ATEYQzwSEaxIs22NX5i/ONRIrqEnINcucwgCXtYXNkczzq6Msv0WCeGUATXHWkm7YtB VtW9fL1FjgFuS3I7B8/JwCPvnybS7st/REHs2zwOQbfRDZ1fYXM/vwRbOeYXThIvkCkZuqTyW0d 2P5lE/Pe15nXXXVayfLeqJYzmnTF4hdFICXCmZOU7Kf5UudB80SthQ8/pFAyNwoEUvjdnuYpmhU 8MmWt2RAd7qe2mOMCBJOO4k+8Mbo5ZnwKm8YqHLofsWj6w0Gz4ilIvGjLgfN/E8CGDRquJWsYUv lhGFURiq2rLeGlIN59EFxcL98bYRh9Cpkvh/V87vUq8DpsY4nApUjH6Bjxm4Uqfgf8j8BfMfBme Xt2uGIyQiq5j0pxjVh/AwH/cGDuny2bBiz8OQmOY8NHKbA/vgMBhsXFo3k9MuYlhvwALjvV1TLq Z/cyrXVCuY+CtTIK4HpsK8ulYEF6KIYSHcNBPR/UaC/T0= X-Received: by 2002:a05:6a20:7f97:b0:39c:2a9c:bbe2 with SMTP id adf61e73a8af0-39f2f112c9bmr269724637.24.1775161256553; Thu, 02 Apr 2026 13:20:56 -0700 (PDT) Received: from phoenix.lan ([104.202.41.210]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-c76c657dfb7sm3345621a12.24.2026.04.02.13.20.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 02 Apr 2026 13:20:56 -0700 (PDT) From: Stephen Hemminger To: netdev@vger.kernel.org Cc: Stephen Hemminger , Jamal Hadi Salim , Jiri Pirko , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , linux-kernel@vger.kernel.org (open list) Subject: [PATCH net v3 2/7] net/sched: netem: fix queue limit check to include reordered packets Date: Thu, 2 Apr 2026 13:19:30 -0700 Message-ID: <20260402202037.176299-3-stephen@networkplumber.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260402202037.176299-1-stephen@networkplumber.org> References: <20260402202037.176299-1-stephen@networkplumber.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit The queue limit check in netem_enqueue() uses q->t_len which only counts packets in the internal tfifo. Packets placed in sch->q by the reorder path (__qdisc_enqueue_head) are not counted, allowing the total queue occupancy to exceed sch->limit under reordering. Include sch->q.qlen in the limit check. Fixes: 50612537e9ab ("netem: fix classful handling") Signed-off-by: Stephen Hemminger --- net/sched/sch_netem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/sched/sch_netem.c b/net/sched/sch_netem.c index 8ee72cac1faf..d400a730eadd 100644 --- a/net/sched/sch_netem.c +++ b/net/sched/sch_netem.c @@ -524,7 +524,7 @@ static int netem_enqueue(struct sk_buff *skb, struct Qdisc *sch, 1 << get_random_u32_below(8); } - if (unlikely(q->t_len >= sch->limit)) { + if (unlikely(sch->q.qlen >= sch->limit)) { /* re-link segs, so that qdisc_drop_all() frees them all */ skb->next = segs; qdisc_drop_all(skb, sch, to_free); -- 2.53.0