From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ua1-f53.google.com (mail-ua1-f53.google.com [209.85.222.53]) (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 9D6AC2ECEB9 for ; Sat, 6 Jun 2026 08:29:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.53 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780734598; cv=none; b=DAXllGYFHJv1o8Yc5nQK8y41HvvDnT2tLHrlZ+tzUZeIYAJd4YQhYDveyoApBYbjuxYtPJNJd4RCDFDZbq3SMabciStET2nU+2pA/86iBErRGV9CCqh925QNI6k50sPRqlJB6Z7AQc5aGjMp2YoVrhkKh5fAB+2C2+MnOWsqAKw= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780734598; c=relaxed/simple; bh=LJI1mTt5T0OFZe90AgpOUo9cgLT4qEmmXzwTeVD1xZs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=naK6hcHtX7HjnufjnaCK/0UDZdrov7hk60p3s/rBHMuc49BDB0xlzJgLxaDn6Mm7KRPGIzFgprxhR4AHfIYPTx2Kl2Er3QY7BGx2/6BvO3Znv5W7TmW/Ou9maw8hPzpsDKloIVCiw/uq84+Ct/Vk305nBvzNcutc35N3T8r/YA4= 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=XGlwp/Kr; arc=none smtp.client-ip=209.85.222.53 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="XGlwp/Kr" Received: by mail-ua1-f53.google.com with SMTP id a1e0cc1a2514c-96387efc30aso2010835241.3 for ; Sat, 06 Jun 2026 01:29:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780734597; x=1781339397; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=/vFn2mXy1vj757WZPxDW+LyElp0xHloQfyO3c1ZOegg=; b=XGlwp/KrlluG/Ad8IR2EZx50xgggj1QB6IIgVwFRL/ArHGFvaDtMX81ElIuEhcmBYp ZYa+A3SflsqTOPhbIfhJXNoUNunrgCuMyrN4K9/S98N7us30pIG+bQ60vJfxz3vU83dC k73ez4/uappDXTZAjAMRBE4iR1Yk6qNojXq9neeDdYT+GA41oxcmXll6OO1CRL15zXUo EaHgCNnPSUabfZXsDCyVuY3iKWYhnntvirDG4fwVeAf/0/JvC1wIpIL2UKIxNNJU041m l8nzm/jYP9oZ8WiaUV5MurT+oxIb9W8TMhOS4ycWjZLhW5+d0joRXLEGxoMxm8RGBqC8 eHuQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780734597; x=1781339397; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=/vFn2mXy1vj757WZPxDW+LyElp0xHloQfyO3c1ZOegg=; b=gImf1GJQQxpofGcX7llb42Y7bAWKjbGP0ThUeFIIi4kXMmD0gOOEYGE+iDU7aYr3TO 8ThDyG7SnldAKLfPWQEOFU/ZqoKQfdNS6kbLxBMj9XMMECFE+HFwXFD5zn7+hfpwpN6U RbXQUuigwYSWKkppCAJ+6MH2eAVfDhlDbj0abIASz88s0SRwaLl4sMV6fHLUfxDHnihx hgjM9AfxlkkRFN13lJge9p+vBDFt0SGHXNgOjUcO42TRstXKxTFjfs2KxAzO65I+XJmS uyf5y0HsqmCsr8MuyOJJagRQLJjCsdaTjLH7ChBgLwc3Ho/nwzpFjcFuR7lGQSkoqHGA BIcg== X-Forwarded-Encrypted: i=1; AFNElJ9MT0OppS+pp2wrtuK6+eB3rZhaa2k3uM9VD2Wzx0zj3+aPjMryolpsHSCzBhZlv8wTbHc6kf0sWnf2qD0=@vger.kernel.org X-Gm-Message-State: AOJu0Yze6PH0rKbhllBidpfCPzKfrqdnQ7so5dbow//JUEfPz6lzwQvD sc7HWrvh2VnjfrJNn65NoXr8z45q/k/lUqk6/rqzEZEXeHjcngD71NVQ X-Gm-Gg: Acq92OG0iUyfmHuOQADseZfkN6l0hkK2rXVYGP8hf0avWU/wkw9jJDcGKN+hjIdr/Gn hUP6hk5j6L2j+lVtaggQ5flc/RubLNWv1Dk04C6l5sAQql4Rjch9C6ko3yGgNU6G/aRweWjdNVs 34ZfiNT3I3Cs+uKL+5Ym7qiZKKpUExav+WPnxaTLXiJlj//Puel1kM3h2IcCqT7+41yCc4BvP+R zK8/fDz2FHjKzJ+aco6kSBs8Sk/0YytLDT53z/ts7LTGRiQpu1L+vuaaxgvv4OZ74ddCGlrcSPN X5z6xVSGoj+/G9IDqo5s1YTDgpAby8NdcxVx5iKbKB06Qff9BU4ZOqdzoSLXMq3PwFUa9FwponG kbCbZXL3czQB3+bbAM/jBXjsf4yXjNb6uFeHFrU/OXJZeJPQ5mvlJLqWjAmBFfXh9PbHAbhPtjY LURLgPhZuCEr7JtP4TdoMj/qMvIe9S8tgYA7Le53gMqRcdfM7Cn2wJzmPo8HPL X-Received: by 2002:a05:6122:45a8:b0:5a4:3c79:f5a8 with SMTP id 71dfb90a1353d-5ac477d7f60mr3843787e0c.0.1780734596716; Sat, 06 Jun 2026 01:29:56 -0700 (PDT) Received: from tresc054937.tre-sc.gov.br ([187.65.210.13]) by smtp.gmail.com with ESMTPSA id 71dfb90a1353d-5a6dc44d233sm9630281e0c.10.2026.06.06.01.29.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 06 Jun 2026 01:29:55 -0700 (PDT) From: Luiz Angelo Daros de Luca Date: Sat, 06 Jun 2026 05:29:26 -0300 Subject: [net-next PATCH v13 2/9] net: dsa: realtek: rtl8365mb: reject unsupported topologies Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20260606-realtek_forward-v13-2-b9e409687cbe@gmail.com> References: <20260606-realtek_forward-v13-0-b9e409687cbe@gmail.com> In-Reply-To: <20260606-realtek_forward-v13-0-b9e409687cbe@gmail.com> To: Andrew Lunn , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Linus Walleij , =?utf-8?q?Alvin_=C5=A0ipraga?= , Yury Norov , Rasmus Villemoes , Russell King Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Mieczyslaw Nalewaj , Luiz Angelo Daros de Luca X-Mailer: b4 0.15.2 Explicitly enforce the presence of a CPU port (-EINVAL) and reject DSA cascade links (-EOPNOTSUPP) during setup to prevent silent failures. These topologies were already non-functional. Without a CPU port, the driver does not activate CPU tagging. Additionally, the switch hardware was not designed to be cascaded, and DSA links never worked because CPU tagging is not enabled for them. Reviewed-by: Mieczyslaw Nalewaj Reviewed-by: Linus Walleij Signed-off-by: Luiz Angelo Daros de Luca --- drivers/net/dsa/realtek/rtl8365mb.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/drivers/net/dsa/realtek/rtl8365mb.c b/drivers/net/dsa/realtek/rtl8365mb.c index 2637884fe472..37e1d7654b1d 100644 --- a/drivers/net/dsa/realtek/rtl8365mb.c +++ b/drivers/net/dsa/realtek/rtl8365mb.c @@ -1991,6 +1991,20 @@ static int rtl8365mb_setup(struct dsa_switch *ds) else if (ret) dev_info(priv->dev, "no interrupt support\n"); + for (i = 0; i < priv->num_ports; i++) { + /* Cascading (DSA links) is not supported yet. + * Historically, the driver has always been broken + * without a dedicated CPU port because CPU tagging + * would be disabled, rendering the switch entirely + * non-functional for DSA operations. + */ + if (dsa_is_dsa_port(ds, i)) { + dev_err(priv->dev, "Cascading (DSA link) not supported\n"); + ret = -EOPNOTSUPP; + goto out_teardown_irq; + } + } + /* Configure CPU tagging */ dsa_switch_for_each_cpu_port(cpu_dp, ds) { cpu->mask |= BIT(cpu_dp->index); @@ -1999,6 +2013,13 @@ static int rtl8365mb_setup(struct dsa_switch *ds) cpu->trap_port = cpu_dp->index; } cpu->enable = cpu->mask > 0; + + if (!cpu->enable) { + dev_err(priv->dev, "no CPU port defined\n"); + ret = -EINVAL; + goto out_teardown_irq; + } + ret = rtl8365mb_cpu_config(priv); if (ret) goto out_teardown_irq; -- 2.54.0