Received: by 2002:a25:683:0:0:0:0:0 with SMTP id 125csp2170398ybg; Fri, 5 Jun 2020 07:20:19 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwvzMzmB0PAECcW2KGg/xS6ryPw8Vzorh1yTKd0/s+L+dWQ+fQ3kJaLma8YSGHoZBrg/+ml X-Received: by 2002:a05:6402:308b:: with SMTP id de11mr9538233edb.181.1591366819223; Fri, 05 Jun 2020 07:20:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1591366819; cv=none; d=google.com; s=arc-20160816; b=RQ6zYNZ+kCjaB+oqIueRuerfl2cAXUEbXj4BO1vWhrkbCxAJ5Ey4/sM+Fcc9Jn8NRy GA8cgP+GUNKD1fhsOh1CEjCOm0XJ3EMiNrzI+tKxYXhD7HcQNfGvzxxW7iDnb+lQ1AEK oR4SEII7IabU0j+gCxsqlxMQKsr2x6A3u+mumb3pFKGU6lfaRr6qDeUNIxRp6DfAtvfL X1zBiHvC52YdjKX7gxuHEn+x0tb4Myayfu/g8An1rW07iZBJxlTmq7dhCR/kYxsx5tPE dKUFXH4VuKbli8+vBe9QDDcJky5vtkoMsDQ4NOjpMb2xP5lod3Ww6GqjeAf7a9Vd678I 9t+A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=4l2rsR5rUtAZuKE3qPdWxmSFbbRbvI8I8VWo9JYnWLk=; b=K1nNh27Ukg11L7Q95K1mQlquTNUcoQZV9h273ayKIscMWrbXYf4n+FJtiv/F8u17tc MxNlyOOg93AqIGOQQtPEoQ5b2jhEvY7lKMI20IsHXgwoM5ts8CShRftqCftAzLisgIhS zoiaBi4xo67AzaU4Bfcy0g5tQzmWiTf4XWutodD3b1xRy1z+wGVWHJ4C+kh/0rhbRU9E mrt1h4kFbyQm9+jgAhvAvAQSWYL0UsxYNcPo8xe/Ugirm/Kl+kky3uqG9kMo2bdIUq73 0Fuqa34ZuALR1XA5OHgQvW+JQJ6XonEKTM9zI8IYTaeqrPwcc6HRMS1TjbMeEqqmbBAr k12g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=sIBMv+KP; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id jp23si3502428ejb.749.2020.06.05.07.19.56; Fri, 05 Jun 2020 07:20:19 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=sIBMv+KP; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728088AbgFEOPz (ORCPT + 99 others); Fri, 5 Jun 2020 10:15:55 -0400 Received: from mail.kernel.org ([198.145.29.99]:44648 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728077AbgFEOPx (ORCPT ); Fri, 5 Jun 2020 10:15:53 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 114722063A; Fri, 5 Jun 2020 14:15:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1591366553; bh=eDtv6RqkFFoGv8zY7QyREa51bhrLW+hkdxbZ/eGXaHo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=sIBMv+KP1SQE5btlIoal66ORqLEJmRvyRefFNUJNBHwXS70rWuQuMAq/70jaKqx5d yRFZnY/O3dnD7dudHslA762TnFH2aJnvc/OZ6hVksbIuUQKv2ATOZgUtGkMBw8Myc6 dOnj9Dt7d5fv0TwdeokufnPlVySF9qbYJQVbRRL4= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, DENG Qingfang , Florian Fainelli , "David S. Miller" Subject: [PATCH 5.7 13/14] net: dsa: mt7530: set CPU port to fallback mode Date: Fri, 5 Jun 2020 16:15:03 +0200 Message-Id: <20200605135951.807618055@linuxfoundation.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200605135951.018731965@linuxfoundation.org> References: <20200605135951.018731965@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: DENG Qingfang commit 38152ea37d8bdaffa22603e0a5b5b86cfa8714c9 upstream. Currently, setting a bridge's self PVID to other value and deleting the default VID 1 renders untagged ports of that VLAN unable to talk to the CPU port: bridge vlan add dev br0 vid 2 pvid untagged self bridge vlan del dev br0 vid 1 self bridge vlan add dev sw0p0 vid 2 pvid untagged bridge vlan del dev sw0p0 vid 1 # br0 cannot send untagged frames out of sw0p0 anymore That is because the CPU port is set to security mode and its PVID is still 1, and untagged frames are dropped due to VLAN member violation. Set the CPU port to fallback mode so untagged frames can pass through. Fixes: 83163f7dca56 ("net: dsa: mediatek: add VLAN support for MT7530") Signed-off-by: DENG Qingfang Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller Signed-off-by: Greg Kroah-Hartman --- drivers/net/dsa/mt7530.c | 11 ++++++++--- drivers/net/dsa/mt7530.h | 6 ++++++ 2 files changed, 14 insertions(+), 3 deletions(-) --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c @@ -807,10 +807,15 @@ mt7530_port_set_vlan_aware(struct dsa_sw PCR_MATRIX_MASK, PCR_MATRIX(MT7530_ALL_MEMBERS)); /* Trapped into security mode allows packet forwarding through VLAN - * table lookup. + * table lookup. CPU port is set to fallback mode to let untagged + * frames pass through. */ - mt7530_rmw(priv, MT7530_PCR_P(port), PCR_PORT_VLAN_MASK, - MT7530_PORT_SECURITY_MODE); + if (dsa_is_cpu_port(ds, port)) + mt7530_rmw(priv, MT7530_PCR_P(port), PCR_PORT_VLAN_MASK, + MT7530_PORT_FALLBACK_MODE); + else + mt7530_rmw(priv, MT7530_PCR_P(port), PCR_PORT_VLAN_MASK, + MT7530_PORT_SECURITY_MODE); /* Set the port as a user port which is to be able to recognize VID * from incoming packets before fetching entry within the VLAN table. --- a/drivers/net/dsa/mt7530.h +++ b/drivers/net/dsa/mt7530.h @@ -153,6 +153,12 @@ enum mt7530_port_mode { /* Port Matrix Mode: Frames are forwarded by the PCR_MATRIX members. */ MT7530_PORT_MATRIX_MODE = PORT_VLAN(0), + /* Fallback Mode: Forward received frames with ingress ports that do + * not belong to the VLAN member. Frames whose VID is not listed on + * the VLAN table are forwarded by the PCR_MATRIX members. + */ + MT7530_PORT_FALLBACK_MODE = PORT_VLAN(1), + /* Security Mode: Discard any frame due to ingress membership * violation or VID missed on the VLAN table. */