From patchwork Tue Jun 27 07:50:24 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jakub Kicinski X-Patchwork-Id: 781031 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3wxdRT1mVnz9ryb for ; Tue, 27 Jun 2017 17:51:49 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=netronome-com.20150623.gappssmtp.com header.i=@netronome-com.20150623.gappssmtp.com header.b="1UfIS5vb"; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752553AbdF0Hvq (ORCPT ); Tue, 27 Jun 2017 03:51:46 -0400 Received: from mail-pf0-f180.google.com ([209.85.192.180]:33121 "EHLO mail-pf0-f180.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751659AbdF0HvP (ORCPT ); Tue, 27 Jun 2017 03:51:15 -0400 Received: by mail-pf0-f180.google.com with SMTP id e7so12632794pfk.0 for ; Tue, 27 Jun 2017 00:51:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netronome-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=W3eNEhep2LpFl+Q/1devqeHeZcJSkW0tJlssuh8219g=; b=1UfIS5vbc21nSJo8UPBEA9BJ/Gt4vQgqP784a+IhDml2uIgsi1m8fTX3fpxU23lGqS OItYEtI7qjHjACH6NxjKGB3yXspUMKe2UOfB1jpSh5svWvKMvVLz0uR69PmC8vrTo2NJ JdBrw6cYLPZjk1vZUJ0moHE6DOkZ7bkUYpijTBVZgIzAeoIEBxNwtjH7gNR59ME1SJsW mEqj/gEHxlH76MXD5gFvAVQuSLUmoTLIk+ikV/yGeh10iDs8QpaHh7uOSbJZ9oPwdIgt teU48o7NhMcQ8Vjwe+SM9VceZ1qjQNFJtnrWbaIsjl6if6m6C63aNIeuuKCoy82gBt00 /bkA== 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=W3eNEhep2LpFl+Q/1devqeHeZcJSkW0tJlssuh8219g=; b=eiHgZqwEOC2MGbhwx2ylc9R58xyJJaNXg1T2A9g0xqKuyv66D7v6e88o79sc4H9rRq PNxyvrCC3hUm9tdACJzeHtGxUAnIDRVziod/z+y5MUf7b2xDwPgJ3X4m0BC26Q9/rSLf e+2FniaUyPzXFqTsc9RcQ+5MXDSQBVU9CWc6HQexvyrwmoPLkBZZPZ5XF7Yj6c56PVCY 3RGJ69pkIi0Vr1CykyGsYqN9adgzXVjeA758fzLWoh2EkoUulv2pqRWGsb0EdRoYbVQ3 QRUueZt+LwSWV14QXfuZP7Iztl2Odo9QxJh18AfVgzg2a3tdtIZc1Q7TK67iTsQ20tvx YsuA== X-Gm-Message-State: AKS2vOz1gsFADr21yy2MEQ3kZ1tC9M5vDzVcVEHjUf7grtqEhgtPWKxN kaQ8eewKwvRCMeEwi+w= X-Received: by 10.84.224.202 with SMTP id k10mr4464070pln.182.1498549874094; Tue, 27 Jun 2017 00:51:14 -0700 (PDT) Received: from jkicinski-Precision-T1700.netronome.com ([75.53.12.129]) by smtp.gmail.com with ESMTPSA id c19sm4205282pfj.15.2017.06.27.00.51.13 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 27 Jun 2017 00:51:13 -0700 (PDT) From: Jakub Kicinski To: netdev@vger.kernel.org Cc: oss-drivers@netronome.com, Jakub Kicinski Subject: [PATCH net-next 10/14] nfp: wire get_phys_port_name on representors Date: Tue, 27 Jun 2017 00:50:24 -0700 Message-Id: <20170627075028.4009-11-jakub.kicinski@netronome.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170627075028.4009-1-jakub.kicinski@netronome.com> References: <20170627075028.4009-1-jakub.kicinski@netronome.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Make nfp_port_get_phys_port_name() support new port types and wire it up to representors' struct net_device_ops. Signed-off-by: Jakub Kicinski Reviewed-by: Simon Horman --- drivers/net/ethernet/netronome/nfp/nfp_net_repr.c | 1 + drivers/net/ethernet/netronome/nfp/nfp_port.c | 30 +++++++++++++++++------ 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c b/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c index 7bfdef2af1a9..046b89eb4cf2 100644 --- a/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c +++ b/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c @@ -256,6 +256,7 @@ const struct net_device_ops nfp_repr_netdev_ops = { .ndo_get_stats64 = nfp_repr_get_stats64, .ndo_has_offload_stats = nfp_repr_has_offload_stats, .ndo_get_offload_stats = nfp_repr_get_offload_stats, + .ndo_get_phys_port_name = nfp_port_get_phys_port_name, }; static void nfp_repr_clean(struct nfp_repr *repr) diff --git a/drivers/net/ethernet/netronome/nfp/nfp_port.c b/drivers/net/ethernet/netronome/nfp/nfp_port.c index 0be6c7e0b1c1..0b44952945d8 100644 --- a/drivers/net/ethernet/netronome/nfp/nfp_port.c +++ b/drivers/net/ethernet/netronome/nfp/nfp_port.c @@ -106,15 +106,31 @@ nfp_port_get_phys_port_name(struct net_device *netdev, char *name, size_t len) int n; port = nfp_port_from_netdev(netdev); - eth_port = __nfp_port_get_eth_port(port); - if (!eth_port) + if (!port) + return -EOPNOTSUPP; + + switch (port->type) { + case NFP_PORT_PHYS_PORT: + eth_port = __nfp_port_get_eth_port(port); + if (!eth_port) + return -EOPNOTSUPP; + + if (!eth_port->is_split) + n = snprintf(name, len, "p%d", eth_port->label_port); + else + n = snprintf(name, len, "p%ds%d", eth_port->label_port, + eth_port->label_subport); + break; + case NFP_PORT_PF_PORT: + n = snprintf(name, len, "pf%d", port->pf_id); + break; + case NFP_PORT_VF_PORT: + n = snprintf(name, len, "pf%dvf%d", port->pf_id, port->vf_id); + break; + default: return -EOPNOTSUPP; + } - if (!eth_port->is_split) - n = snprintf(name, len, "p%d", eth_port->label_port); - else - n = snprintf(name, len, "p%ds%d", eth_port->label_port, - eth_port->label_subport); if (n >= len) return -EINVAL;