From patchwork Sat Feb 26 13:17:11 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Svenning_S=C3=B8rensen?= X-Patchwork-Id: 546415 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4EAA0C433EF for ; Sat, 26 Feb 2022 13:17:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231794AbiBZNRt (ORCPT ); Sat, 26 Feb 2022 08:17:49 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53204 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230477AbiBZNRs (ORCPT ); Sat, 26 Feb 2022 08:17:48 -0500 Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2100.outbound.protection.outlook.com [40.107.20.100]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CF14E20F5B for ; Sat, 26 Feb 2022 05:17:13 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dM+r+FoTERw9OWX1+7Srs0G4J08PjUSQ9sYsXpTQ3Gc3nAJYfmySkVLLqk0gWbVu8ynaMgnf/xekbhk6xGMsG+uYSyhwX70wfmiZeyEuC977rFw1d7SHKJQP49jj09n5zixKH6VYweA6IeTP2dVPRZo2t6ktAOE3iYj+e7huAtmQuo83ihy1XeU+kOWrzMxJWO2b8RHcmENIrUHAUAX8iOzXHXrd06WLL8F12bilT5ox/Ik+1t5ycJIEMJC9DLspY76srFTYKCwpUvQg+etoSizJPrLvkGUE9sGC304AsDbwm3IcLd6zYvpZC1Gpc3rVJ1W9MLVBdWi/JLr6L4KyaQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=K95+yJRmSS0H3I3V1a6xhKdSPOR9FeB6eFglSlhahaY=; b=heKF7qx2EouWY6xVJ0KjRmYMuJ3Ch9xd8PCcMWbGpOtK0uY+9eASvb2ok8qu3Zd2QBgith7qntj76TNRBelHTPgeZgEfZJvctzJqJ2dFb3i7ruxotCFbdXhyrBkZlGve+dBq1fvptKUMwaoCLmGQ2ysmYrJ+Sufex1MFsXC2cZ+kbhwDOt+4CDNnUOMP/a9l5/tOFFdRuK7zRa3MGztRT68rfDOlxad/QEjVFDGMwuJzRXiqJ8seWZKYaxq4VPrfzUc8faPo5bL3VviyaHuLggBr2Jki1dfx0Bxh2myaLfMBuE9fuMXEdLjnG0qTamJ2ySSciPHmVgw+TauLDpxhQg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=secomea.com; dmarc=pass action=none header.from=secomea.com; dkim=pass header.d=secomea.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=secomea.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=K95+yJRmSS0H3I3V1a6xhKdSPOR9FeB6eFglSlhahaY=; b=INnUCXblSRVY9vX/npLpK8jvqkK5AOsr/T/DTa5wYsMvQ9Ktf6rCSkUNhCPI6oKDJf2iM98q1NVIj01tdSeFIuGRZKXhwb8ns3GZ6qFGiVqutXbcCdkDKlu9dBA6cX+jCHzz1fL4fnTrPqM9K7fU3E+RuLARcPZgvgnYqhIgRB4= Received: from DB7PR08MB3867.eurprd08.prod.outlook.com (2603:10a6:10:7f::13) by AM0PR08MB5043.eurprd08.prod.outlook.com (2603:10a6:208:166::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5017.24; Sat, 26 Feb 2022 13:17:11 +0000 Received: from DB7PR08MB3867.eurprd08.prod.outlook.com ([fe80::216e:9d9:ffd1:7af1]) by DB7PR08MB3867.eurprd08.prod.outlook.com ([fe80::216e:9d9:ffd1:7af1%2]) with mapi id 15.20.5017.026; Sat, 26 Feb 2022 13:17:11 +0000 From: =?iso-8859-1?q?Svenning_S=F8rensen?= To: "gregkh@linuxfoundation.org" , "David S. Miller" , Oleksij Rempel CC: "stable@vger.kernel.org" Subject: Sv: FAILED: patch "[PATCH] net: dsa: microchip: fix bridging with more than two member" failed to apply to 5.16-stable tree Thread-Topic: FAILED: patch "[PATCH] net: dsa: microchip: fix bridging with more than two member" failed to apply to 5.16-stable tree Thread-Index: AQHYKmNbQhXOuQp3Q02tv5p+1+zni6yke7CkgAD3TYCAAFMS2YAACQoh Date: Sat, 26 Feb 2022 13:17:11 +0000 Message-ID: References: <164580577118139@kroah.com> In-Reply-To: Accept-Language: da-DK, en-US Content-Language: da-DK X-MS-Has-Attach: X-MS-TNEF-Correlator: suggested_attachment_session_id: 7dde3e55-093c-b0a9-e2fa-1ed5c6607a05 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=secomea.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 3e064a8c-a6ad-40f2-a02b-08d9f92a4c2a x-ms-traffictypediagnostic: AM0PR08MB5043:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: pkyPz8qfWyJ2sfNfM7rRbrYZl6/1FLOF+Zs7hStj68uF5cDlmnq7JUwWKER5cXcM+yl9plflmmui+H2o+8kWNhuPuy0XEJCgNJf9jfzM4lwSZiA2Ng9MsJRIJTYWP8wEOAQdl+yN8DYYFD6wfudiV45jB6af5QT+SPDDFGdif7zQLP5pDuCSgWsRtkucvpZokF3ng9xrEEGI2W6Q7IkYteYfpEHWqqDTfdtf9/Nou3//XKlVm6GcEslls2mRhhgvo0iKHSo9yTAewZjOJLywJkSGdMuW6tdpamuevtVOfgPOl1v47NyXMzBLyiSlh1lvmvcxofci1oFLJKDi3/7sfMEFqkvEr1lRHtP0+dLXoHf7qp08B74j2WN6OTBk/2qGZiO3IvlS2XFikG1C+iJk4RSgr9+X+1GOSXc7ICZoMmWItheKoCZREDtSAGpvyhCLf1mW+NApXk/KmaeovjdJS9FTAo1LQQ1HjiqXRqnSARsykK/zFxLF3+N/tWXYucsx7hThZP982NlGH/85qcfOX7Z7V/e/0H6OKOw2BbdPRuKyF4p2C//M06jPqG25X6FuJDP2DSMYcJY5KyM/NVl9mahY/Zg8/yfWj2GBz9kmTFYD7NOWfjynBNma0Hy0iEr8mz8Ly2ItRxnsY2nF4ZG0N588/VuAzr+h5OJqKhShsyE6ah53gT1uHzxsduAIuMXC+NFPQSRn18RY6prIGtv1vw== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB7PR08MB3867.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(39830400003)(136003)(346002)(366004)(376002)(396003)(55016003)(316002)(66574015)(186003)(508600001)(66446008)(66476007)(66946007)(2940100002)(83380400001)(76116006)(66556008)(52536014)(6506007)(91956017)(122000001)(110136005)(7696005)(8936002)(33656002)(71200400001)(26005)(64756008)(5660300002)(2906002)(86362001)(8676002)(4326008)(38100700002)(9686003)(38070700005); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?gDbQ5+RhT9y/wgCr/JeXgYu?= =?iso-8859-1?q?39oEQschQ52yn8k4rD48saH5ub7HUkIAtPs+K9eXog2IJAXIr0XNx05sa6D3?= =?iso-8859-1?q?XBaeZqF8LhTjRgmSoJuoF2l4QhMiyqoi8Ybbs9ayL+HExtAwe4fRZl62n5bd?= =?iso-8859-1?q?NqNqJZwPFYZ/g16Zzt4x4d7oCF87tyV9HlWCB9iXwsHKYZncjWV3Yjl7eIzu?= =?iso-8859-1?q?xrJ0cRv6Idu/Ur0Fk/xKKU38RzGXB8Zubt89U/v93KXIZtee5jk/SFjbbvjF?= =?iso-8859-1?q?/gt2VdytIyl7RHPt4L6i0o+rZ0G13FR7W2Fb8aAw5BU4sNYSEa/336VefYCg?= =?iso-8859-1?q?e+EhI9bZntAzCyGSioOBHb1zMN1MhOouZztTL2oTFhDjpgIJU4eHACzH8SYl?= =?iso-8859-1?q?gly5zxjlIZIWE+DtWKnmx/oaXBFlymTTA/zd7FtQr+dd2ZyeDm7HMNurYeu8?= =?iso-8859-1?q?DuH7YVoi9ucQuBI/UWmlxlu50k4hckmu0nTvboOOT2YqIfmBLaA1jNdwx8AP?= =?iso-8859-1?q?X1a8CkLugkwL4+SaLeqioz6ebppt9om95ojnykFkdbABjGzFeES2Vj1g/xgr?= =?iso-8859-1?q?UuLY17hK1OXDfWcIqvdTFZ3TJu51jV+lnN3y6mvGhhIA13UsjIien9rFViGI?= =?iso-8859-1?q?qYskvdcmgzx/F+j9IJ/EhCaieLWnUYz8OvH1nPdcEWhPwX37ztwy9wMcWygW?= =?iso-8859-1?q?qxdyRuOusn0LjFJ1KEOgKIPSzCTtpQ07iq3du9Wvlz2VUHaS6Urp2/Wc1u1e?= =?iso-8859-1?q?E+KHAySPe7Y1mEqCuBS6ZLrrSjL+amk95p8nYlSJzCP+fyuZqYwHAjyhYB25?= =?iso-8859-1?q?i7jLR0M5vCU/TuXeylS1xevp5IujqCY6Gwstmg95jUe83cByTzRS7bjHiQWA?= =?iso-8859-1?q?br4XQf0PEEbBqOc/5EBJ6/U3unwAtNmt/5cHg1s8m0Q0Bz4/wUqNFNdfkzR6?= =?iso-8859-1?q?RYCIJKdbhaZ4PJi5XzSejlSBYGINMNDBe5dXyPe9Csf9EbHhd9J9m5tcCKrm?= =?iso-8859-1?q?VRBsbbtmKMQ670nRSxSFmRhJ4Uq2Rof/PyK0JANnhCyTKzRSMdRq45DmIIBJ?= =?iso-8859-1?q?cFsSlLxTprMSVT5a+NySs3IsX9UKBeMxDZ0UfoJf6Cglqno3CcEKVqPRyEG0?= =?iso-8859-1?q?RGn7BsVnUHWP32FDsXTO1MrCOeGn500rRhfWCwBLDegr7XoVb8F2QLnHSOH1?= =?iso-8859-1?q?1ddVo0ZpAxsn427gicldc4dNjlNFk1wABBmRGPkYQRIRFJfiEHvtdUhSt4LL?= =?iso-8859-1?q?J0qE1MzsfZhp2RdMXoHAdmErMsyveEUzdGqMftjSZQtdZsdVlDOw/YQ8M7/g?= =?iso-8859-1?q?O4eFllHRU1gu/yOr/unfjWjZd0wlrnQGNhBgWX6+gSLlDt8EluK489l2Rf2U?= =?iso-8859-1?q?cXFcDpsAmaA7wtjm57cbCiPgmxwqiDqUhTCpte2kL24d+28/qS6Z81bQIxtQ?= =?iso-8859-1?q?3lDo6S8Pq0MDewMKoKY9H8L/Xil4xLmD6CWaXZEFF8BaQS5ESmgEyn+FuZyt?= =?iso-8859-1?q?bCYSlOPOXvyw7zCWM6xydjEdkfTK/BsDPoQCc43PfEeJGMvpARs80BzU0VUT?= =?iso-8859-1?q?OdbaCTSnINzeSuwon+BmfyyWUB/v1m+z3NA=3D=3D?= MIME-Version: 1.0 X-OriginatorOrg: secomea.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DB7PR08MB3867.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3e064a8c-a6ad-40f2-a02b-08d9f92a4c2a X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Feb 2022 13:17:11.0502 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 979261ea-5b3f-4cae-9a49-3a7da1f4fb47 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: L1D+2+nr2zVWLY6Mj3e8JOGNJ/JCZgSPEjf0y/4ieBYvFQoayd//aKRU2123KNtz X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR08MB5043 Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org Commit b3612ccdf284 ("net: dsa: microchip: implement multi-bridge support") plugged a packet leak between ports that were members of different bridges. Unfortunately, this broke another use case, namely that of more than two ports that are members of the same bridge. After that commit, when a port is added to a bridge, hardware bridging between other member ports of that bridge will be cleared, preventing packet exchange between them. Fix by ensuring that the Port VLAN Membership bitmap includes any existing ports in the bridge, not just the port being added. Upstream commit 3d00827a90db6f79abc7cdc553887f89a2e0a184, backported to 5.16. Fixes: b3612ccdf284 ("net: dsa: microchip: implement multi-bridge support") Signed-off-by: Svenning Sørensen Tested-by: Oleksij Rempel Signed-off-by: David S. Miller --- drivers/net/dsa/microchip/ksz_common.c | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) -- 2.20.1 Backported upstream commit 3d00827a90db6f79abc7cdc553887f89a2e0a184 to 5.16. Sorry about the subject; the MS webmail client doesn't seem allow me to change it when replying to a message :( Svenning diff --git a/drivers/net/dsa/microchip/ksz_common.c b/drivers/net/dsa/microchip/ksz_common.c index 8a04302018dc..7ab9ab58de65 100644 --- a/drivers/net/dsa/microchip/ksz_common.c +++ b/drivers/net/dsa/microchip/ksz_common.c @@ -26,7 +26,7 @@ void ksz_update_port_member(struct ksz_device *dev, int port) struct dsa_switch *ds = dev->ds; u8 port_member = 0, cpu_port; const struct dsa_port *dp; - int i; + int i, j; if (!dsa_is_user_port(ds, port)) return; @@ -45,13 +45,33 @@ void ksz_update_port_member(struct ksz_device *dev, int port) continue; if (!dp->bridge_dev || dp->bridge_dev != other_dp->bridge_dev) continue; + if (other_p->stp_state != BR_STATE_FORWARDING) + continue; - if (other_p->stp_state == BR_STATE_FORWARDING && - p->stp_state == BR_STATE_FORWARDING) { + if (p->stp_state == BR_STATE_FORWARDING) { val |= BIT(port); port_member |= BIT(i); } + /* Retain port [i]'s relationship to other ports than [port] */ + for (j = 0; j < ds->num_ports; j++) { + const struct dsa_port *third_dp; + struct ksz_port *third_p; + + if (j == i) + continue; + if (j == port) + continue; + if (!dsa_is_user_port(ds, j)) + continue; + third_p = &dev->ports[j]; + if (third_p->stp_state != BR_STATE_FORWARDING) + continue; + third_dp = dsa_to_port(ds, j); + if (third_dp->bridge_dev == dp->bridge_dev) + val |= BIT(j); + } + dev->dev_ops->cfg_port_member(dev, i, val | cpu_port); }