From patchwork Mon Jul 24 16:37:12 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 792886 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="p3oOvQ/w"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xGRqd0n2wz9s3w for ; Tue, 25 Jul 2017 02:37:33 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754535AbdGXQhS (ORCPT ); Mon, 24 Jul 2017 12:37:18 -0400 Received: from mail-qk0-f193.google.com ([209.85.220.193]:33318 "EHLO mail-qk0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752194AbdGXQhQ (ORCPT ); Mon, 24 Jul 2017 12:37:16 -0400 Received: by mail-qk0-f193.google.com with SMTP id d145so7840999qkc.0; Mon, 24 Jul 2017 09:37:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=M6bytD+BRG4txWUMc/6qb6akZAjuNvsdmuW1tDGNfkc=; b=p3oOvQ/w1ndpYzOq07WARHphD9PXbg2KXtQ6kGJOfj0di3bY0calp4xy8CffdFa+94 n80ZZ45Ot8iJ6q2e2Yj/m0nzIJPQKdAsBQQRkyZMnBTHYoTw9e8vWKMFrgfb3zzEygm8 f4YYi8C+NNPPcJ//xydD0msFz8h2/bxyjOccXOyg7fS3JehCCNsKSPp6VkW6XX1rxtl0 W8+XoX4Xpu+icH6VVEyxhmCLlWW5tazB3Du7/fTgWwnVyD0eXZgiQJkoCTJTXWLEmq8v ynS8Oo8JWILd6hpnFOTFadOP7rjz63/t+/vRa39imHazHvf4LaMpkrLTQoG4v1jhidPt gMZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=M6bytD+BRG4txWUMc/6qb6akZAjuNvsdmuW1tDGNfkc=; b=TF8iPuaSXRAr5HbXSJm6UPGMx9C4ax3lI9hE53FKq2P3WxeDUah2Z7qbomupSiBGb+ XS6TnutEgaHRSZ3WOUJivaec4hLZ4id/5Kx3vdpbehaVhEHYU4PPtWP/pqFqdNgraZBS Qf2i6+2jLSj5PdjBaYRPzsitldKS/LCayhmfficgMn7FctUls86s1UZvzfrxCTULL3Ef C1epN7g9vP5yLzZlPOhjvvsqqxDfF72Enu2RKkG7nBXu5xb46gdbXs2QC1FV1YNaRkq1 oDMknv9wcy2wozbBrtIjGQcxKHsWKUjm+7uNDNsMLvyqTM1tarQMqxddCy+BySYiu+t8 +apg== X-Gm-Message-State: AIVw113i3+BsaEHVj+kPvWzYL5GdZwMGwDmu+Ehe/oK+rig4Qv+we+n3 vgPURVL+DQKXTtDcsoQ= X-Received: by 10.55.180.198 with SMTP id d189mr19418379qkf.103.1500914235207; Mon, 24 Jul 2017 09:37:15 -0700 (PDT) Received: from [10.112.156.244] ([192.19.255.250]) by smtp.googlemail.com with ESMTPSA id n8sm8878995qtc.5.2017.07.24.09.37.13 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 24 Jul 2017 09:37:14 -0700 (PDT) Subject: Re: [PATCH] net: dsa: fixup fail to get tag in mtk_get_tag_protocol To: sean.wang@mediatek.com, davem@davemloft.net, andrew@lunn.ch, vivien.didelot@savoirfairelinux.com Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mediatek@lists.infradead.org References: <77d2e1bb09314a27a08d02dec9ec62e217b2b9d6.1500908869.git.sean.wang@mediatek.com> From: Florian Fainelli Message-ID: <557d5c4b-118d-034f-5580-b57b06126965@gmail.com> Date: Mon, 24 Jul 2017 09:37:12 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 MIME-Version: 1.0 In-Reply-To: <77d2e1bb09314a27a08d02dec9ec62e217b2b9d6.1500908869.git.sean.wang@mediatek.com> Content-Language: en-US Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org On 07/24/2017 08:14 AM, sean.wang@mediatek.com wrote: > From: Sean Wang > > dsa_is_cpu_port() checking ds->cpu_port_mask is not available in > ds->ops->get_tag_protocol > > Since commit 14be36c2c96c ("net: dsa: Initialize all CPU and enabled > ports masks in dsa_ds_parse()") So force returning DSA_TAG_PROTO_MTK > inside mtk_get_tag_protocol call after that. So a better fix could look like this then: > > Cc: Florian Fainelli > Signed-off-by: Sean Wang > --- > drivers/net/dsa/mt7530.c | 10 +--------- > 1 file changed, 1 insertion(+), 9 deletions(-) > > diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c > index 1e46418..c265e7e 100644 > --- a/drivers/net/dsa/mt7530.c > +++ b/drivers/net/dsa/mt7530.c > @@ -892,15 +892,7 @@ mt7530_port_fdb_dump(struct dsa_switch *ds, int port, > static enum dsa_tag_protocol > mtk_get_tag_protocol(struct dsa_switch *ds) > { > - struct mt7530_priv *priv = ds->priv; > - > - if (!dsa_is_cpu_port(ds, MT7530_CPU_PORT)) { > - dev_warn(priv->dev, > - "port not matched with tagging CPU port\n"); > - return DSA_TAG_PROTO_NONE; > - } else { > - return DSA_TAG_PROTO_MTK; > - } > + return DSA_TAG_PROTO_MTK; > } > > static int > diff --git a/net/dsa/dsa2.c b/net/dsa/dsa2.c index 56e46090526b..c442051d5a55 100644 --- a/net/dsa/dsa2.c +++ b/net/dsa/dsa2.c @@ -509,21 +509,22 @@ static int dsa_cpu_parse(struct dsa_port *port, u32 index, dst->cpu_dp->netdev = ethernet_dev; } + /* Initialize cpu_port_mask now for drv->setup() + * to have access to a correct value, just like what + * net/dsa/dsa.c::dsa_switch_setup_one does. + */ + ds->cpu_port_mask |= BIT(index); + tag_protocol = ds->ops->get_tag_protocol(ds); dst->tag_ops = dsa_resolve_tag_protocol(tag_protocol); if (IS_ERR(dst->tag_ops)) { dev_warn(ds->dev, "No tagger for this switch\n"); + ds->cpu_port_mask &= ~BIT(index); return PTR_ERR(dst->tag_ops); } dst->rcv = dst->tag_ops->rcv; - /* Initialize cpu_port_mask now for drv->setup() - * to have access to a correct value, just like what - * net/dsa/dsa.c::dsa_switch_setup_one does. - */ - ds->cpu_port_mask |= BIT(index); - return 0; }