From patchwork Fri Mar 22 16:56:30 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiri Pirko X-Patchwork-Id: 1061398 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@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; dmarc=none (p=none dis=none) header.from=resnulli.us Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=resnulli-us.20150623.gappssmtp.com header.i=@resnulli-us.20150623.gappssmtp.com header.b="aH6hIELk"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44QqZK4BW6z9sRf for ; Sat, 23 Mar 2019 03:56:57 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728693AbfCVQ45 (ORCPT ); Fri, 22 Mar 2019 12:56:57 -0400 Received: from mail-wm1-f67.google.com ([209.85.128.67]:33929 "EHLO mail-wm1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728572AbfCVQ44 (ORCPT ); Fri, 22 Mar 2019 12:56:56 -0400 Received: by mail-wm1-f67.google.com with SMTP id o10so4728671wmc.1 for ; Fri, 22 Mar 2019 09:56:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=resnulli-us.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=0WXIUQQ+Q0ii0uBbI8ydoEFcaZ982r1dap3BC849Xv8=; b=aH6hIELkAsgwyFrVwoDI3gI8sVDiYP78TkPDlKY4dkJpEmuIicHnlivlQqCIEp55IU 9PQJK7X6M/FVLPEFbYTUDXAbdgywRMSlWsEQYri9jgy9tCnjXhiyUIvwhLQvfzeAEDcb nw0F5XNFy3stxETLspC+2MUV0S6EodGdUflp8NqTliqSlpxqDkaDNJQloEm379Lhhee+ QUOv6mK4Bdt5BE8k8XUtx/ZuNn3yaCoxBFiWMQSJoHhOpIRsj98j6CU1JFGwBPJ2vA0V cCLmaQLMLLFamWA6tf7D40zcBFpJzf6KFd9z1Qhx1XFn2bVHjQ8ba7j0EIB4abGH4jLf MQOA== 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:in-reply-to :references; bh=0WXIUQQ+Q0ii0uBbI8ydoEFcaZ982r1dap3BC849Xv8=; b=HsNBeJiGtSZoKYJMPRZF9RUO+IKLVfEo/q/LFQ5X8yl8Rba4CuWc6B1jUcBLBxvzIO rQE5US/MsWRdDXP3LzhakOfDCsv0WFBWWqHRud5VEbPDDbOP291JSoamuAjANX6Ld3Pa J1V3SrCZejPgmFC/kFkG0oJ9HacFTQENW0ANPkofPUMEDQilUVZu3Qo0aLbYK8D3znL6 XD7gCnpWDUPlXgQxv0QaeK272pzPxwzwTK0nndAei9kKQaMLfMXcU/k/tMg0DlmSYkXA UQ1Vdc5uUGPmRC83x3aK2Sgi6SDWjJUNdAYHFgiSKKMi+lsQ4ieThv2heAQwYnSRPowC pJyw== X-Gm-Message-State: APjAAAVwurwkXKtalTC7YngKvNLK+GGkVlz58lpBPQcFwkWWpmzkdtiq y6knOnshRLnwqPIfandY9zCtK99cM/E= X-Google-Smtp-Source: APXvYqwUwR+CjK9qTaS0H2Ajn7sU/gbKdns2GevPIOrRq+nakImqMnovyAOw293HHwAtKh8LF2sJyg== X-Received: by 2002:a1c:c254:: with SMTP id s81mr3782645wmf.55.1553273813992; Fri, 22 Mar 2019 09:56:53 -0700 (PDT) Received: from localhost ([195.39.71.253]) by smtp.gmail.com with ESMTPSA id t15sm7544434wmt.2.2019.03.22.09.56.53 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 22 Mar 2019 09:56:53 -0700 (PDT) From: Jiri Pirko To: netdev@vger.kernel.org Cc: davem@davemloft.net, mlxsw@mellanox.com, idosch@mellanox.com, jakub.kicinski@netronome.com, f.fainelli@gmail.com, andrew@lunn.ch, vivien.didelot@gmail.com Subject: [patch net-next v2 09/15] dsa: move devlink_port_attrs_set() call before register Date: Fri, 22 Mar 2019 17:56:30 +0100 Message-Id: <20190322165636.1725-10-jiri@resnulli.us> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20190322165636.1725-1-jiri@resnulli.us> References: <20190322165636.1725-1-jiri@resnulli.us> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Jiri Pirko Since attrs are static during the existence of devlink port, set the before registration of the port. Signed-off-by: Jiri Pirko Reviewed-by: Andrew Lunn --- v1->v2: - fixed comment for port numbering --- net/dsa/dsa2.c | 47 ++++++++++++++++++++++++++--------------------- 1 file changed, 26 insertions(+), 21 deletions(-) diff --git a/net/dsa/dsa2.c b/net/dsa/dsa2.c index 4558de672b4f..fe0a6197db9c 100644 --- a/net/dsa/dsa2.c +++ b/net/dsa/dsa2.c @@ -258,14 +258,36 @@ static void dsa_tree_teardown_default_cpu(struct dsa_switch_tree *dst) static int dsa_port_setup(struct dsa_port *dp) { + enum devlink_port_flavour flavour; struct dsa_switch *ds = dp->ds; - int err = 0; + int err; + + if (dp->type == DSA_PORT_TYPE_UNUSED) + return 0; memset(&dp->devlink_port, 0, sizeof(dp->devlink_port)); - if (dp->type != DSA_PORT_TYPE_UNUSED) - err = devlink_port_register(ds->devlink, &dp->devlink_port, - dp->index); + switch (dp->type) { + case DSA_PORT_TYPE_CPU: + flavour = DEVLINK_PORT_FLAVOUR_CPU; + break; + case DSA_PORT_TYPE_DSA: + flavour = DEVLINK_PORT_FLAVOUR_DSA; + break; + case DSA_PORT_TYPE_USER: /* fall-through */ + default: + flavour = DEVLINK_PORT_FLAVOUR_PHYSICAL; + break; + } + + /* dp->index is used now as port_number. However + * CPU and DSA ports should have separate numbering + * independent from front panel port numbers. + */ + devlink_port_attrs_set(&dp->devlink_port, flavour, + dp->index, false, 0); + err = devlink_port_register(ds->devlink, &dp->devlink_port, + dp->index); if (err) return err; @@ -273,13 +295,6 @@ static int dsa_port_setup(struct dsa_port *dp) case DSA_PORT_TYPE_UNUSED: break; case DSA_PORT_TYPE_CPU: - /* dp->index is used now as port_number. However - * CPU ports should have separate numbering - * independent from front panel port numbers. - */ - devlink_port_attrs_set(&dp->devlink_port, - DEVLINK_PORT_FLAVOUR_CPU, - dp->index, false, 0); err = dsa_port_link_register_of(dp); if (err) { dev_err(ds->dev, "failed to setup link for port %d.%d\n", @@ -288,13 +303,6 @@ static int dsa_port_setup(struct dsa_port *dp) } break; case DSA_PORT_TYPE_DSA: - /* dp->index is used now as port_number. However - * DSA ports should have separate numbering - * independent from front panel port numbers. - */ - devlink_port_attrs_set(&dp->devlink_port, - DEVLINK_PORT_FLAVOUR_DSA, - dp->index, false, 0); err = dsa_port_link_register_of(dp); if (err) { dev_err(ds->dev, "failed to setup link for port %d.%d\n", @@ -303,9 +311,6 @@ static int dsa_port_setup(struct dsa_port *dp) } break; case DSA_PORT_TYPE_USER: - devlink_port_attrs_set(&dp->devlink_port, - DEVLINK_PORT_FLAVOUR_PHYSICAL, - dp->index, false, 0); err = dsa_slave_create(dp); if (err) dev_err(ds->dev, "failed to create slave for port %d.%d\n",