From nobody Mon Jun 8 09:48:28 2026 Received: from mail-pg1-f178.google.com (mail-pg1-f178.google.com [209.85.215.178]) (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 4F0CC25B0A8 for ; Sat, 30 May 2026 00:39:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.178 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780101591; cv=none; b=pa2WbtZTgrdGkA9/mIbD+jhEZu9Tg5r7TvyKC8mFc7EIM4Xbz1V28jLf52WkaZAlD4Hp6lAwVpXh35lRf1wTxBg9a0EZ1dXV1fvFpKJKZX26zVvNsJZQbmH+P/+Q80uUdGPUybuFo+To69zY2pIvBaQM+9jN98LGfj7fTyk9t+Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780101591; c=relaxed/simple; bh=kIc3TIE4Ubelo0wkpsHjs9AfK3UYLECixyGEY2hat7g=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=lUjdQ0LSBEs/DBF4tfULOEyuVAwOjcE0YqJAAD30vUsRLw8RHW2tV1MGPcaUzOQvLNAVsZ031s5Jv9YGwOBVeLxrbKCFkG4/8/VUGWnfPYR5QaepCCKiG1lcmlHoa9yY0GliWt/sPYpL3LvpATPZlLN296kebqrb+TU6SuUB/ic= 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=Ownu/PJH; arc=none smtp.client-ip=209.85.215.178 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="Ownu/PJH" Received: by mail-pg1-f178.google.com with SMTP id 41be03b00d2f7-c857c224332so333009a12.0 for ; Fri, 29 May 2026 17:39:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780101588; x=1780706388; 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=jz3T0O0wpFH1RVLbyXQa7kC8pmRBVcVcaLsdI51nwCQ=; b=Ownu/PJHnBTubVoQbJOVqdaCOqePTCDta6NStB/g1znCPcSZO68dfbBZXg30cLJ4L0 pzADimegM3ST1S3BNxJHEl5s5rrEfgMNi6JT/XHk1a1MbwXmlogZWWDIjxx9qcMwB0ob r7SxDYYPPiHN/sVYABL4n8496ekceiE3Ff5vTpYCoBg9hBuR3jf1Av8yy+0mw3OsmA1j Rym8L/kP8ZhXXLJuFuSKxvL0fhTmPs6tFcBEO6ywP1UflGdqmZ73lzzTSMJpWYpyaZ46 JLlHIVOKzA38wcUtIy/NgbrnwJInT0fD05wEaloiAPED+Sz1Xal6qW5YnaadSlWQpLtZ lyfA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780101588; x=1780706388; 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=jz3T0O0wpFH1RVLbyXQa7kC8pmRBVcVcaLsdI51nwCQ=; b=f2VYRddyvX8w7HwjePmO95RMhb/WYxq3tl/nK7RaulJGyczR+h4vphp6FUHPTFP3xA CM0/TTiwu82SxmmM3EWRtX9HxNF9o9ejDUNo3Ze+FjZhMfymcXQwtc0vHb0yh6CKFyvf XOnC5m1KVRH98tw+oMlzp36JowrPUh1dN9AQLa1uwfpScxz6/qND0JdvhXjZW3Lo/Tdj LTux6xbfvxMe7OEvCKACcKZ8WLHd0p0ts52RXEn28A7z2OTciaxNM1iMLiE1iVQIiP4v IMmhWL65qEwxxE0IBd0ViTlv2pB0QrKREjJBnKg7wX2M8HUbHBvQK3fYg3g/Cjy1mEq6 gpQA== X-Forwarded-Encrypted: i=1; AFNElJ/A/F3u05HBAov9i3DdcI58knzaMBylPcgYIkdz+dMWiWayv10/wobLROHUpwOUKTBQCP7G4+abX0IpPSw=@vger.kernel.org X-Gm-Message-State: AOJu0YzRKp07WzK9P4ueZnD/8QHvnF6V0HmLIZz88UUCpIyn76w5eP1F O4/Oey5hnSzmEzQmHg7QjEalpsMtUreL/PbosYKHPUCfstdArOewj8gS X-Gm-Gg: Acq92OHBkZLZu8jw2GAse2jNtO3sWsR0cusv10+63rtHrvewPmOu8s6/yrLKAW4j12E jJhmwRT8lthF3Xv6IEKTlCHfetVdHonnqvfGHcnA67ewQ+ZJQIDMYcopkD5Sc+IVKuuwVreH9rz iK8t582NZ2XecHdQRKsURlbKvo9cOIR3xuJfL0wS1HXzEKQUNyfcMPOzRaB5hE7Ylfu6TN8yW3n KkSyNVTn6zbSxLWEHkDPKsvYJQc03UFvmGd3V/4ETxyUz3nzMGEFGNiZMisw+9J63LafWzD5ddV 8IE7CbvMl58foD4phu0r0J6rt2pB9FzVtMcPyUxavNNk33eOSPxAPYW+BX1agQLJNqrS1/b87dB 8y83dr7kI9yUxmk/nBL1iqtQ3oih2R7LgIb1YlXc/pfhJk8pTtQTaXPv78t6EyzNClB3RSnJMzo IcEXvId+uzIPzPAbdOtnNL7BZfCyUKQu4c3D+x8Fv5fgvZfhFwaK0PNUTZ5ToxVw1b6nqg+A== X-Received: by 2002:a05:6a21:9f07:b0:39f:acae:f12e with SMTP id adf61e73a8af0-3b4280696a4mr1664403637.22.1780101588408; Fri, 29 May 2026 17:39:48 -0700 (PDT) Received: from d.home.yangfl.dn42 ([2a09:bac1:7680:d30::4cf:38]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-84214cecce5sm3504930b3a.57.2026.05.29.17.39.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 May 2026 17:39:47 -0700 (PDT) From: David Yang To: netdev@vger.kernel.org Cc: David Yang , Vladimir Oltean , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , linux-kernel@vger.kernel.org Subject: [PATCH net-next v2] net: dsa: sja1105: flower: reject cross-chip redirect Date: Sat, 30 May 2026 08:39:14 +0800 Message-ID: <20260530003940.2000994-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: quoted-printable Content-Type: text/plain; charset="utf-8" dsa_port_from_netdev() may return a valid port from a different switch chip. Programming another chip's port index into the local hardware causes redirection to the wrong port, or an out-of-bounds access if the index exceeds the local chip's port count. Apply a minimal fix that adds a check to catch this case and adjusts the extack message. When cls->common.skip_sw is not set, the operation could instead redirect to the upstream port and let the software or upstream switch(es) handle the forward, but that is not addressed here. Signed-off-by: David Yang Reviewed-by: Vladimir Oltean --- v1: https://lore.kernel.org/r/20260528203549.1918040-1-mmyangfl@gmail.com - rewrite commit message drivers/net/dsa/sja1105/sja1105_flower.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/dsa/sja1105/sja1105_flower.c b/drivers/net/dsa/sja= 1105/sja1105_flower.c index fba926f85b47..7547999a113f 100644 --- a/drivers/net/dsa/sja1105/sja1105_flower.c +++ b/drivers/net/dsa/sja1105/sja1105_flower.c @@ -391,9 +391,9 @@ int sja1105_cls_flower_add(struct dsa_switch *ds, int p= ort, struct dsa_port *to_dp; =20 to_dp =3D dsa_port_from_netdev(act->dev); - if (IS_ERR(to_dp)) { + if (IS_ERR(to_dp) || to_dp->ds !=3D ds) { NL_SET_ERR_MSG_MOD(extack, - "Destination not a switch port"); + "Destination not a local switch port"); return -EOPNOTSUPP; } =20 --=20 2.53.0