Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp4160526pxj; Mon, 21 Jun 2021 15:11:46 -0700 (PDT) X-Google-Smtp-Source: ABdhPJypXVXowrp89BmTZEYg2j69yv8VqaNzaBHA9e57GEua9YD/0qKxSmI5ZOYMkpy1l9TEJHn8 X-Received: by 2002:a6b:c984:: with SMTP id z126mr215861iof.94.1624313506150; Mon, 21 Jun 2021 15:11:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1624313506; cv=none; d=google.com; s=arc-20160816; b=j5Iwfw/I+0vJscp5j+vJZcEQUsgfESHpI5pDTpseV2YBewK09d0OWsbat3svLoBsy4 tPwxXQx1qJF5VunPKDMLpUbtxNHi5g4fjzDCpRZfFjNlRE1IY73Tagxgn1lk1vgFdNng I0kYuh/UzM2gg2UuT4Jn/7xvohsUlr4gco7kuEE2uAZGkS+/tq10gjKd1HoCkyelQpXn 3Efy2Wul1D3ZumA3L5r2fBAehs7O+k6UpDQDB9ogmCFOOCtwEGX5wgNCEVMEvnLQOXix kwwKxGWzv1MC5g17/aa+NT8J85XhPqw1LP3CQ6jNrfMV8QqqWnS98T+/5Fm6OxJSuV48 QN3Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=UF4/JJqG6JXnFjCPq71Sx5BtNeVSInrBkeRyP6YGuP8=; b=rCHB/MImeCAQ9x7teQM2PA8QgdDPdGXHoD7DPCzXkgryvMZai2dtMqqc+aA0Utw3ym /eYh2Sottyud4HksjnEUyzYfYcv7CnsdNmf3+wXAwBCGGY9RZ9dg7ugbZVQ5G3eC17fj L0bwaQryJIsJyS0XQUkXbxOO8VWfujmBcy6njz3Oqv32J3b3dlk7IWq4yA5innyoSCDb 8+uv8X9Y1Krtcu6swdy6b/Fx9Z7Tu4wJaSPh7iIfqtG92ADCAH1LTIHGR9OS0Zn7x3dx bglaDMAttfZPWzdDhx1caiNTfUUR/ML8ETjzgMVBZzSl8dHh8bo8s1Fp9qtMLXg2sl1o 9DdQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=ZVUi5rMM; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id x6si15599384ilv.67.2021.06.21.15.11.34; Mon, 21 Jun 2021 15:11:46 -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=@gmail.com header.s=20161025 header.b=ZVUi5rMM; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231790AbhFUWNP (ORCPT + 99 others); Mon, 21 Jun 2021 18:13:15 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50392 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230006AbhFUWNO (ORCPT ); Mon, 21 Jun 2021 18:13:14 -0400 Received: from mail-pg1-x52e.google.com (mail-pg1-x52e.google.com [IPv6:2607:f8b0:4864:20::52e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F3B6FC061574; Mon, 21 Jun 2021 15:10:58 -0700 (PDT) Received: by mail-pg1-x52e.google.com with SMTP id e20so15318746pgg.0; Mon, 21 Jun 2021 15:10:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=UF4/JJqG6JXnFjCPq71Sx5BtNeVSInrBkeRyP6YGuP8=; b=ZVUi5rMMu9e8N20YsHUrih7hDTgSGkWPZN7wCDYc8AVmkWcSf9J1mbZGy4QOzmEaLb BeQKcrKQRBilqUJgxGpAJ6cBcwL0l5/YY1w5jYkCFCu8NuwBARzKf3BrESrUjLDQCH5p XGepzKRzk8KQXmOEC59rDlkVUT4wH3v+fmHCE0HceL2+WwXkM+1exgcwShbKZr6pONnK Ddo4rE17wqrhLF99VPZkX1IbhO0QuC0EOeuMp7djZT+a4bYJKPziVODD+/AYuGwNbCIS p77jzdAu5+CLVc2n+JpRC7LJHz8SoNZoIwE45VZIkYl+Wb/UKabZynqmJbkD/Wflzi8U MXww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=UF4/JJqG6JXnFjCPq71Sx5BtNeVSInrBkeRyP6YGuP8=; b=mq5tkElvsC0K5EueOSoP68LThvnrqiX5+ZRgqupQ+Ac3rmSGvvXRMqUoIzf8Vu06CT +0Vqb+w20BaK7XRH6QevNZz3/2MB3P2i88B83Cy5v5vjkK8WLLrkGTySgkmDc1LW3pNr 4QfMufAh9kNrzgvAS5c83YJ74b/KZd2Vaxnh9q4bGGUH1PXOLwKNGQO4o2AUF8c+PfWu 28W+/Rc6XwjN8nDfSha5PXfedwvjxG3Q4nQwOuuorjCksTJbCdxgL5VMvVLJK/aFBXHO GkCMoH5Kx0j+4QaTL5vSObvT14PU2Qd+U+yDLyC4iBaf5ez+fxQSeuGScw97rBGmcAbz s+Cw== X-Gm-Message-State: AOAM530v8JH10/M3jM2MFjUGr9HT4yy30xiVeraIPPFoA2mzYj/QneDj nwEIFhK1xXJkyfYDKf2QA2HTVo80fqw= X-Received: by 2002:aa7:8509:0:b029:2e5:8cfe:bc17 with SMTP id v9-20020aa785090000b02902e58cfebc17mr398740pfn.2.1624313458063; Mon, 21 Jun 2021 15:10:58 -0700 (PDT) Received: from fainelli-desktop.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id v6sm16484470pfi.46.2021.06.21.15.10.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Jun 2021 15:10:57 -0700 (PDT) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , Vladimir Oltean , Andrew Lunn , Vivien Didelot , "David S. Miller" , Jakub Kicinski , linux-kernel@vger.kernel.org (open list) Subject: [PATCH net-next v2] net: dsa: b53: Create default VLAN entry explicitly Date: Mon, 21 Jun 2021 15:10:55 -0700 Message-Id: <20210621221055.958628-1-f.fainelli@gmail.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org In case CONFIG_VLAN_8021Q is not set, there will be no call down to the b53 driver to ensure that the default PVID VLAN entry will be configured with the appropriate untagged attribute towards the CPU port. We were implicitly relying on dsa_slave_vlan_rx_add_vid() to do that for us, instead make it explicit. Reported-by: Vladimir Oltean Signed-off-by: Florian Fainelli --- Changes in v2: - use b53_vlan_port_needs_forced_tagged() as suggested by Vladimir in his review drivers/net/dsa/b53/b53_common.c | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/drivers/net/dsa/b53/b53_common.c b/drivers/net/dsa/b53/b53_common.c index 6e199454e41d..b23e3488695b 100644 --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c @@ -728,6 +728,13 @@ static u16 b53_default_pvid(struct b53_device *dev) return 0; } +static bool b53_vlan_port_needs_forced_tagged(struct dsa_switch *ds, int port) +{ + struct b53_device *dev = ds->priv; + + return dev->tag_protocol == DSA_TAG_PROTO_NONE && dsa_is_cpu_port(ds, port); +} + int b53_configure_vlan(struct dsa_switch *ds) { struct b53_device *dev = ds->priv; @@ -748,9 +755,20 @@ int b53_configure_vlan(struct dsa_switch *ds) b53_enable_vlan(dev, -1, dev->vlan_enabled, ds->vlan_filtering); - b53_for_each_port(dev, i) + /* Create an untagged VLAN entry for the default PVID in case + * CONFIG_VLAN_8021Q is disabled and there are no calls to + * dsa_slave_vlan_rx_add_vid() to create the default VLAN + * entry. Do this only when the tagging protocol is not + * DSA_TAG_PROTO_NONE + */ + b53_for_each_port(dev, i) { + v = &dev->vlans[def_vid]; + v->members |= BIT(i); + if (!b53_vlan_port_needs_forced_tagged(ds, i)) + v->untag = v->members; b53_write16(dev, B53_VLAN_PAGE, B53_VLAN_PORT_DEF_TAG(i), def_vid); + } /* Upon initial call we have not set-up any VLANs, but upon * system resume, we need to restore all VLAN entries. @@ -1460,13 +1478,6 @@ static int b53_vlan_prepare(struct dsa_switch *ds, int port, return 0; } -static bool b53_vlan_port_needs_forced_tagged(struct dsa_switch *ds, int port) -{ - struct b53_device *dev = ds->priv; - - return dev->tag_protocol == DSA_TAG_PROTO_NONE && dsa_is_cpu_port(ds, port); -} - int b53_vlan_add(struct dsa_switch *ds, int port, const struct switchdev_obj_port_vlan *vlan, struct netlink_ext_ack *extack) -- 2.25.1