From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pf1-f169.google.com (mail-pf1-f169.google.com [209.85.210.169]) (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 07CC82F8EAE for ; Thu, 7 May 2026 21:41:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.169 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778190066; cv=none; b=Y65+/9Ldb4Xd1OiaA19PQm3sm/BUr9Kvs3JGXRxwX7rtFOpxQF1+D7MN/h0arRYiYLeJwCa5emk3DgnHtly4K3IojOe2szG/9bBvhWYNvkMhWzQ9IxzXhrh4vpswsL4BxYkJM+1M6yaV2ecPfy/vk2AjqEMyvtOfVb8TltLMJzU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778190066; c=relaxed/simple; bh=l4Cwqf1WV1AVTTFPvB83ZJLI9IpA+uYzFu+EOnoywQM=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=iTp05R0DnoXNA4J0dmHVp99VISiqtpmHiWke+/N47yEaRUz2L3Kfd7ZRCHHYlMhnF89RtMDZPxlAn6q45D8/xCqaTXev6iycbo0/V6elUx+kD9+JoE80LPQIZVnqIu65bEVixOLykr9Q37e/j8YRyu741UA81i0ckWs/97g/I54= 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=XA6L877h; arc=none smtp.client-ip=209.85.210.169 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="XA6L877h" Received: by mail-pf1-f169.google.com with SMTP id d2e1a72fcca58-83975e992e1so662724b3a.2 for ; Thu, 07 May 2026 14:41:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1778190064; x=1778794864; 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=SNSrsGH5CXJKVq1mz+bpnFTmvM9AgPiDCo4M5eglpto=; b=XA6L877ht2SYdIkZAZMgfcCni5wdLIB3dNMoff3bVk2opeSKpr/Hko19MzM/MkXi08 YdfGOOuzxb/qCsUpt5/nT7jFybEDPkdYkqyddJTnc1yYd0Cu2QTE7LaZJrpwaleKTfFR tpVBMZN9g/OtWR1T1Sqd6svxUlPpnQ3oM2Lx1xC4ozQClaWYzBGg7tSgbmAc9S9xPbIA Vmv4Req8ac0uG51XedVVfuWp9n1f9hhmEZxWWM89LgCbLedgXMiif8Wa4QIgczzuFxH5 hk3YV0OLm3WaSmhW5SQJfTBFl3Nrth4P+2YjtO/JKusnTUVKPUX5JTO7ctSjLqRzdpQv UQGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778190064; x=1778794864; 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=SNSrsGH5CXJKVq1mz+bpnFTmvM9AgPiDCo4M5eglpto=; b=GopGyiDkC8zXzOg3Qds/Rv3Qun+8vwlGQPqqNtrTbfUyUxYxg1FeEBfnBK+fXqP+Gj qjHIX7fop+UvdXbHTt1Zfac/G5PQKpjZvw3iCRFgRpJmA9XXHtUx4Gd4jLajUoG9vhKP gzR+RvzmJWLPfSqk1XSRthuASi0wBw7+zHK9dbF7v+iUttgJ1kqRoFsinhMLZsintmHq zfC/ElJbeHxfGlYOQTr7ET8OqV2mxfXbpl26G0vYXNvghHrfv7DD/rVHRTvH0L2lpyin SpXMgCwqSilET7hBFcsSJFXJmtF9X45nVR8u7DH+rbWoaVjLb+uR3D99o/eF2Vj8rBnS 7ntw== X-Forwarded-Encrypted: i=1; AFNElJ+0xZIlIeS3c4k3BFPGtsYiYdyengLVp6UVfnJ8baYSUSCIjQE2A+OKUgTunmDv/cD+/N7BAS5QXEEctHA=@vger.kernel.org X-Gm-Message-State: AOJu0Ywok0yLoe/F+5dbVj7NwP10X03zxFNhCgFH+1Mz6kEFm2sLF7Ha Flitww0uN9vdCAw6642LfLCuUE0lVl/fOe8cbuhSeDZ3UaBzhE4OMmwE X-Gm-Gg: AeBDiesn6Dh0PpY9zoy7YriXqcuBeSyCLTo3GqoeGZB+ZmnIVtrZyd/S2WNsqQZ8s9Q zRT07Ig+6/oDL7Sgo7tmCtpmuW3uQgekakoAMe4Kej3/ykcTh+FvcjrWQ/VAq1X00jod4M0LoS3 6XMOhDX3vyNwWR4uwraSKAMPG48TCeIjkItu56rP9IjlmiqxYuJW4P+ta8t3YVq5HimkDwNqYUE IAsEoK899uALeB0LlzeqxdEoPUPaHQPMFqqNJ+/UfkJxD0zd+LvczPVQ4I9kKgDZJKFnsJWo6HK j7UvpyGiNU7qLfjHboLgb/Po+oJBnPSiXEqp8uxNNkquXcw3A4uC64c/W0kizRuBB3S7JCwTbst 1buP4HIleul4kBRjW2AQY0Cu7jVAskirCzm1D2Rot4lijyv1ArEjGxj/MOCl3Ur3Gfy8Fg3kydT iYL2jrESzlgTGLiWSAmHzS6vWcNdSYVcilNO766xkTfmkJzTBapTEhQck6i53ZSg== X-Received: by 2002:a05:6a00:1407:b0:837:eaa9:381f with SMTP id d2e1a72fcca58-83a57c7782dmr9400352b3a.0.1778190064259; Thu, 07 May 2026 14:41:04 -0700 (PDT) Received: from d.home.yangfl.dn42 ([104.28.247.164]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-83965d38ab5sm12029408b3a.26.2026.05.07.14.41.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 14:41:03 -0700 (PDT) From: David Yang To: netdev@vger.kernel.org Cc: David Yang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Andrew Lunn , linux-kernel@vger.kernel.org Subject: [PATCH] net: mention the convention for .ndo_setup_tc() Date: Fri, 8 May 2026 05:40:51 +0800 Message-ID: <20260507214054.2539790-1-mmyangfl@gmail.com> X-Mailer: git-send-email 2.53.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit qdisc_offload_dump_helper(), originated from commit 602f3baf2218 ("net_sch: red: Add offload ability to RED qdisc"), is designed to that Whether RED is being offloaded is being determined every time dump action is being called because parent change of this qdisc could change its offload state but doesn't require any RED function to be called. and returning -EOPNOTSUPP (for dump queries) does not mean "I don't have any statistics", but "I don't offload this qdisc anymore". At least two existing drivers did it wrong, so it is worth mentioning. Signed-off-by: David Yang --- include/linux/netdevice.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index 744ffa243501..b18a6d917771 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h @@ -1223,6 +1223,12 @@ struct netdev_net_notifier { * tx queues stopped. This allows the netdevice to perform queue * management safely. * + * NB: Returning -EOPNOTSUPP for whatever commands means "this qdisc is not + * offloaded (anymore, offloading may have silently stopped)", and the + * offloading flag is cleared. This is especially true for dump queries + * (e.g. TC_*_STATS commands). If the underlying device does not report any + * statistics but is still offloading, return 0 instead. + * * Fiber Channel over Ethernet (FCoE) offload functions. * int (*ndo_fcoe_enable)(struct net_device *dev); * Called when the FCoE protocol stack wants to start using LLD for FCoE -- 2.53.0