Received: by 10.223.164.221 with SMTP id h29csp355693wrb; Fri, 3 Nov 2017 16:08:25 -0700 (PDT) X-Google-Smtp-Source: ABhQp+TqB1Qv09bVL6CA5ShTgzw8H8Ohoi1YoIjVVqbVigjPdnmQP3niLbzci1i57Jewv/9+Xl2a X-Received: by 10.98.194.193 with SMTP id w62mr9291367pfk.67.1509750505063; Fri, 03 Nov 2017 16:08:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1509750505; cv=none; d=google.com; s=arc-20160816; b=J1b6kb9us1RevL9UTHlOi4ANa15W9ChBoC/ktT4oJ05YhQJdnJORqM7PKnmikFdxKH lubKhj6GRiRg596zHhWqniBbCg04iVqSWS22FBQBw4AVrJzp9rzDo8KH9tjg7t2JbOrc ZkdC0WGypljTiu87HWUP6bWkVneRX42wYcYpF8YZWZybnhBZdoEdXD/ySY/zddYmCajI LbolG7VK2k0azfSETivCI3xytK2H3WZVJxrZeryuNJFIaOSld6PARghzu6x7Jh7D93Up Xa631z9SAC/SKHt+5Bh5+bgrd87KvKHSyWi1S4fK4Gja0Sg5YombKhKYNncExFvynCsW Tt4Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:arc-authentication-results; bh=2NEDnJ7WOK64M/c0Oiwbt06zOlYZlgmkl8gPetAZTf0=; b=bKNaP++5kVFul0jbZg9AhCxEI20bQtzIN3rgbiLQvOlHqp1Iow/E+JX3yhAqacorNk zOn9u9n4UgGcQ9dpPzaBVMMc8+A/QNATtOb2AHtJgE89Ww80I8LFPJKnoN7KKfl0kEoG Awi9PxKPJPgHazAcNWk4PgsezUjJjB+wvMTkwiUbEhA2z3gYMAdHNW9waYm51ETBmuv3 mlR6Sgabsea7wjFF6H9oZKLnslg2KR2heHh4RPbV+vqpR4oNEtVz4Nl+nEcOQzG4nizR IIdeFxTib7yhqNOxlClOyAYYEelOMVuvYJ6vYHmnG0z3fqJLhf4JE2y/AZ9IyKmTJ4E7 5ZXQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id t14si6217746pgv.644.2017.11.03.16.08.12; Fri, 03 Nov 2017 16:08:25 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752618AbdKCXGt (ORCPT + 92 others); Fri, 3 Nov 2017 19:06:49 -0400 Received: from mail.savoirfairelinux.com ([208.88.110.44]:33400 "EHLO mail.savoirfairelinux.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755031AbdKCXGC (ORCPT ); Fri, 3 Nov 2017 19:06:02 -0400 Received: from localhost (localhost [127.0.0.1]) by mail.savoirfairelinux.com (Postfix) with ESMTP id 029FB9C2F4F; Fri, 3 Nov 2017 19:06:02 -0400 (EDT) Received: from mail.savoirfairelinux.com ([127.0.0.1]) by localhost (mail.savoirfairelinux.com [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id Jd8KcqgGSDye; Fri, 3 Nov 2017 19:05:55 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by mail.savoirfairelinux.com (Postfix) with ESMTP id 60E829C2E24; Fri, 3 Nov 2017 19:05:47 -0400 (EDT) X-Virus-Scanned: amavisd-new at mail.savoirfairelinux.com Received: from mail.savoirfairelinux.com ([127.0.0.1]) by localhost (mail.savoirfairelinux.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id ZJwdCL6oyUwN; Fri, 3 Nov 2017 19:05:47 -0400 (EDT) Received: from weeman.mtl.sfl (unknown [192.168.49.192]) by mail.savoirfairelinux.com (Postfix) with ESMTPSA id 0D2129C3000; Fri, 3 Nov 2017 19:05:47 -0400 (EDT) From: Vivien Didelot To: netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org, kernel@savoirfairelinux.com, "David S. Miller" , Florian Fainelli , Andrew Lunn , Vivien Didelot Subject: [PATCH net-next 11/11] net: dsa: resolve tagging protocol at parse time Date: Fri, 3 Nov 2017 19:05:30 -0400 Message-Id: <20171103230530.996-12-vivien.didelot@savoirfairelinux.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20171103230530.996-1-vivien.didelot@savoirfairelinux.com> References: <20171103230530.996-1-vivien.didelot@savoirfairelinux.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Extend the dsa_port_parse_cpu() function to resolve the tagging protocol at port parsing time, instead of waiting for the whole tree to be complete. Signed-off-by: Vivien Didelot --- net/dsa/dsa2.c | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/net/dsa/dsa2.c b/net/dsa/dsa2.c index 271a97ef5bf6..283104e5ca6a 100644 --- a/net/dsa/dsa2.c +++ b/net/dsa/dsa2.c @@ -511,22 +511,11 @@ static int dsa_port_parse_dsa(struct dsa_port *dp) static int dsa_port_parse_cpu(struct dsa_port *dp, struct net_device *master) { - dp->type = DSA_PORT_TYPE_CPU; - dp->master = master; - - return 0; -} - -static int dsa_cpu_parse(struct dsa_port *port, u32 index, - struct dsa_switch_tree *dst, - struct dsa_switch *ds) -{ + struct dsa_switch *ds = dp->ds; + struct dsa_switch_tree *dst = ds->dst; const struct dsa_device_ops *tag_ops; enum dsa_tag_protocol tag_protocol; - if (!dst->cpu_dp) - dst->cpu_dp = port; - tag_protocol = ds->ops->get_tag_protocol(ds); tag_ops = dsa_resolve_tag_protocol(tag_protocol); if (IS_ERR(tag_ops)) { @@ -534,11 +523,21 @@ static int dsa_cpu_parse(struct dsa_port *port, u32 index, return PTR_ERR(tag_ops); } - dst->cpu_dp->tag_ops = tag_ops; + dp->type = DSA_PORT_TYPE_CPU; + dp->rcv = tag_ops->rcv; + dp->tag_ops = tag_ops; + dp->master = master; + dp->dst = dst; - /* Make a few copies for faster access in master receive hot path */ - dst->cpu_dp->rcv = dst->cpu_dp->tag_ops->rcv; - dst->cpu_dp->dst = dst; + return 0; +} + +static int dsa_cpu_parse(struct dsa_port *port, u32 index, + struct dsa_switch_tree *dst, + struct dsa_switch *ds) +{ + if (!dst->cpu_dp) + dst->cpu_dp = port; return 0; } -- 2.14.3 From 1583053500871502930@xxx Fri Nov 03 13:57:45 +0000 2017 X-GM-THRID: 1583053500871502930 X-Gmail-Labels: Inbox,Category Forums,HistoricalUnread