From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.0 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B8C62C10F05 for ; Tue, 26 Mar 2019 12:03:33 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 886D02075C for ; Tue, 26 Mar 2019 12:03:33 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=resnulli-us.20150623.gappssmtp.com header.i=@resnulli-us.20150623.gappssmtp.com header.b="HS2i25CC" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731542AbfCZMDc (ORCPT ); Tue, 26 Mar 2019 08:03:32 -0400 Received: from mail-wr1-f65.google.com ([209.85.221.65]:38426 "EHLO mail-wr1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731514AbfCZMDX (ORCPT ); Tue, 26 Mar 2019 08:03:23 -0400 Received: by mail-wr1-f65.google.com with SMTP id k11so6610408wro.5 for ; Tue, 26 Mar 2019 05:03:22 -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=44qOBf2xXzOTg1StWGTwbV5QHjrdnAzhUvqBK4FQyTc=; b=HS2i25CC8fFCRfedhW1etkQvF9fI/jtwZFUtOieCcnMRFNZJMB1lzJWZbX1KnKSc3w lUkV173+6OdkeiD98CcD/RiAnhEgn0Nhp6a6qnLbadm3m2KCPox+KGcWEvz+WjIhzTTp Ex2pGK7tQO0T5Lo7zQDd/qeasbW1vv4iyOGUh1j4pSCoLerWM1RHYHnqR/uPJw0KG5pc BEbFYDFsYqT6EHlk7Ug6f2aYw2CCv8V0m5mv4RSzbU1rYiOrtT9KNHdSWLELyoQGRwXN OucgPat3B1rJY96ubjy63o2nJUg3tmq3csOeiCST6AGlo3fQKkn7ROLaEMtTK6WbtFLw U2qg== 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=44qOBf2xXzOTg1StWGTwbV5QHjrdnAzhUvqBK4FQyTc=; b=b/Y2AY0HW7Zt2S5UywHnHSbtq95L8r49VBbJOPP8hpR/7bZ/uhiXtTwYZCkPLtkLDB QIgm1Us59QOZnNTf170UCkuFLh3X6W4bbCmnmTnOLBWKPmTdJLNa2z0r20J/j9bPw7ln nynox9oK5Px7loENDa3f9ZvxgEeKX1bIedh61aZE3wkcBOOXPCm5uz7DzOntP503Zoj5 EimNUMZeP520RqvahrLfFkdg2vSghxlxB8A7Ocmo2hi4CQEgD9ZHjZlhi3ejnjyKbEaL WXEd0uN2SjdNmtWw5EXYQJD68+l71p3D+skp7LygGVmkechpzy1TCntXooCdN//lOdno yVwg== X-Gm-Message-State: APjAAAWediJo/oLCpRhWBqkDxgE20AddFmzLI/czE2EI1WePspf4gDXl xFAtnajNHOYdeqdqMaNhuxYkUeEoVjs= X-Google-Smtp-Source: APXvYqy/tshV/MHXjI1UP6jwcfUkI5pCP/FPu8ifvBCGeVI1CYmh1MjCgbHgOaw+YVzg/EtL7m1Fkw== X-Received: by 2002:adf:f1c7:: with SMTP id z7mr20300261wro.274.1553601801577; Tue, 26 Mar 2019 05:03:21 -0700 (PDT) Received: from localhost (mail.chocen-mesto.cz. [85.163.43.2]) by smtp.gmail.com with ESMTPSA id e193sm43628150wmg.18.2019.03.26.05.03.21 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 26 Mar 2019 05:03:21 -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, michael.chan@broadcom.com Subject: [patch net-next v2 12/12] net: devlink: add warning for ndo_get_phys_port_name set when not needed Date: Tue, 26 Mar 2019 13:03:07 +0100 Message-Id: <20190326120307.2953-13-jiri@resnulli.us> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20190326120307.2953-1-jiri@resnulli.us> References: <20190326120307.2953-1-jiri@resnulli.us> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Jiri Pirko Currently if the driver registers devlink port instance, it should set the devlink port attributes as well. Then the devlink core is able to obtain physical port name itself, no need for driver to implement the ndo. Once all drivers will implement devlink port registration, this ndo should be removed. This warning guides new drivers to do things as they should be done. Signed-off-by: Jiri Pirko --- v1->v2: - new patch --- net/core/devlink.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/net/core/devlink.c b/net/core/devlink.c index 356d7ee7c404..3eb5d6025154 100644 --- a/net/core/devlink.c +++ b/net/core/devlink.c @@ -5412,6 +5412,24 @@ static void __devlink_port_type_set(struct devlink_port *devlink_port, void devlink_port_type_eth_set(struct devlink_port *devlink_port, struct net_device *netdev) { + /* If driver registers devlink port, it should set devlink port + * attributes accordingly so the compat functions are called + * and the original ops are not used. + */ + if (netdev->netdev_ops->ndo_get_phys_port_name) { + /* Some drivers use the same set of ndos for netdevs + * that have devlink_port registered and also for + * those who don't. Make sure that ndo_get_phys_port_name + * returns -EOPNOTSUPP here in case it is defined. + * Warn if not. + */ + const struct net_device_ops *ops = netdev->netdev_ops; + char name[IFNAMSIZ]; + int err; + + err = ops->ndo_get_phys_port_name(netdev, name, sizeof(name)); + WARN_ON(err != -EOPNOTSUPP); + } __devlink_port_type_set(devlink_port, DEVLINK_PORT_TYPE_ETH, netdev); } EXPORT_SYMBOL_GPL(devlink_port_type_eth_set); -- 2.17.2