From patchwork Sat Feb 9 00:32:33 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 1039052 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=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="rHvdL2dY"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43xChC48K2z9sMp for ; Sat, 9 Feb 2019 11:33:15 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726889AbfBIAdO (ORCPT ); Fri, 8 Feb 2019 19:33:14 -0500 Received: from mail-pg1-f196.google.com ([209.85.215.196]:33688 "EHLO mail-pg1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726244AbfBIAdN (ORCPT ); Fri, 8 Feb 2019 19:33:13 -0500 Received: by mail-pg1-f196.google.com with SMTP id z11so2300038pgu.0; Fri, 08 Feb 2019 16:33:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=xSDiEUomFlKO81BcHg8wxzxKpBA9WTirXiTn2sWcb0g=; b=rHvdL2dYMBfO5I57l3R7mnQ8rEzrxc3ENpgi9e+2dRuOvfq0uTCdiozzg36O4gV71f 6E6EZzVLx7im4Icn+p3RZFZABsEBm2prOAf/XbNcqKpbIJd1p04a90qsAnTSKseZXv/P +chU3hIelyMGQLraXJot2mN6OyWb9rYMKz6oxprr2W0TU7InlWFr04jp8SlYGak1MihO 8qHQO0MipMmEA8nErV3V6fj8tfUzJhfw/xX1jBr4Kp8R3DUVzIaCAw+WmQ15o1AFf5Rk aYCOojiUNVsnb6bgSnpRuERZorLUaRKiwjuz4rGoNpXzdAXBvvrNZ2NuAy7fxNW/GYsV 8vYQ== 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=xSDiEUomFlKO81BcHg8wxzxKpBA9WTirXiTn2sWcb0g=; b=ca01oG1HTd5b9sFlhiWdwAXj1bMRFU0T+jyWJ/M6xopE4qP5fkwQRZKexZPoa+j+Z1 /ey8yCaXOiPtKOtYBJHMNB/01ptO1py0EnNQuMOJmKn9uAgm+EB8IaZgukWP8u8AYHbl VSkfXQfOw3//dRgqRFYH45iMrgFr104UNYu3ZyUA8y2NL1rTsE2POm2BJpSpqwUZ6KWs 2iWVG6wTecG2r2L0kH8ZCL81w4pkolED3UOpkDkvusuJKZGQLr+pmGInxxSTbPSK0Mma CMqDp+oAVHam42asmgyazPiaO8qG5A0axIPtOnao3GXiugWUTf6bizu8kArbxsaLYZfC GjEA== X-Gm-Message-State: AHQUAuaEpNxLQGpnsphdVT+soiQSiLsQ3Kpf/42mK4T945//WhHMZV4/ vq2iI+CqaGBZHNrptED0PmK81HCM X-Google-Smtp-Source: AHgI3IaPNWArHT7OstmG4D43bcqk7uC5UURIRyXgpM8MkNnIgr+z2Q7LqaJzmZEXnU/X32pM5On+rg== X-Received: by 2002:a62:9fd9:: with SMTP id v86mr24964024pfk.191.1549672392171; Fri, 08 Feb 2019 16:33:12 -0800 (PST) Received: from fainelli-desktop.igp.broadcom.net ([192.19.223.250]) by smtp.gmail.com with ESMTPSA id i71sm372491pfi.170.2019.02.08.16.33.08 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 08 Feb 2019 16:33:11 -0800 (PST) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , "David S. Miller" , Ido Schimmel , linux-kernel@vger.kernel.org (open list), devel@driverdev.osuosl.org (open list:STAGING SUBSYSTEM), bridge@lists.linux-foundation.org (moderated list:ETHERNET BRIDGE), jiri@mellanox.com, andrew@lunn.ch, vivien.didelot@gmail.com Subject: [PATCH net-next 01/16] Documentation: networking: switchdev: Update port parent ID section Date: Fri, 8 Feb 2019 16:32:33 -0800 Message-Id: <20190209003248.31088-2-f.fainelli@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190209003248.31088-1-f.fainelli@gmail.com> References: <20190209003248.31088-1-f.fainelli@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Update the section about switchdev drivers having to implement a switchdev_port_attr_get() function to return SWITCHDEV_ATTR_ID_PORT_PARENT_ID since that is no longer valid after commit bccb30254a4a ("net: Get rid of SWITCHDEV_ATTR_ID_PORT_PARENT_ID"). Fixes: bccb30254a4a ("net: Get rid of SWITCHDEV_ATTR_ID_PORT_PARENT_ID") Signed-off-by: Florian Fainelli Acked-by: Jiri Pirko --- Documentation/networking/switchdev.txt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Documentation/networking/switchdev.txt b/Documentation/networking/switchdev.txt index f3244d87512a..2842f63ad47b 100644 --- a/Documentation/networking/switchdev.txt +++ b/Documentation/networking/switchdev.txt @@ -92,11 +92,11 @@ device. Switch ID ^^^^^^^^^ -The switchdev driver must implement the switchdev op switchdev_port_attr_get -for SWITCHDEV_ATTR_ID_PORT_PARENT_ID for each port netdev, returning the same -physical ID for each port of a switch. The ID must be unique between switches -on the same system. The ID does not need to be unique between switches on -different systems. +The switchdev driver must implement the net_device operation +ndo_get_port_parent_id for each port netdev, returning the same physical ID +for each port of a switch. The ID must be unique between switches on the same +system. The ID does not need to be unique between switches on different +systems. The switch ID is used to locate ports on a switch and to know if aggregated ports belong to the same switch. From patchwork Sat Feb 9 00:32:34 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 1039053 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=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="kdqJH5dY"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43xChJ1q8cz9sLw for ; Sat, 9 Feb 2019 11:33:20 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726969AbfBIAdT (ORCPT ); Fri, 8 Feb 2019 19:33:19 -0500 Received: from mail-pg1-f196.google.com ([209.85.215.196]:46436 "EHLO mail-pg1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726244AbfBIAdR (ORCPT ); Fri, 8 Feb 2019 19:33:17 -0500 Received: by mail-pg1-f196.google.com with SMTP id w7so2269290pgp.13; Fri, 08 Feb 2019 16:33:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=BivFvmV3c30k+UgJ9J2DVi/oCYbtYBfA6Or0DIYBZvk=; b=kdqJH5dYUXkNE/wDnYp8u2HbXrDFbHhBYyjXrGnFh7jxGX96J3vesF4Psq72NVX/28 n8YE7GHtrHK9vMY3jY4MIyBQvdY48H1lUXyWu3GEDGz6hjrJqkFYYVYHHAbAtC5EqBgW nKMIculyDVkeBGBbaFGLMYTX1s3oFZF8wamZ2H51fhF7W6p+7xbVJwoKhO645o0wsaN5 uN/Xtd0f5hMjeRWKlt+oaliaSRF65H3k9JKpT+X1zSkPywkWlyvoSaHnlPa54Q/QR21d Hc9O7sx0mMxTtXpy3J2e50ZYd5T7VEKmGlXDlovD9xYRbDzzcxyoXeH1I2+E2o5DtkVA 6DlA== 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=BivFvmV3c30k+UgJ9J2DVi/oCYbtYBfA6Or0DIYBZvk=; b=XZ6gd2cA+u4nb1oG5hr6bShtYQNCB4XvmekAQZDs4vs4mGYOkRKzf159yTmuxH+a8Q TMTjXe207YNvfLyrAhU24rlsyMozfPelKWIC1o7cFl8+2kDgTFJ1GbISnvPtkjLToS3l xpD1s0dIg1g+675rpixCQnndvEH/PyGTfVia/9GSfHIaSfa9UWlBoR2Vyqr6qaTE/lWS PqB6VyRFOtpl+thCf75QphdPFIlHMgpNR9pwWFI1ZJnsh2gxYRmGkz/eWw1tfsi884Fy lp8+45HP1/bHtDpd45eNgF9UCGvdk8xb7GP3P52c3OOMLSQHeo/xelbrmXKjoIhtLi1e Z6Vw== X-Gm-Message-State: AHQUAuaW5XVSXJn5SZgmp9isD7rDsgkZeXjhGTqFE01eHBohKzKiE7GF wLPaTU8mOQfc7VbkW067YiEQeiZM X-Google-Smtp-Source: AHgI3IYMGHgJTbsF10jhb5ux6SnbhsFWGFoTueyAvzy7Gr1HPJUvUSykSZQNhDhG/GCKOc6og3vONQ== X-Received: by 2002:aa7:8286:: with SMTP id s6mr24721437pfm.63.1549672396595; Fri, 08 Feb 2019 16:33:16 -0800 (PST) Received: from fainelli-desktop.igp.broadcom.net ([192.19.223.250]) by smtp.gmail.com with ESMTPSA id i71sm372491pfi.170.2019.02.08.16.33.12 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 08 Feb 2019 16:33:15 -0800 (PST) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , "David S. Miller" , Ido Schimmel , linux-kernel@vger.kernel.org (open list), devel@driverdev.osuosl.org (open list:STAGING SUBSYSTEM), bridge@lists.linux-foundation.org (moderated list:ETHERNET BRIDGE), jiri@mellanox.com, andrew@lunn.ch, vivien.didelot@gmail.com Subject: [PATCH net-next 02/16] mlxsw: spectrum: Check bridge flags during prepare phase Date: Fri, 8 Feb 2019 16:32:34 -0800 Message-Id: <20190209003248.31088-3-f.fainelli@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190209003248.31088-1-f.fainelli@gmail.com> References: <20190209003248.31088-1-f.fainelli@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org In preparation for getting rid of switchdev_port_attr_get(), have mlxsw check for the bridge flags being set through switchdev_port_attr_set() with the SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS attribute identifier. Signed-off-by: Florian Fainelli Acked-by: Jiri Pirko --- drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c index 95e37de3e48f..468a6d513074 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c @@ -623,8 +623,11 @@ static int mlxsw_sp_port_attr_br_flags_set(struct mlxsw_sp_port *mlxsw_sp_port, struct mlxsw_sp_bridge_port *bridge_port; int err; - if (switchdev_trans_ph_prepare(trans)) + if (switchdev_trans_ph_prepare(trans)) { + if (brport_flags & ~(BR_LEARNING | BR_FLOOD | BR_MCAST_FLOOD)) + return -EOPNOTSUPP; return 0; + } bridge_port = mlxsw_sp_bridge_port_find(mlxsw_sp_port->mlxsw_sp->bridge, orig_dev); From patchwork Sat Feb 9 00:32:35 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 1039054 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=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="ds1cgo2i"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43xChS6MwWz9sLw for ; Sat, 9 Feb 2019 11:33:28 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727018AbfBIAdX (ORCPT ); Fri, 8 Feb 2019 19:33:23 -0500 Received: from mail-pf1-f194.google.com ([209.85.210.194]:43081 "EHLO mail-pf1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726930AbfBIAdW (ORCPT ); Fri, 8 Feb 2019 19:33:22 -0500 Received: by mail-pf1-f194.google.com with SMTP id w73so2429547pfk.10; Fri, 08 Feb 2019 16:33:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=33kk5S35E4b328f8vXqo4LKpo2Z5ZPT3Y6kFb640bVo=; b=ds1cgo2iCYBWm6Cr+ZtQVCrU1lUdjl4DdnRf47CsrsS7lKxG6+CqmEYNb+UwnjyiEb vNFrwL+t/iNRr37Xp6ssDjtzdATTya7BC+0BuH3MVBq8/AZAb5HIpPUlKy+9175rOSKk OqUEJrhG58MSkw7OXIIESlaa8fnHjE2SemIM3u9HBNqdNDQfyAkaniHRIAXX+4w45Bsj ndijfSkd9TGTgffO03RAOjYUaUcwnzwEGGyFdcBSN0gagYOmc7wwpFDuuuIflF27l8vg HUNRasl6vnMKzp6LeIqWtl9TB5bBhi9mUOJ++eCisW9SkcTiQpP4q8x4pUt7Val9w7pi e9WA== 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=33kk5S35E4b328f8vXqo4LKpo2Z5ZPT3Y6kFb640bVo=; b=AcvOkK4ehHDGlyXFoJTegp51/K6MP0fPeRvONKu+4lEdK2K9IYZ3Dd1Kob9lW51EOO 20M0PyD8sC4EDGBEpiPUocU1E0lSWJjsFQDkK0DQ8bswOPG+VrAc/aJzOk3eD7R1SZS1 q5hN7LzWiUI5U8ki1aoOcsgDECNoO+ogRUPIqa+O3r/4okhEotejWeBGQokjj08Q24Y5 KJophf70Le+IvCgE5Lmneut1VShp8iKxGQMMScNDdLPFDCLjPO3VhtKoJHa8RaKeafOR i80X1+3s4iTIT/t6uQG4w4lXV23rdeMzTPL4yxkiEHWIT4GTu/B/5PaY/T98z/mODb4L COjA== X-Gm-Message-State: AHQUAuZ5OPnP/g2VqNG6IbAfecCG266xwbqjdqx3/AnhSiFh9dUgEm8y vS8jWWwgWexm/8nzzr5brJIoaLNW X-Google-Smtp-Source: AHgI3IbD3XHnO5LzRtKQEUeam0hszLuYEFCj5HUDx6qDF8CXlDXgT1nUetmtcAH5GD962sqXAsZC6w== X-Received: by 2002:a62:d005:: with SMTP id p5mr25078617pfg.175.1549672400979; Fri, 08 Feb 2019 16:33:20 -0800 (PST) Received: from fainelli-desktop.igp.broadcom.net ([192.19.223.250]) by smtp.gmail.com with ESMTPSA id i71sm372491pfi.170.2019.02.08.16.33.16 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 08 Feb 2019 16:33:20 -0800 (PST) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , "David S. Miller" , Ido Schimmel , linux-kernel@vger.kernel.org (open list), devel@driverdev.osuosl.org (open list:STAGING SUBSYSTEM), bridge@lists.linux-foundation.org (moderated list:ETHERNET BRIDGE), jiri@mellanox.com, andrew@lunn.ch, vivien.didelot@gmail.com Subject: [PATCH net-next 03/16] staging: fsl-dpaa2: ethsw: Check bridge port flags during set Date: Fri, 8 Feb 2019 16:32:35 -0800 Message-Id: <20190209003248.31088-4-f.fainelli@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190209003248.31088-1-f.fainelli@gmail.com> References: <20190209003248.31088-1-f.fainelli@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org In preparation for removing SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS_SUPPORT, have ethsw check that the bridge port flags that are being set are supported. Signed-off-by: Florian Fainelli Acked-by: Jiri Pirko --- drivers/staging/fsl-dpaa2/ethsw/ethsw.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/staging/fsl-dpaa2/ethsw/ethsw.c b/drivers/staging/fsl-dpaa2/ethsw/ethsw.c index e559f4c25cf7..6228c4375835 100644 --- a/drivers/staging/fsl-dpaa2/ethsw/ethsw.c +++ b/drivers/staging/fsl-dpaa2/ethsw/ethsw.c @@ -680,8 +680,11 @@ static int port_attr_br_flags_set(struct net_device *netdev, struct ethsw_port_priv *port_priv = netdev_priv(netdev); int err = 0; - if (switchdev_trans_ph_prepare(trans)) + if (switchdev_trans_ph_prepare(trans)) { + if (flags & ~(BR_LEARNING | BR_FLOOD)) + return -EOPNOTSUPP; return 0; + } /* Learning is enabled per switch */ err = ethsw_set_learning(port_priv->ethsw_data, flags & BR_LEARNING); From patchwork Sat Feb 9 00:32:36 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 1039055 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=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="rGHRTrlU"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43xChT52BYz9sMp for ; Sat, 9 Feb 2019 11:33:29 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727078AbfBIAd2 (ORCPT ); Fri, 8 Feb 2019 19:33:28 -0500 Received: from mail-pf1-f195.google.com ([209.85.210.195]:35058 "EHLO mail-pf1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726930AbfBIAd0 (ORCPT ); Fri, 8 Feb 2019 19:33:26 -0500 Received: by mail-pf1-f195.google.com with SMTP id z9so2449899pfi.2; Fri, 08 Feb 2019 16:33:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=SrfBV6sMfKn5kftN7j9UYGK0gm1FsB0zr8/yiSFRNK8=; b=rGHRTrlUuKJbkPSNg+GmzA527l10JLzlMKa7WYVso+1dpglnGx3fCMH4Nxlr1q8q25 byp/loWueYScC7XukBSJ+wlvh63tLUo+GLHN7dAEaP9tFDejX12zOPBqk0Xge6p7UUXb tuHK2Q380fFi4xHkJpRqNlIPCr4CszWQgr3QHUL9YnBa4sj8SZj4qy8ovJj0j5+XSgDa Z4JbbVeW0P5UWDkN+y9MbsVJsZZAiSqnd5+BpzNPJATeUMVOeARauAYM+hdp24moILNb opHFqcW6t5GDZ4NbbPGfOT5ZH1HnsHD9SYzIgN3yBkT0pAkBfGW8w7RSg/oM5AfN+kSH UQKA== 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=SrfBV6sMfKn5kftN7j9UYGK0gm1FsB0zr8/yiSFRNK8=; b=qvGuY+p41r4vcJm53Enqu1bB2U7kY7gKqU5uPzpn/1SxTvY3IW9Mp4hddskhScCfOj NVj3N+3pWOcyutkjMDUskAybrZ05WpOL67pawIRVNPOaTGUYeSD+8/5O+lIwQoE73Z1Z BKBUU/t+PbpHzGvT2OiWEtq4FZcMbY4CdOAvk5tnG9zdsjxVVDvg9Ni/eu9u76rC2AE6 bZVM3/4tx98l/HjbMOTGpFnVdheXW3jF7LhzM3LxjWkczfk5x+PLhGUjSsgknFgY5bq1 sTveUNjQnPid6h8HuzCaAeryVCS5Zoeo4jijco8KC60BqmHr3ktHeUPSYmfx3gvNrMFA BGow== X-Gm-Message-State: AHQUAuYJu9oEAqtOgRkk21UmlqlSW9UIqWwxs0yIusIQNvWiGRccQ8lF +3NHHBssFmiL9WjIOPnnPu72oL+y X-Google-Smtp-Source: AHgI3IY1wuMTxQBkyiirTMYdHhUAplOL8f9UOJlzif+8npwyasKkhIgpEl4uMm0AXTh/+E2rxJfOcA== X-Received: by 2002:a63:6704:: with SMTP id b4mr23208648pgc.100.1549672405257; Fri, 08 Feb 2019 16:33:25 -0800 (PST) Received: from fainelli-desktop.igp.broadcom.net ([192.19.223.250]) by smtp.gmail.com with ESMTPSA id i71sm372491pfi.170.2019.02.08.16.33.21 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 08 Feb 2019 16:33:24 -0800 (PST) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , "David S. Miller" , Ido Schimmel , linux-kernel@vger.kernel.org (open list), devel@driverdev.osuosl.org (open list:STAGING SUBSYSTEM), bridge@lists.linux-foundation.org (moderated list:ETHERNET BRIDGE), jiri@mellanox.com, andrew@lunn.ch, vivien.didelot@gmail.com Subject: [PATCH net-next 04/16] net: dsa: Add setter for SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS Date: Fri, 8 Feb 2019 16:32:36 -0800 Message-Id: <20190209003248.31088-5-f.fainelli@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190209003248.31088-1-f.fainelli@gmail.com> References: <20190209003248.31088-1-f.fainelli@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org In preparation for removing SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS_SUPPORT, add support for a function that processes the SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS attribute and returns not supported for any flag set, since DSA does not currently support toggling those bridge port attributes (yet). Signed-off-by: Florian Fainelli Acked-by: Jiri Pirko --- net/dsa/dsa_priv.h | 3 +++ net/dsa/port.c | 10 ++++++++++ net/dsa/slave.c | 4 ++++ 3 files changed, 17 insertions(+) diff --git a/net/dsa/dsa_priv.h b/net/dsa/dsa_priv.h index 1f4972dab9f2..97594f0b6efb 100644 --- a/net/dsa/dsa_priv.h +++ b/net/dsa/dsa_priv.h @@ -150,6 +150,9 @@ int dsa_port_vlan_filtering(struct dsa_port *dp, bool vlan_filtering, struct switchdev_trans *trans); int dsa_port_ageing_time(struct dsa_port *dp, clock_t ageing_clock, struct switchdev_trans *trans); +int dsa_port_bridge_port_flags_set(struct dsa_port *dp, + unsigned long brport_flags, + struct switchdev_trans *trans); int dsa_port_fdb_add(struct dsa_port *dp, const unsigned char *addr, u16 vid); int dsa_port_fdb_del(struct dsa_port *dp, const unsigned char *addr, diff --git a/net/dsa/port.c b/net/dsa/port.c index 2d7e01b23572..2ce3752203cf 100644 --- a/net/dsa/port.c +++ b/net/dsa/port.c @@ -177,6 +177,16 @@ int dsa_port_ageing_time(struct dsa_port *dp, clock_t ageing_clock, return dsa_port_notify(dp, DSA_NOTIFIER_AGEING_TIME, &info); } +int dsa_port_bridge_port_flags_set(struct dsa_port *dp, + unsigned long brport_flags, + struct switchdev_trans *trans) +{ + if (brport_flags) + return -EOPNOTSUPP; + + return 0; +} + int dsa_port_fdb_add(struct dsa_port *dp, const unsigned char *addr, u16 vid) { diff --git a/net/dsa/slave.c b/net/dsa/slave.c index 70395a0ae52e..212fc1cc27fc 100644 --- a/net/dsa/slave.c +++ b/net/dsa/slave.c @@ -292,6 +292,10 @@ static int dsa_slave_port_attr_set(struct net_device *dev, case SWITCHDEV_ATTR_ID_BRIDGE_AGEING_TIME: ret = dsa_port_ageing_time(dp, attr->u.ageing_time, trans); break; + case SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS: + ret = dsa_port_bridge_port_flags_set(dp, attr->u.brport_flags, + trans); + break; default: ret = -EOPNOTSUPP; break; From patchwork Sat Feb 9 00:32:37 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 1039056 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=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="Bvxk9HQp"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43xChd1LpQz9sMp for ; Sat, 9 Feb 2019 11:33:37 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727120AbfBIAdc (ORCPT ); Fri, 8 Feb 2019 19:33:32 -0500 Received: from mail-pl1-f196.google.com ([209.85.214.196]:46657 "EHLO mail-pl1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726930AbfBIAda (ORCPT ); Fri, 8 Feb 2019 19:33:30 -0500 Received: by mail-pl1-f196.google.com with SMTP id o6so2440041pls.13; Fri, 08 Feb 2019 16:33:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=SdrJ+oS+GUGFnNUQUWKb4pbc8XzkyTnnh3se8pJXu1M=; b=Bvxk9HQpTUfcPUbKmQdZjIRmVb4uHvx32UT7E74ywnMEz8K95iVy6IkNdfqjewvQFQ UJzmfFVc2YGzeOAl6132yXkWzYAk01dmMSwSxXsofRLiqCxE1sSTVnwc4XRWC2QdXp85 /0v/sra6UNcRj6JEC4aUbUTXjZAIBMdoc6EG8fr2QtWlp10nQcsqQP0yB9qfRqZmuXPN Uf2r37Nb+4ixYHT5+VOvBGBXJlIinpTRLVU2W3k6OuHwyRmvAxbMO5PzPvUc95NO2dcY OjewS2woHjAUsYURb+cvcqH6kvhYwk90JFk19vwwfq7Mvj0PCvOBuh7kfr6vVuyzMUeG e7zg== 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=SdrJ+oS+GUGFnNUQUWKb4pbc8XzkyTnnh3se8pJXu1M=; b=nfbscAhkZc2ukf7mtcOB3z8x1rYYMlzrcw/8y9rdwurdmjW1/e2czxMSANDhxDoVwu KMPFk0l+PbK1tupx2ugoJWwpnUtWasX18Hsd7cPFRmm6bWvzBcn28gf+dCeIW0N8K021 sHiNm7d7/4zdYXR5Gy7M0dT9eRJD+enkyY1xgdEFsE+gAvCx5UEkrfHaq54YeiaJSN9c O80B0+Lm2xVTGfPk9Feo054phB7oQlmTNaEsFGCfHMC6GDUlscZG8KtHTH4+kvswaD4Q GVByCI/7SRHkD46HF7iCbiGtvhWtflcZClXQ2w971vA+8WuvtjSvpXrywKAZi4IEBWOL b3fw== X-Gm-Message-State: AHQUAubvY5hbV6Wx7HyZQlVtHXJRve0RyZ/7t2/+GMdXGIqnsGyG8gNu DpvbQ9tjBXpvTQzidwiOGrZrhSUc X-Google-Smtp-Source: AHgI3IahN/+ivn1O/r6Nv/QyUapEKNfF76Ri1WWL7VQV9mzB8txsJvzJmzRAZKOCYwMWsbPmmUZXIQ== X-Received: by 2002:a17:902:129:: with SMTP id 38mr25808977plb.140.1549672409794; Fri, 08 Feb 2019 16:33:29 -0800 (PST) Received: from fainelli-desktop.igp.broadcom.net ([192.19.223.250]) by smtp.gmail.com with ESMTPSA id i71sm372491pfi.170.2019.02.08.16.33.25 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 08 Feb 2019 16:33:28 -0800 (PST) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , "David S. Miller" , Ido Schimmel , linux-kernel@vger.kernel.org (open list), devel@driverdev.osuosl.org (open list:STAGING SUBSYSTEM), bridge@lists.linux-foundation.org (moderated list:ETHERNET BRIDGE), jiri@mellanox.com, andrew@lunn.ch, vivien.didelot@gmail.com Subject: [PATCH net-next 05/16] rocker: Check bridge flags during prepare phase Date: Fri, 8 Feb 2019 16:32:37 -0800 Message-Id: <20190209003248.31088-6-f.fainelli@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190209003248.31088-1-f.fainelli@gmail.com> References: <20190209003248.31088-1-f.fainelli@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org In preparation for getting rid of switchdev_port_attr_get(), have rocker check for the bridge flags being set through switchdev_port_attr_set() with the SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS attribute identifier. Signed-off-by: Florian Fainelli Acked-by: Jiri Pirko --- drivers/net/ethernet/rocker/rocker_main.c | 40 ++++++++++++++--------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/drivers/net/ethernet/rocker/rocker_main.c b/drivers/net/ethernet/rocker/rocker_main.c index 66f72f8c46e5..8657313b6f30 100644 --- a/drivers/net/ethernet/rocker/rocker_main.c +++ b/drivers/net/ethernet/rocker/rocker_main.c @@ -1565,18 +1565,42 @@ static int rocker_world_port_attr_stp_state_set(struct rocker_port *rocker_port, return wops->port_attr_stp_state_set(rocker_port, state); } +static int +rocker_world_port_attr_bridge_flags_support_get(const struct rocker_port * + rocker_port, + unsigned long * + p_brport_flags_support) +{ + struct rocker_world_ops *wops = rocker_port->rocker->wops; + + if (!wops->port_attr_bridge_flags_support_get) + return -EOPNOTSUPP; + return wops->port_attr_bridge_flags_support_get(rocker_port, + p_brport_flags_support); +} + static int rocker_world_port_attr_bridge_flags_set(struct rocker_port *rocker_port, unsigned long brport_flags, struct switchdev_trans *trans) { struct rocker_world_ops *wops = rocker_port->rocker->wops; + unsigned long brport_flags_s; + int err; if (!wops->port_attr_bridge_flags_set) return -EOPNOTSUPP; - if (switchdev_trans_ph_prepare(trans)) + if (switchdev_trans_ph_prepare(trans)) { + err = rocker_world_port_attr_bridge_flags_support_get(rocker_port, + &brport_flags_s); + if (err) + return err; + + if (brport_flags & ~brport_flags_s) + return -EOPNOTSUPP; return 0; + } return wops->port_attr_bridge_flags_set(rocker_port, brport_flags, trans); @@ -1593,20 +1617,6 @@ rocker_world_port_attr_bridge_flags_get(const struct rocker_port *rocker_port, return wops->port_attr_bridge_flags_get(rocker_port, p_brport_flags); } -static int -rocker_world_port_attr_bridge_flags_support_get(const struct rocker_port * - rocker_port, - unsigned long * - p_brport_flags_support) -{ - struct rocker_world_ops *wops = rocker_port->rocker->wops; - - if (!wops->port_attr_bridge_flags_support_get) - return -EOPNOTSUPP; - return wops->port_attr_bridge_flags_support_get(rocker_port, - p_brport_flags_support); -} - static int rocker_world_port_attr_bridge_ageing_time_set(struct rocker_port *rocker_port, u32 ageing_time, From patchwork Sat Feb 9 00:32:38 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 1039057 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=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="Uy0SlXix"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43xChf0fC2z9sBZ for ; Sat, 9 Feb 2019 11:33:38 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727140AbfBIAdg (ORCPT ); Fri, 8 Feb 2019 19:33:36 -0500 Received: from mail-pf1-f196.google.com ([209.85.210.196]:33697 "EHLO mail-pf1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726930AbfBIAdf (ORCPT ); Fri, 8 Feb 2019 19:33:35 -0500 Received: by mail-pf1-f196.google.com with SMTP id c123so2453618pfb.0; Fri, 08 Feb 2019 16:33:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=LbBXhe3YkkTyT7Tr9D7509SAnLlS8iTnmbaYese6GGQ=; b=Uy0SlXixSzeXW1dYz9yZnTMGZe3d+RWHPVE04Cr0FMGrgXFOuOFrC6lpuR239VLFP9 79Ji2CxoL/btfxkjmVuSaaglpEWYyLCHqE2zyecVm4KkLsdzoy4poJbWZP1TxThNHzkw TiM19BNzmULTgsm3qH7ZT+ID79TMPysVrJIrwlfkHW+huqRguWe0sIM8G/Ea7SqpPsPk YNQuvAhmgD8AEkqTlWqYtt2EH7DElYG0L0OPWA22MZyElhTF/eolEpaqXrFJAPZ/6z99 M0gXKxAg7hxnKBh1PRiWPuH+lvNxKdw7F+5YC5mIQqGELCUDbdKlSf8+a9zAuz5wzc/5 IQew== 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=LbBXhe3YkkTyT7Tr9D7509SAnLlS8iTnmbaYese6GGQ=; b=eCkinfczGvpfJvzEEQkMSjSAflFOh1vAdXNxhIOcQnuaLodrxZOQEGNNBAIgbiFocZ r+N50hawdQn/HOOWk90H1M26AHnk/L2xSreYYSpQjKy3ZKBtTY+6YGE1CZRG8zk+6diE Jo1dshJaZ7ntjNxyi3fIIMPJk3oAcd5if1rEFD5VuEYiBenF/1Ae2KUYUIre5zEB2nVl Rdz2cUKhETi6pWCULDk4lZGgtHOFgxkCW3UI5lIxi+uSkzm7IAPSf1WiGkpCa016pZbh a6dLpJazkVRUvPvP4uGo8se93C154TU1qFrOQdjMRtq6GvVhf2zSxX7TkO3uQgS4iklh MuAw== X-Gm-Message-State: AHQUAuZo0N/KdeXbjoQlOMtBj/ofCwlfw1qRCGp9qc7m3c9JlKLZelrd 5BbMcXbagKgQuud8gPvm0ooBUATA X-Google-Smtp-Source: AHgI3IYlxW+db6BZ0P28zI8qiH5UqsaIvDUB7G09CanTmfNGOIQSEi2AxPGScR+D48qINvo5ELfz4Q== X-Received: by 2002:a63:e545:: with SMTP id z5mr23317798pgj.195.1549672414229; Fri, 08 Feb 2019 16:33:34 -0800 (PST) Received: from fainelli-desktop.igp.broadcom.net ([192.19.223.250]) by smtp.gmail.com with ESMTPSA id i71sm372491pfi.170.2019.02.08.16.33.30 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 08 Feb 2019 16:33:33 -0800 (PST) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , "David S. Miller" , Ido Schimmel , linux-kernel@vger.kernel.org (open list), devel@driverdev.osuosl.org (open list:STAGING SUBSYSTEM), bridge@lists.linux-foundation.org (moderated list:ETHERNET BRIDGE), jiri@mellanox.com, andrew@lunn.ch, vivien.didelot@gmail.com Subject: [PATCH net-next 06/16] net: bridge: Stop calling switchdev_port_attr_get() Date: Fri, 8 Feb 2019 16:32:38 -0800 Message-Id: <20190209003248.31088-7-f.fainelli@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190209003248.31088-1-f.fainelli@gmail.com> References: <20190209003248.31088-1-f.fainelli@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Now that all switchdev drivers have been converted to checking the bridge port flags during the prepare phase of the switchdev_port_attr_set(), we can move straight to trying to set the desired flag through SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS. Signed-off-by: Florian Fainelli Acked-by: Jiri Pirko --- net/bridge/br_switchdev.c | 20 +++----------------- 1 file changed, 3 insertions(+), 17 deletions(-) diff --git a/net/bridge/br_switchdev.c b/net/bridge/br_switchdev.c index db9e8ab96d48..939f300522c5 100644 --- a/net/bridge/br_switchdev.c +++ b/net/bridge/br_switchdev.c @@ -64,29 +64,15 @@ int br_switchdev_set_port_flag(struct net_bridge_port *p, { struct switchdev_attr attr = { .orig_dev = p->dev, - .id = SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS_SUPPORT, + .id = SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS, + .flags = SWITCHDEV_F_DEFER, + .u.brport_flags = flags, }; int err; if (mask & ~BR_PORT_FLAGS_HW_OFFLOAD) return 0; - err = switchdev_port_attr_get(p->dev, &attr); - if (err == -EOPNOTSUPP) - return 0; - if (err) - return err; - - /* Check if specific bridge flag attribute offload is supported */ - if (!(attr.u.brport_flags_support & mask)) { - br_warn(p->br, "bridge flag offload is not supported %u(%s)\n", - (unsigned int)p->port_no, p->dev->name); - return -EOPNOTSUPP; - } - - attr.id = SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS; - attr.flags = SWITCHDEV_F_DEFER; - attr.u.brport_flags = flags; err = switchdev_port_attr_set(p->dev, &attr); if (err) { br_warn(p->br, "error setting offload flag on port %u(%s)\n", From patchwork Sat Feb 9 00:32:39 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 1039058 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=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="ZpcQTdMw"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43xChn4s1Mz9sMp for ; Sat, 9 Feb 2019 11:33:45 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727188AbfBIAdn (ORCPT ); Fri, 8 Feb 2019 19:33:43 -0500 Received: from mail-pf1-f193.google.com ([209.85.210.193]:40274 "EHLO mail-pf1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726930AbfBIAdk (ORCPT ); Fri, 8 Feb 2019 19:33:40 -0500 Received: by mail-pf1-f193.google.com with SMTP id i12so2431990pfo.7; Fri, 08 Feb 2019 16:33:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=prYinq/TbFxbdvZPlemTXRDAe8PcaKduMMjaHMi1Eg4=; b=ZpcQTdMwolO8iwUEhV9HLg4+ZkEdvB5mCC1eCKbR0wZ9ORmekGy+uhFC906uQMJjDT evo4/4FFAq1E3+i9kEVrO8Ic2p7q8q0WIC09ntX3J4uRHEVZCAqVt7cw+Y1jo354GNPn xJA18N1w74QccTVotVGaMFogQ7HQHxd2E3HDgX1ylUirnvaUpSe5ro4+BamJ+Y8MadBo vl5Boxionx2SY7SR0odOXmYCVlluN5ZJqPz4zN9yMFRrx7h/T/cgPTbTxYax0vt4EMpH G/N0CElkxVHmp2Z3KKG/dgk0xxDWiCi2eiR07WQgqjLZqZX85wxX0U373jriWbWJX34s 6fXA== 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=prYinq/TbFxbdvZPlemTXRDAe8PcaKduMMjaHMi1Eg4=; b=EI2ezNKZXHINHm5CcCC198Fs60Ly+ZvZxaXzzugsCkYBAHGWI2dvAwH5DSVGNnZUhE M5WWS2k7JegHyCAP+X//orZgueDCIwGqsF9pm6NIfpliFxWfohPgNGhjfUgsZktercGd pL7JmCe+xU2pE6/Ic/pO8X2u9B1pHF3PNpIdHIfW8wLrKQgq7jjt10R7tZXSdMqIFlN+ GjDrj1rufiA0jBgKWStLWnSL58/Grap/m0dElakGGQfm7+GPVdfspQzHxKRVjdpFYweQ Ox8iRQ8Q5oms1bw8Y2U4Dj39eevkz2te2FDEAmRjHGMulJsBndHVEh3qvz081h/i68KA LW1Q== X-Gm-Message-State: AHQUAuYuWvM4+R42Bt5W+J9vuj9lsKJZjAGzy4VbWm3M9Ur5vm40YhzR WV1ckMCYzVSGyC69NFJtgtQef506 X-Google-Smtp-Source: AHgI3IYBf/XLCVoXiNvoj/36NtaPERuN+htg4a3Af+kxd0FyZYEX7WbksZ05h/cZbRS6kugWoJBERg== X-Received: by 2002:a63:6bc1:: with SMTP id g184mr8023565pgc.25.1549672418550; Fri, 08 Feb 2019 16:33:38 -0800 (PST) Received: from fainelli-desktop.igp.broadcom.net ([192.19.223.250]) by smtp.gmail.com with ESMTPSA id i71sm372491pfi.170.2019.02.08.16.33.34 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 08 Feb 2019 16:33:37 -0800 (PST) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , "David S. Miller" , Ido Schimmel , linux-kernel@vger.kernel.org (open list), devel@driverdev.osuosl.org (open list:STAGING SUBSYSTEM), bridge@lists.linux-foundation.org (moderated list:ETHERNET BRIDGE), jiri@mellanox.com, andrew@lunn.ch, vivien.didelot@gmail.com Subject: [PATCH net-next 07/16] net: Remove SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS_SUPPORT Date: Fri, 8 Feb 2019 16:32:39 -0800 Message-Id: <20190209003248.31088-8-f.fainelli@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190209003248.31088-1-f.fainelli@gmail.com> References: <20190209003248.31088-1-f.fainelli@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Now that we have converted the bridge code and the drivers to check for bridge port(s) flags at the time we try to set them, there is no need for a get() -> set() sequence anymore and SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS_SUPPORT therefore becomes unused. Signed-off-by: Florian Fainelli Acked-by: Jiri Pirko --- .../net/ethernet/mellanox/mlxsw/spectrum_switchdev.c | 4 ---- drivers/net/ethernet/rocker/rocker_main.c | 4 ---- drivers/staging/fsl-dpaa2/ethsw/ethsw.c | 3 --- include/net/switchdev.h | 2 -- net/dsa/slave.c | 10 +--------- 5 files changed, 1 insertion(+), 22 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c index 468a6d513074..8242a373f6e7 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c @@ -455,10 +455,6 @@ static int mlxsw_sp_port_attr_get(struct net_device *dev, mlxsw_sp_port_bridge_flags_get(mlxsw_sp->bridge, attr->orig_dev, &attr->u.brport_flags); break; - case SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS_SUPPORT: - attr->u.brport_flags_support = BR_LEARNING | BR_FLOOD | - BR_MCAST_FLOOD; - break; default: return -EOPNOTSUPP; } diff --git a/drivers/net/ethernet/rocker/rocker_main.c b/drivers/net/ethernet/rocker/rocker_main.c index 8657313b6f30..375c4c908bea 100644 --- a/drivers/net/ethernet/rocker/rocker_main.c +++ b/drivers/net/ethernet/rocker/rocker_main.c @@ -2075,10 +2075,6 @@ static int rocker_port_attr_get(struct net_device *dev, err = rocker_world_port_attr_bridge_flags_get(rocker_port, &attr->u.brport_flags); break; - case SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS_SUPPORT: - err = rocker_world_port_attr_bridge_flags_support_get(rocker_port, - &attr->u.brport_flags_support); - break; default: return -EOPNOTSUPP; } diff --git a/drivers/staging/fsl-dpaa2/ethsw/ethsw.c b/drivers/staging/fsl-dpaa2/ethsw/ethsw.c index 6228c4375835..79635d1091df 100644 --- a/drivers/staging/fsl-dpaa2/ethsw/ethsw.c +++ b/drivers/staging/fsl-dpaa2/ethsw/ethsw.c @@ -651,9 +651,6 @@ static int swdev_port_attr_get(struct net_device *netdev, (port_priv->ethsw_data->learning ? BR_LEARNING : 0) | (port_priv->flood ? BR_FLOOD : 0); break; - case SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS_SUPPORT: - attr->u.brport_flags_support = BR_LEARNING | BR_FLOOD; - break; default: return -EOPNOTSUPP; } diff --git a/include/net/switchdev.h b/include/net/switchdev.h index 5e87b54c5dc5..e2083824e577 100644 --- a/include/net/switchdev.h +++ b/include/net/switchdev.h @@ -45,7 +45,6 @@ enum switchdev_attr_id { SWITCHDEV_ATTR_ID_UNDEFINED, SWITCHDEV_ATTR_ID_PORT_STP_STATE, SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS, - SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS_SUPPORT, SWITCHDEV_ATTR_ID_PORT_MROUTER, SWITCHDEV_ATTR_ID_BRIDGE_AGEING_TIME, SWITCHDEV_ATTR_ID_BRIDGE_VLAN_FILTERING, @@ -62,7 +61,6 @@ struct switchdev_attr { union { u8 stp_state; /* PORT_STP_STATE */ unsigned long brport_flags; /* PORT_BRIDGE_FLAGS */ - unsigned long brport_flags_support; /* PORT_BRIDGE_FLAGS_SUPPORT */ bool mrouter; /* PORT_MROUTER */ clock_t ageing_time; /* BRIDGE_AGEING_TIME */ bool vlan_filtering; /* BRIDGE_VLAN_FILTERING */ diff --git a/net/dsa/slave.c b/net/dsa/slave.c index 212fc1cc27fc..5797da954e77 100644 --- a/net/dsa/slave.c +++ b/net/dsa/slave.c @@ -382,15 +382,7 @@ static int dsa_slave_get_port_parent_id(struct net_device *dev, static int dsa_slave_port_attr_get(struct net_device *dev, struct switchdev_attr *attr) { - switch (attr->id) { - case SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS_SUPPORT: - attr->u.brport_flags_support = 0; - break; - default: - return -EOPNOTSUPP; - } - - return 0; + return -EOPNOTSUPP; } static inline netdev_tx_t dsa_slave_netpoll_send_skb(struct net_device *dev, From patchwork Sat Feb 9 00:32:40 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 1039059 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=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="TYDo2jeH"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43xChy2xDsz9sLw for ; Sat, 9 Feb 2019 11:33:54 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727218AbfBIAds (ORCPT ); Fri, 8 Feb 2019 19:33:48 -0500 Received: from mail-pf1-f194.google.com ([209.85.210.194]:37807 "EHLO mail-pf1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727190AbfBIAdp (ORCPT ); Fri, 8 Feb 2019 19:33:45 -0500 Received: by mail-pf1-f194.google.com with SMTP id y126so2445462pfb.4; Fri, 08 Feb 2019 16:33:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=/+Z3LNOvkFOIttWYCf4gKx3ujKryI+0e94YvGRWZSKY=; b=TYDo2jeHX+yjsycozx6+t0zax6dNkQz69q5xghUezzK53aBHXZ69UMnSlROkwzxuKW QzmJhvZLoXWgBHzQDtmd5fli1/amf3MEhNvX5tB8voL/wkywdBEZeKKXsTMml7bJGInW qSQBU8wffoVnGPy71AmXYh8fEb13IkIIl/Oyg9Yu8H/SFRSEkAiYNHjIvLquRw8frakx P/K7LNmTIypJ3hszi6+61bZXxgG3D/WjNKCTyufs82Td56nEQG73c92MCK+ewZeyrW5r Vyp5Lfcv0LRQ+CgFxYJpEx2nrj3tE9oIY+CY9E3Z5iW4rwJBUaAqSG6j/dXe7q/LlSG2 9KtA== 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=/+Z3LNOvkFOIttWYCf4gKx3ujKryI+0e94YvGRWZSKY=; b=NhdlOAQDPTmhDKktRMreS1BZ6eo2Y8a0vZ3wa26sWIMm7K6Vy8gAjN7FZDoN76Glde 1R3RbYynh55BqO5qc8+1pis6WDfgBV3s0vsCm7AdXGaNmlU0PoXVa/fBBuryeXRl/5m9 mMcQaafZX9GRnKMNJlniR80A37pYi4PO3xiv38CN+UUUNzGLEnCyCP6AOxmSvfd+AB4H 3Rp5SP7IytEB1M+vHAyHDRK4HOC7ip8rE5tT+qglGIRVf3NcIA7RAV4wsiUDBKymUQhK LreLG2xVtAgUg03kLxgJckvzeJDbbIKIP9yHABD3xKGy1anSCOS2Bioi2vTwA1lkewZd H5kg== X-Gm-Message-State: AHQUAuZciiFd5yk2r7xXKAROckJCUQvGveglVCBuCkPmPRSpA7mzRnOe omMf4i3usD/R72lCuhtK6AqI+ZT7 X-Google-Smtp-Source: AHgI3Iaue16qW9kxMIQi/th1hQL9OjG9fnC9tYDruErajhhRdNY4YU8x/zTP6CC3DcL35mqx96AgNA== X-Received: by 2002:a63:e950:: with SMTP id q16mr7337154pgj.138.1549672423166; Fri, 08 Feb 2019 16:33:43 -0800 (PST) Received: from fainelli-desktop.igp.broadcom.net ([192.19.223.250]) by smtp.gmail.com with ESMTPSA id i71sm372491pfi.170.2019.02.08.16.33.38 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 08 Feb 2019 16:33:42 -0800 (PST) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , "David S. Miller" , Ido Schimmel , linux-kernel@vger.kernel.org (open list), devel@driverdev.osuosl.org (open list:STAGING SUBSYSTEM), bridge@lists.linux-foundation.org (moderated list:ETHERNET BRIDGE), jiri@mellanox.com, andrew@lunn.ch, vivien.didelot@gmail.com Subject: [PATCH net-next 08/16] net: Get rid of switchdev_port_attr_get() Date: Fri, 8 Feb 2019 16:32:40 -0800 Message-Id: <20190209003248.31088-9-f.fainelli@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190209003248.31088-1-f.fainelli@gmail.com> References: <20190209003248.31088-1-f.fainelli@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org With the bridge no longer calling switchdev_port_attr_get() to obtain the supported bridge port flags from a driver but instead trying to set the bridge port flags directly and relying on driver to reject unsupported configurations, we can effectively get rid of switchdev_port_attr_get() entirely since this was the only place where it was called. Signed-off-by: Florian Fainelli Acked-by: Jiri Pirko --- Documentation/networking/switchdev.txt | 5 ++- .../mellanox/mlxsw/spectrum_switchdev.c | 32 ------------------- drivers/net/ethernet/rocker/rocker_main.c | 30 ----------------- drivers/staging/fsl-dpaa2/ethsw/ethsw.c | 19 ----------- include/net/switchdev.h | 8 ----- net/dsa/slave.c | 7 ---- 6 files changed, 2 insertions(+), 99 deletions(-) diff --git a/Documentation/networking/switchdev.txt b/Documentation/networking/switchdev.txt index 2842f63ad47b..0d9530bf745b 100644 --- a/Documentation/networking/switchdev.txt +++ b/Documentation/networking/switchdev.txt @@ -233,9 +233,8 @@ the bridge's FDB. It's possible, but not optimal, to enable learning on the device port and on the bridge port, and disable learning_sync. To support learning and learning_sync port attributes, the driver implements -switchdev op switchdev_port_attr_get/set for -SWITCHDEV_ATTR_PORT_ID_BRIDGE_FLAGS. The driver should initialize the attributes -to the hardware defaults. +switchdev op switchdev_port_attr_set for SWITCHDEV_ATTR_PORT_ID_BRIDGE_FLAGS. +The driver should initialize the attributes to the hardware defaults. FDB Ageing ^^^^^^^^^^ diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c index 8242a373f6e7..6b09d68671cf 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c @@ -431,37 +431,6 @@ static void mlxsw_sp_bridge_vlan_put(struct mlxsw_sp_bridge_vlan *bridge_vlan) mlxsw_sp_bridge_vlan_destroy(bridge_vlan); } -static void mlxsw_sp_port_bridge_flags_get(struct mlxsw_sp_bridge *bridge, - struct net_device *dev, - unsigned long *brport_flags) -{ - struct mlxsw_sp_bridge_port *bridge_port; - - bridge_port = mlxsw_sp_bridge_port_find(bridge, dev); - if (WARN_ON(!bridge_port)) - return; - - memcpy(brport_flags, &bridge_port->flags, sizeof(*brport_flags)); -} - -static int mlxsw_sp_port_attr_get(struct net_device *dev, - struct switchdev_attr *attr) -{ - struct mlxsw_sp_port *mlxsw_sp_port = netdev_priv(dev); - struct mlxsw_sp *mlxsw_sp = mlxsw_sp_port->mlxsw_sp; - - switch (attr->id) { - case SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS: - mlxsw_sp_port_bridge_flags_get(mlxsw_sp->bridge, attr->orig_dev, - &attr->u.brport_flags); - break; - default: - return -EOPNOTSUPP; - } - - return 0; -} - static int mlxsw_sp_port_bridge_vlan_stp_set(struct mlxsw_sp_port *mlxsw_sp_port, struct mlxsw_sp_bridge_vlan *bridge_vlan, @@ -1957,7 +1926,6 @@ static struct mlxsw_sp_port *mlxsw_sp_lag_rep_port(struct mlxsw_sp *mlxsw_sp, } static const struct switchdev_ops mlxsw_sp_port_switchdev_ops = { - .switchdev_port_attr_get = mlxsw_sp_port_attr_get, .switchdev_port_attr_set = mlxsw_sp_port_attr_set, }; diff --git a/drivers/net/ethernet/rocker/rocker_main.c b/drivers/net/ethernet/rocker/rocker_main.c index 375c4c908bea..ff3f14504f4f 100644 --- a/drivers/net/ethernet/rocker/rocker_main.c +++ b/drivers/net/ethernet/rocker/rocker_main.c @@ -1606,17 +1606,6 @@ rocker_world_port_attr_bridge_flags_set(struct rocker_port *rocker_port, trans); } -static int -rocker_world_port_attr_bridge_flags_get(const struct rocker_port *rocker_port, - unsigned long *p_brport_flags) -{ - struct rocker_world_ops *wops = rocker_port->rocker->wops; - - if (!wops->port_attr_bridge_flags_get) - return -EOPNOTSUPP; - return wops->port_attr_bridge_flags_get(rocker_port, p_brport_flags); -} - static int rocker_world_port_attr_bridge_ageing_time_set(struct rocker_port *rocker_port, u32 ageing_time, @@ -2064,24 +2053,6 @@ static const struct net_device_ops rocker_port_netdev_ops = { * swdev interface ********************/ -static int rocker_port_attr_get(struct net_device *dev, - struct switchdev_attr *attr) -{ - const struct rocker_port *rocker_port = netdev_priv(dev); - int err = 0; - - switch (attr->id) { - case SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS: - err = rocker_world_port_attr_bridge_flags_get(rocker_port, - &attr->u.brport_flags); - break; - default: - return -EOPNOTSUPP; - } - - return err; -} - static int rocker_port_attr_set(struct net_device *dev, const struct switchdev_attr *attr, struct switchdev_trans *trans) @@ -2154,7 +2125,6 @@ static int rocker_port_obj_del(struct net_device *dev, } static const struct switchdev_ops rocker_port_switchdev_ops = { - .switchdev_port_attr_get = rocker_port_attr_get, .switchdev_port_attr_set = rocker_port_attr_set, }; diff --git a/drivers/staging/fsl-dpaa2/ethsw/ethsw.c b/drivers/staging/fsl-dpaa2/ethsw/ethsw.c index 79635d1091df..b195b09e0d1d 100644 --- a/drivers/staging/fsl-dpaa2/ethsw/ethsw.c +++ b/drivers/staging/fsl-dpaa2/ethsw/ethsw.c @@ -640,24 +640,6 @@ static void ethsw_teardown_irqs(struct fsl_mc_device *sw_dev) fsl_mc_free_irqs(sw_dev); } -static int swdev_port_attr_get(struct net_device *netdev, - struct switchdev_attr *attr) -{ - struct ethsw_port_priv *port_priv = netdev_priv(netdev); - - switch (attr->id) { - case SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS: - attr->u.brport_flags = - (port_priv->ethsw_data->learning ? BR_LEARNING : 0) | - (port_priv->flood ? BR_FLOOD : 0); - break; - default: - return -EOPNOTSUPP; - } - - return 0; -} - static int port_attr_stp_state_set(struct net_device *netdev, struct switchdev_trans *trans, u8 state) @@ -933,7 +915,6 @@ static int swdev_port_obj_del(struct net_device *netdev, } static const struct switchdev_ops ethsw_port_switchdev_ops = { - .switchdev_port_attr_get = swdev_port_attr_get, .switchdev_port_attr_set = swdev_port_attr_set, }; diff --git a/include/net/switchdev.h b/include/net/switchdev.h index e2083824e577..96cd3e795f7f 100644 --- a/include/net/switchdev.h +++ b/include/net/switchdev.h @@ -178,8 +178,6 @@ switchdev_notifier_info_to_extack(const struct switchdev_notifier_info *info) #ifdef CONFIG_NET_SWITCHDEV void switchdev_deferred_process(void); -int switchdev_port_attr_get(struct net_device *dev, - struct switchdev_attr *attr); int switchdev_port_attr_set(struct net_device *dev, const struct switchdev_attr *attr); int switchdev_port_obj_add(struct net_device *dev, @@ -224,12 +222,6 @@ static inline void switchdev_deferred_process(void) { } -static inline int switchdev_port_attr_get(struct net_device *dev, - struct switchdev_attr *attr) -{ - return -EOPNOTSUPP; -} - static inline int switchdev_port_attr_set(struct net_device *dev, const struct switchdev_attr *attr) { diff --git a/net/dsa/slave.c b/net/dsa/slave.c index 5797da954e77..ae34be949d79 100644 --- a/net/dsa/slave.c +++ b/net/dsa/slave.c @@ -379,12 +379,6 @@ static int dsa_slave_get_port_parent_id(struct net_device *dev, return 0; } -static int dsa_slave_port_attr_get(struct net_device *dev, - struct switchdev_attr *attr) -{ - return -EOPNOTSUPP; -} - static inline netdev_tx_t dsa_slave_netpoll_send_skb(struct net_device *dev, struct sk_buff *skb) { @@ -1051,7 +1045,6 @@ static const struct net_device_ops dsa_slave_netdev_ops = { }; static const struct switchdev_ops dsa_slave_switchdev_ops = { - .switchdev_port_attr_get = dsa_slave_port_attr_get, .switchdev_port_attr_set = dsa_slave_port_attr_set, }; From patchwork Sat Feb 9 00:32:41 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 1039067 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=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="TH89cUZ8"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43xCkC1XcYz9sMp for ; Sat, 9 Feb 2019 11:34:59 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726896AbfBIAey (ORCPT ); Fri, 8 Feb 2019 19:34:54 -0500 Received: from mail-pl1-f195.google.com ([209.85.214.195]:41732 "EHLO mail-pl1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727206AbfBIAds (ORCPT ); Fri, 8 Feb 2019 19:33:48 -0500 Received: by mail-pl1-f195.google.com with SMTP id k15so2454778pls.8; Fri, 08 Feb 2019 16:33:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=JhDTjxL1DiADnRINxWwGqeDyEJSQNB5R03NAiQttvxw=; b=TH89cUZ81+yuazGUKZhe2pJ3nQu6GyAnfvwRidjVxgZsMcfaQ3rbfpoNVAVbqXL07l /n45ffeRhMs8AqJxqBqYhKI1ZYmq0h9kgM5FOmeLMZ8So+qXj6hUTegn3d2N2VvQhQbK BnsB4sAzaxWDRX+LAK/z/fD6YrCJuUG7nOkD5bC4dGwTuAftPMZipVufeFjd/Ohyn9Cf UCaII5KQ8k031GvIsg4/kKG10oBvhF54kh42IiFCZMwGpuhZ+r2+Rb3MZMAixWWkOOnp CQs+P1j9MTVummWS2mRJbNjiMbgN4er8xvKP4MF6YTBrBiRw5j8rEqUTKxIn1chfkL2V Q3OA== 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=JhDTjxL1DiADnRINxWwGqeDyEJSQNB5R03NAiQttvxw=; b=dp2Gcj8M93m/gBdSuUkmWQ6kVHgzaXbn1H+KoaQshETbT7KKzEp6Z9R414s+T2GkMN vI5afhSdm1P6UTF9EdaZq13hZ5TvcxKQ79PMyb4bmtufX/U2eJO6hrZryGET54dzLfjT 8JSlL9fDJoUcxLsRH1SKSstjEviXeUT3544akCZX9KbBoRqDw4EIud/ABrX9R+9+DF+l +lif3LII8Nz95bhhnwxKIFKNf6ZMOzV5ON2I8galLzkAp3dFJ6IIG9R4+wPKrsOQPuPU py9zbN/oGM53hSg+/l0u8DnnNPn0ZY8YCtfSNzqTCui9c4bMOJIeS2PfZVxysJk+P5+t 76XQ== X-Gm-Message-State: AHQUAua47So2sCPn7JMpi7YrWbsJOZvdAnBNlLzTnJH8FOXWbwE5YRyG SD2MRmb6CAnroRd3h6iOUfGre8g+ X-Google-Smtp-Source: AHgI3IbgtcPaxQrR7IRXwjbD5hp1P1nlyN60yyrJgb56PlEKa90H3Yi7+uQi6K88UnrahkGeEWQnlQ== X-Received: by 2002:a17:902:241:: with SMTP id 59mr25339500plc.72.1549672427617; Fri, 08 Feb 2019 16:33:47 -0800 (PST) Received: from fainelli-desktop.igp.broadcom.net ([192.19.223.250]) by smtp.gmail.com with ESMTPSA id i71sm372491pfi.170.2019.02.08.16.33.43 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 08 Feb 2019 16:33:46 -0800 (PST) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , "David S. Miller" , Ido Schimmel , linux-kernel@vger.kernel.org (open list), devel@driverdev.osuosl.org (open list:STAGING SUBSYSTEM), bridge@lists.linux-foundation.org (moderated list:ETHERNET BRIDGE), jiri@mellanox.com, andrew@lunn.ch, vivien.didelot@gmail.com Subject: [PATCH net-next 09/16] switchdev: Add SWITCHDEV_PORT_ATTR_SET Date: Fri, 8 Feb 2019 16:32:41 -0800 Message-Id: <20190209003248.31088-10-f.fainelli@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190209003248.31088-1-f.fainelli@gmail.com> References: <20190209003248.31088-1-f.fainelli@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org In preparation for allowing switchdev enabled drivers to veto specific attribute settings from within the context of the caller, introduce a new switchdev notifier type for port attributes. Suggested-by: Ido Schimmel Signed-off-by: Florian Fainelli Acked-by: Jiri Pirko --- include/net/switchdev.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/include/net/switchdev.h b/include/net/switchdev.h index 96cd3e795f7f..4c5f7e5430cf 100644 --- a/include/net/switchdev.h +++ b/include/net/switchdev.h @@ -141,6 +141,8 @@ enum switchdev_notifier_type { SWITCHDEV_VXLAN_FDB_ADD_TO_DEVICE, SWITCHDEV_VXLAN_FDB_DEL_TO_DEVICE, SWITCHDEV_VXLAN_FDB_OFFLOADED, + + SWITCHDEV_PORT_ATTR_SET, /* Blocking. */ }; struct switchdev_notifier_info { @@ -163,6 +165,13 @@ struct switchdev_notifier_port_obj_info { bool handled; }; +struct switchdev_notifier_port_attr_info { + struct switchdev_notifier_info info; /* must be first */ + const struct switchdev_attr *attr; + struct switchdev_trans *trans; + bool handled; +}; + static inline struct net_device * switchdev_notifier_info_to_dev(const struct switchdev_notifier_info *info) { From patchwork Sat Feb 9 00:32:42 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 1039060 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=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="klgiwKIW"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43xCj00yRbz9sBZ for ; Sat, 9 Feb 2019 11:33:56 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727250AbfBIAdy (ORCPT ); Fri, 8 Feb 2019 19:33:54 -0500 Received: from mail-pf1-f194.google.com ([209.85.210.194]:43109 "EHLO mail-pf1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727190AbfBIAdx (ORCPT ); Fri, 8 Feb 2019 19:33:53 -0500 Received: by mail-pf1-f194.google.com with SMTP id w73so2429983pfk.10; Fri, 08 Feb 2019 16:33:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=ozeBXy6nfKya+joDPY2gdugzbAN3jVvbagODiMNokh0=; b=klgiwKIWFHw1VM/2CKFY33/DFcmNInpNdmc7DDlEWfQoH0yq+9/TU0rydfVq6qDNwG hRupc095nNiXZzohGQu+r3fsthEfgtRMZvfqRbP/VKEscdORQ5uBpivVl6/mM4AVpqAE g9MD38L3tuFTprn43QSi9Golhc5mvpG72XX8ZleXgiIFFTwmABDsvonyrC7LpPyPfLw8 5T5NLP7oqdKjzNSkTUK/PEGghNQbB6kjRE9JXjQ5oxngbBnygfJUfLdrjAK2MsCoIzLT IVQHhRUCLobpsiRGZ11Bj4kIW1BkUTBM59bO/6GwcK/CZpw2D+Q0oc+9OECqmGS2VQEx T0tQ== 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=ozeBXy6nfKya+joDPY2gdugzbAN3jVvbagODiMNokh0=; b=lUTarOfhhqd9w3dV4lg4/zAqR/aBtEXJNyIgYUHS5u1GWxAXFoTmGcQCIU4NyWWzCP qwlFzmSkiZn/66tRr4XgTVYvJ4yc7nRTYPqM4RavNR+ajbKuZpUuJh3jD2y2sX35s1CJ 10o3ZtqglqwNj3k07VPk+9Sxzsls9XyUG+q8gZbc/uLj7Raxhdst0FAIbCRmlN2MFaIN WRx0VRqRmNzgD5sYZq4eQTdwVRbLYlK+fvX6bJGRMjOhSxAMC5SW7y0jz1tmr3RlXuyQ kwVxshpj1qkHugE3KXosFqpNITZ0XOrTAgf2kvJMhxTSSVUvk9Gg6HSFQpaxPUqWXFHj eLOw== X-Gm-Message-State: AHQUAuZccxk69Q9fjEHLWmI/LKn+u/PkvGpqNLhpUblPPKyFWE3g1pN8 lIZL22ESgaHuj5vmh2qYJqycNvqz X-Google-Smtp-Source: AHgI3IYadV7dfMHNzKu4EOPuU+ej4yEOnRAkVnqTsTAyjr/E56Jdcv0AXF4K59ON0VYYHTTKv4nffg== X-Received: by 2002:a63:6604:: with SMTP id a4mr23155030pgc.118.1549672432188; Fri, 08 Feb 2019 16:33:52 -0800 (PST) Received: from fainelli-desktop.igp.broadcom.net ([192.19.223.250]) by smtp.gmail.com with ESMTPSA id i71sm372491pfi.170.2019.02.08.16.33.47 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 08 Feb 2019 16:33:51 -0800 (PST) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , "David S. Miller" , Ido Schimmel , linux-kernel@vger.kernel.org (open list), devel@driverdev.osuosl.org (open list:STAGING SUBSYSTEM), bridge@lists.linux-foundation.org (moderated list:ETHERNET BRIDGE), jiri@mellanox.com, andrew@lunn.ch, vivien.didelot@gmail.com Subject: [PATCH net-next 10/16] rocker: Handle SWITCHDEV_PORT_ATTR_SET Date: Fri, 8 Feb 2019 16:32:42 -0800 Message-Id: <20190209003248.31088-11-f.fainelli@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190209003248.31088-1-f.fainelli@gmail.com> References: <20190209003248.31088-1-f.fainelli@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Following patches will change the way we communicate getting or setting a port's attribute and use a blocking notifier to perform those tasks. Prepare rocker to support receiving notifier events targeting SWITCHDEV_PORT_ATTR_SET and simply translate that into the existing rocker_port_attr_set call. Signed-off-by: Florian Fainelli --- drivers/net/ethernet/rocker/rocker_main.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/drivers/net/ethernet/rocker/rocker_main.c b/drivers/net/ethernet/rocker/rocker_main.c index ff3f14504f4f..f10e4888ecff 100644 --- a/drivers/net/ethernet/rocker/rocker_main.c +++ b/drivers/net/ethernet/rocker/rocker_main.c @@ -2811,6 +2811,24 @@ rocker_switchdev_port_obj_event(unsigned long event, struct net_device *netdev, return notifier_from_errno(err); } +static int +rocker_switchdev_port_attr_event(unsigned long event, struct net_device *netdev, + struct switchdev_notifier_port_attr_info + *port_attr_info) +{ + int err = -EOPNOTSUPP; + + switch (event) { + case SWITCHDEV_PORT_ATTR_SET: + err = rocker_port_attr_set(netdev, port_attr_info->attr, + port_attr_info->trans); + break; + } + + port_attr_info->handled = true; + return notifier_from_errno(err); +} + static int rocker_switchdev_blocking_event(struct notifier_block *unused, unsigned long event, void *ptr) { @@ -2823,6 +2841,8 @@ static int rocker_switchdev_blocking_event(struct notifier_block *unused, case SWITCHDEV_PORT_OBJ_ADD: case SWITCHDEV_PORT_OBJ_DEL: return rocker_switchdev_port_obj_event(event, dev, ptr); + case SWITCHDEV_PORT_ATTR_SET: + return rocker_switchdev_port_attr_event(event, dev, ptr); } return NOTIFY_DONE; From patchwork Sat Feb 9 00:32:43 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 1039061 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=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="Z3p0JEGJ"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43xCj51LCJz9sLw for ; Sat, 9 Feb 2019 11:34:01 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727273AbfBIAd7 (ORCPT ); Fri, 8 Feb 2019 19:33:59 -0500 Received: from mail-pf1-f193.google.com ([209.85.210.193]:34147 "EHLO mail-pf1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727190AbfBIAd6 (ORCPT ); Fri, 8 Feb 2019 19:33:58 -0500 Received: by mail-pf1-f193.google.com with SMTP id j18so2449560pfe.1; Fri, 08 Feb 2019 16:33:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=gC6qN8gW7l0/Xih4ramw9jRenVphqEEw7U5/9M1CtJo=; b=Z3p0JEGJ0tuQHURCXiZ/p8OP8gu/dORp5dMLVmKBAvRQdD0BBKtQ4ANFa23yEJ6snN 1F+4EdDVm+VdWMSzuQekgQASBRStCBbZIBkzvCNwyZcxWIOxU7QAsuvARpPlN69dAhaY GJtVBklZ9I4YJ9aomca0qQtgkTtlQ4KqvFAu+0HHQDaEOGiEPBbuhggtnpECezB8rqtK iOUBktk03PHLKMThdzU6sMM9/Mjg0jYWxPfA/rWhtRhT9m2F1ibpJxGQFwPHzZcXHyA5 ZpG+UjW2bnWM6Uzb9JN8KRuJ0oRXrsLWS7bEBD9WaO78739BRuGzxHaiyQ0HGldstZ8G OJ5g== 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=gC6qN8gW7l0/Xih4ramw9jRenVphqEEw7U5/9M1CtJo=; b=U4a96vE9bIC+ahKi57JATViFKqngrL8fvOHXC03qhTp6Z9ebKGyF0x09Yh69Ydnfec vvAkxPBc4FdMGmUKVevznMnwdJtAiTmPirM66fCfOEg5SVy97ETazoJMh9Ktmv7UAC05 AuhRhMxTd3sjVdq2YpKvYbh3+mm9hILf79Y3c+EwVMan1Gt0vGaAQbRXYQg+GhtGuQwd o+Y+7xT56WfR3A+2aIF35rDuzK0liUSQc6Rn4ivNcJQQc0S/gDSI9Mo5RdvyPBCLZDtL NIpNPB4yjB6IWsou60PC9Y85UlVcVKe7EMjcKt692vbgv7m57Cb+YPgIqQlBWoK+kAsN G7PA== X-Gm-Message-State: AHQUAuYHH9N12JVPmBfqwJCpFOT0Wy3/uKlHmBzEl1CnnPjKV08ol2YG vrjCsvXchlhm96Xp1XMqqdXYbnT+ X-Google-Smtp-Source: AHgI3Iahjnmv+YZ2sdiIuUGtSspGoNTWyHpVd0Lek6K7NRWyMTQ8u1QwKhuQdk7gywcHFVs7j9BACg== X-Received: by 2002:a62:9305:: with SMTP id b5mr24736803pfe.10.1549672436513; Fri, 08 Feb 2019 16:33:56 -0800 (PST) Received: from fainelli-desktop.igp.broadcom.net ([192.19.223.250]) by smtp.gmail.com with ESMTPSA id i71sm372491pfi.170.2019.02.08.16.33.52 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 08 Feb 2019 16:33:55 -0800 (PST) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , "David S. Miller" , Ido Schimmel , linux-kernel@vger.kernel.org (open list), devel@driverdev.osuosl.org (open list:STAGING SUBSYSTEM), bridge@lists.linux-foundation.org (moderated list:ETHERNET BRIDGE), jiri@mellanox.com, andrew@lunn.ch, vivien.didelot@gmail.com Subject: [PATCH net-next 11/16] net: dsa: Handle SWITCHDEV_PORT_ATTR_SET Date: Fri, 8 Feb 2019 16:32:43 -0800 Message-Id: <20190209003248.31088-12-f.fainelli@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190209003248.31088-1-f.fainelli@gmail.com> References: <20190209003248.31088-1-f.fainelli@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Following patches will change the way we communicate getting or setting a port's attribute and use a blocking notifier to perform those tasks. Prepare DSA to support receiving notifier events targeting SWITCHDEV_PORT_ATTR_SET and simply translate that into the existing dsa_slave_port_attr_set() call. Signed-off-by: Florian Fainelli --- net/dsa/slave.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/net/dsa/slave.c b/net/dsa/slave.c index ae34be949d79..f8c7c1b2cd2f 100644 --- a/net/dsa/slave.c +++ b/net/dsa/slave.c @@ -1544,6 +1544,24 @@ dsa_slave_switchdev_port_obj_event(unsigned long event, return notifier_from_errno(err); } +static int +dsa_slave_switchdev_port_attr_event(unsigned long event, + struct net_device *netdev, + struct switchdev_notifier_port_attr_info *port_attr_info) +{ + int err = -EOPNOTSUPP; + + switch (event) { + case SWITCHDEV_PORT_ATTR_SET: + err = dsa_slave_port_attr_set(netdev, port_attr_info->attr, + port_attr_info->trans); + break; + } + + port_attr_info->handled = true; + return notifier_from_errno(err); +} + static int dsa_slave_switchdev_blocking_event(struct notifier_block *unused, unsigned long event, void *ptr) { @@ -1556,6 +1574,8 @@ static int dsa_slave_switchdev_blocking_event(struct notifier_block *unused, case SWITCHDEV_PORT_OBJ_ADD: /* fall through */ case SWITCHDEV_PORT_OBJ_DEL: return dsa_slave_switchdev_port_obj_event(event, dev, ptr); + case SWITCHDEV_PORT_ATTR_SET: /* fallthrough */ + return dsa_slave_switchdev_port_attr_event(event, dev, ptr); } return NOTIFY_DONE; From patchwork Sat Feb 9 00:32:44 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 1039066 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=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="j3XHoISq"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43xCjw4nfcz9sBZ for ; Sat, 9 Feb 2019 11:34:44 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727309AbfBIAeE (ORCPT ); Fri, 8 Feb 2019 19:34:04 -0500 Received: from mail-pg1-f194.google.com ([209.85.215.194]:35124 "EHLO mail-pg1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727190AbfBIAeC (ORCPT ); Fri, 8 Feb 2019 19:34:02 -0500 Received: by mail-pg1-f194.google.com with SMTP id s198so2296866pgs.2; Fri, 08 Feb 2019 16:34:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=eXtacsKqxbHGP01d8QM1lxtn2gwNPrj6Brpw2m3z2EM=; b=j3XHoISqFdO3t+haAWRzw9Gv2cdGVpboT/bZ90rCPhgCETs075f/J2ywhMZi7xY8Am jR9+N9yZhNjBmcLkSHRNbZwrWao+/Wzz9sY/W+xp4hC3HsxQB1JGvqpahXm5a5I+agsH NC4Vj91sqhBRNPvDtwoOLI7Nza0Xn9piW+5DAblwHVt/laWar1zT49gV1m1iL05f4j/v wBWt7SYHZoe3hC0lvl9Ji0/lEYRiRfrKjKr8jXvz98iCM7yFlDRaT2ShbIBz7yFoTTg0 CTJkyoJ9i9WdcUL1kujHLXxbVzE1WpeQn3R8Hui312QGMyPUl+RON4VRztdsgYfSIYk4 7syw== 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=eXtacsKqxbHGP01d8QM1lxtn2gwNPrj6Brpw2m3z2EM=; b=KXSF2LzAqz1SUPeHouoKWsg9jVKET+/AJIKtRl1oKhS37G7cpYjmxxbyoIzEgvydAk zYfGVcXF62nYxsB8mjLu8DGRhJ275COeLwSjeP1L0GqMkR5nfCBANkWdzgpvPWL3yrO/ NDbGoFNiVLdkIIEE1FoMEoqosD/ccm0nNo8mP0OJFKmPHWQ4XV6/V2wM9xUSYK/HGmyh dYhji4TAhvFrOROfNjVOhS1nb+kQxMAtkJkQ1CSlltrOOXpxWxRV3t772PIUTjreGGcF Knfdux41PZz3mQ4CS5PwDAdOffQLWRihIhsmXYhZs3jN32Yu7CKejsl5CGQXGq8WI49a XN4w== X-Gm-Message-State: AHQUAuaP2tuB/tenPPqa3mDFQrK6M1nIFhPvg3bB2oYsnQeDxNz0MXCa tPBGkm6fmVpfXPs9nXt87mOhm6JY X-Google-Smtp-Source: AHgI3Ib1W0cwC2m7zyy3M/UEAsAs2LzfIH2EzwmJbwKD4F7tr8J3y7iwdCPKSH5LiJwPLCZZJJewUA== X-Received: by 2002:a63:3703:: with SMTP id e3mr7775718pga.348.1549672440985; Fri, 08 Feb 2019 16:34:00 -0800 (PST) Received: from fainelli-desktop.igp.broadcom.net ([192.19.223.250]) by smtp.gmail.com with ESMTPSA id i71sm372491pfi.170.2019.02.08.16.33.56 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 08 Feb 2019 16:34:00 -0800 (PST) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , "David S. Miller" , Ido Schimmel , linux-kernel@vger.kernel.org (open list), devel@driverdev.osuosl.org (open list:STAGING SUBSYSTEM), bridge@lists.linux-foundation.org (moderated list:ETHERNET BRIDGE), jiri@mellanox.com, andrew@lunn.ch, vivien.didelot@gmail.com Subject: [PATCH net-next 12/16] mlxsw: spectrum_switchdev: Handle SWITCHDEV_PORT_ATTR_SET Date: Fri, 8 Feb 2019 16:32:44 -0800 Message-Id: <20190209003248.31088-13-f.fainelli@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190209003248.31088-1-f.fainelli@gmail.com> References: <20190209003248.31088-1-f.fainelli@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Following patches will change the way we communicate getting or setting a port's attribute and use a blocking notifier to perform those tasks. Prepare mlxsw to support receiving notifier events targeting SWITCHDEV_PORT_ATTR_SET and simply translate that into the existing mlxsw_sp_port_attr_set() call. Signed-off-by: Florian Fainelli --- .../mellanox/mlxsw/spectrum_switchdev.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c index 6b09d68671cf..29ffb5cac777 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c @@ -3410,6 +3410,23 @@ mlxsw_sp_switchdev_handle_vxlan_obj_del(struct net_device *vxlan_dev, } } +static int +mlxsw_sp_switchdev_port_attr_event(unsigned long event, struct net_device *dev, + struct switchdev_notifier_port_attr_info *port_attr_info) +{ + int err = -EOPNOTSUPP; + + switch (event) { + case SWITCHDEV_PORT_ATTR_SET: + err = mlxsw_sp_port_attr_set(dev, port_attr_info->attr, + port_attr_info->trans); + break; + } + + port_attr_info->handled = true; + return notifier_from_errno(err); +} + static int mlxsw_sp_switchdev_blocking_event(struct notifier_block *unused, unsigned long event, void *ptr) { @@ -3433,6 +3450,8 @@ static int mlxsw_sp_switchdev_blocking_event(struct notifier_block *unused, mlxsw_sp_port_dev_check, mlxsw_sp_port_obj_del); return notifier_from_errno(err); + case SWITCHDEV_PORT_ATTR_SET: + return mlxsw_sp_switchdev_port_attr_event(event, dev, ptr); } return NOTIFY_DONE; From patchwork Sat Feb 9 00:32:45 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 1039062 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=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="vJVK4lxH"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43xCjJ1VpXz9sLw for ; Sat, 9 Feb 2019 11:34:12 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727337AbfBIAeH (ORCPT ); Fri, 8 Feb 2019 19:34:07 -0500 Received: from mail-pl1-f193.google.com ([209.85.214.193]:44061 "EHLO mail-pl1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727190AbfBIAeG (ORCPT ); Fri, 8 Feb 2019 19:34:06 -0500 Received: by mail-pl1-f193.google.com with SMTP id p4so2448569plq.11; Fri, 08 Feb 2019 16:34:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=MJWvt+TdfuA/uy8voeT4xQktPEVBZvrAuPqf9sc140s=; b=vJVK4lxH055RhItDTzBGcEY1DHlc7v3DXDJXqXJT9gPkVfk2izDo5OfUFtiKlAdIB5 u6dDWGr17KvVTEKljFxSJ7qW1Saf3w0h55czcl2X6aJHcM+OFNZSefebotHy5L0G8dN0 jgaXaVitMdYGBd5B0PCOs8aQUovCHmBOEjlbw8w6pPp0lVFr9VfwPZ5y9cMnu0+HkAsG OakPj3VrZyjWVw8+BDtFqL261TY7dcUfmGKlZRr9DAbDY7Z8sZ+CrbvTFeVptLVvPa2O UaN1KRS7UxcdZpGcvcSxhZ6ulWy4gcD/+E5afPM8qwLpplGGvXLMCVSHuatTS9EknBDw 9mQA== 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=MJWvt+TdfuA/uy8voeT4xQktPEVBZvrAuPqf9sc140s=; b=Z9cFxxgvA0cD9z/SnjFszxrWzmR8UJwKfHqzwuqFn0AxPRrcyduLA6wNkRtsG8ZhfI HeiDkOBHV8doJxhPPfm596n8ddHJGSybj0skagS68lE+bJMKd0yFwQ7Vhs25LxHTv/hw feaWmNg/brKTnOOun6c1a8yqjHUbIlu75KxzOfjs2IEKtaRuNe4Pr1XYpiIpEKWxsv5U sY/PeAztUvpiyCzzgadpRkfwXCz9iNKa2FW1jDclSCtNgtEvzHu7OJ+XCUapJ/k4XKlR oriipgtlIv1EURbjY2tY8W/jehGbx7LOoXkzLe7SWF+pEZE7eiKLUubCP+bNTECR3E3l B2WA== X-Gm-Message-State: AHQUAuakxApzcoipt2CZrV3TWtPW23HC3w0JAlLYi6rrFJHXJim/1kwt 6pQ37+eYD037IZQcm1RfrB8o3FUg X-Google-Smtp-Source: AHgI3IbgVMay9vmE+wWEoJ0l8wzomXALP6TVx1+JzULywsjC4wyBX+DTD9p3YH/kRFgyrQqz4R35EQ== X-Received: by 2002:a17:902:684:: with SMTP id 4mr25532083plh.3.1549672445415; Fri, 08 Feb 2019 16:34:05 -0800 (PST) Received: from fainelli-desktop.igp.broadcom.net ([192.19.223.250]) by smtp.gmail.com with ESMTPSA id i71sm372491pfi.170.2019.02.08.16.34.01 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 08 Feb 2019 16:34:04 -0800 (PST) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , "David S. Miller" , Ido Schimmel , linux-kernel@vger.kernel.org (open list), devel@driverdev.osuosl.org (open list:STAGING SUBSYSTEM), bridge@lists.linux-foundation.org (moderated list:ETHERNET BRIDGE), jiri@mellanox.com, andrew@lunn.ch, vivien.didelot@gmail.com Subject: [PATCH net-next 13/16] net: mscc: ocelot: Handle SWITCHDEV_PORT_ATTR_SET Date: Fri, 8 Feb 2019 16:32:45 -0800 Message-Id: <20190209003248.31088-14-f.fainelli@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190209003248.31088-1-f.fainelli@gmail.com> References: <20190209003248.31088-1-f.fainelli@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Following patches will change the way we communicate getting or setting a port's attribute and use a blocking notifier to perform those tasks. Prepare ocelot to support receiving notifier events targeting SWITCHDEV_PORT_ATTR_SET and simply translate that into the existing ocelot_port_attr_set() call. Signed-off-by: Florian Fainelli --- drivers/net/ethernet/mscc/ocelot.c | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/drivers/net/ethernet/mscc/ocelot.c b/drivers/net/ethernet/mscc/ocelot.c index 195306d05bcd..adab478d36f1 100644 --- a/drivers/net/ethernet/mscc/ocelot.c +++ b/drivers/net/ethernet/mscc/ocelot.c @@ -1324,10 +1324,6 @@ static int ocelot_port_obj_del(struct net_device *dev, return ret; } -static const struct switchdev_ops ocelot_port_switchdev_ops = { - .switchdev_port_attr_set = ocelot_port_attr_set, -}; - static int ocelot_port_bridge_join(struct ocelot_port *ocelot_port, struct net_device *bridge) { @@ -1582,6 +1578,24 @@ struct notifier_block ocelot_netdevice_nb __read_mostly = { }; EXPORT_SYMBOL(ocelot_netdevice_nb); +static int +ocelot_switchdev_port_attr_event(unsigned long event, + struct net_device *netdev, + struct switchdev_notifier_port_attr_info *port_attr_info) +{ + int err = -EOPNOTSUPP; + + switch (event) { + case SWITCHDEV_PORT_ATTR_SET: + err = ocelot_port_attr_set(netdev, port_attr_info->attr, + port_attr_info->trans); + break; + } + + port_attr_info->handled = true; + return notifier_from_errno(err); +} + static int ocelot_switchdev_blocking_event(struct notifier_block *unused, unsigned long event, void *ptr) { @@ -1600,6 +1614,8 @@ static int ocelot_switchdev_blocking_event(struct notifier_block *unused, ocelot_netdevice_dev_check, ocelot_port_obj_del); return notifier_from_errno(err); + case SWITCHDEV_PORT_ATTR_SET: + return ocelot_switchdev_port_attr_event(event, dev, ptr); } return NOTIFY_DONE; From patchwork Sat Feb 9 00:32:46 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 1039065 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=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="T47o4gfw"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43xCjr0dh3z9sMp for ; Sat, 9 Feb 2019 11:34:40 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727365AbfBIAeN (ORCPT ); Fri, 8 Feb 2019 19:34:13 -0500 Received: from mail-pg1-f194.google.com ([209.85.215.194]:35131 "EHLO mail-pg1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727190AbfBIAeK (ORCPT ); Fri, 8 Feb 2019 19:34:10 -0500 Received: by mail-pg1-f194.google.com with SMTP id s198so2296979pgs.2; Fri, 08 Feb 2019 16:34:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=c5Wza09lwagQfRnQV7Xn0kooRaDHeJGguwZMzzJI+6A=; b=T47o4gfwg/6+cC3OGgZ7LtlEjV6SktjRZlUDR9DmAVjrkX9zaFY1yOTuvAA7BVORGx aBKsevRgz2je8/aT1K3P9wOHq0640eIJvNcDoKOvv0WeEmpqvpiT6RYE33QHM/lGdDJq udOYQ10hL4J8DMJn88fkPwfvui3u8r43GAWeWBiT0do2gdTi1fuwm66ifkK01Yqjaihi PtyxXu+hWeuQAoI7bBhf+HE0vJduszEs8nUsKPj96xGBu8yGZT/Rqd/6TQS1UeL37IqH 2OsKpvUeUOecjaZlGOdkTR4F9DbgGPeFdh7gSE9hQbEDfGfw/6/UxlPECpdwCBy/xfpU izQw== 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=c5Wza09lwagQfRnQV7Xn0kooRaDHeJGguwZMzzJI+6A=; b=ROce92J5mVCy/SbibgHk+MH3v81qERR6v0dKUfh81mc0LG2GtphUxIASWbQ27UoF2Z ZcABTcwGZClUQ5qr6ogWPbbsAdZvnbyLxStSBN0nLazLiVyxiXHzII0J7bTDN17PBMLy L29+xgtmIKwVkZG7Juknmfk5o0b7EjmhkQopJknPc+j9MCmvQYtXWju9drAYQlO2L50K kYSmb9J7kZRsmh44Enp5Sn2ZE221NrnUHUPQyciELaJq6Dupz7cGT04TXhZGO9BWw7oR inH3gtDt1Kt9sFQxAalbpOabTungowdAVd5hBgjpy8AhXLQ5v4Kme5Vw0HsKLFnK+8n2 Egsg== X-Gm-Message-State: AHQUAubZuilLhO5UWRSHBSkxqbz/1+f59wnovUjyPIKsfnKlo8W8WB0D NzpL7HEE1AONyf0bKWBTIA8SqVF1 X-Google-Smtp-Source: AHgI3IYu9kbP/iRDE2jquF6iFQihlteqUQfFY1Jfr2Ea0NhdO/lvE2zPuuYFZ2QcGuvkdNdnNET9xQ== X-Received: by 2002:a62:5182:: with SMTP id f124mr15232899pfb.238.1549672449885; Fri, 08 Feb 2019 16:34:09 -0800 (PST) Received: from fainelli-desktop.igp.broadcom.net ([192.19.223.250]) by smtp.gmail.com with ESMTPSA id i71sm372491pfi.170.2019.02.08.16.34.05 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 08 Feb 2019 16:34:09 -0800 (PST) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , "David S. Miller" , Ido Schimmel , linux-kernel@vger.kernel.org (open list), devel@driverdev.osuosl.org (open list:STAGING SUBSYSTEM), bridge@lists.linux-foundation.org (moderated list:ETHERNET BRIDGE), jiri@mellanox.com, andrew@lunn.ch, vivien.didelot@gmail.com Subject: [PATCH net-next 14/16] staging: fsl-dpaa2: ethsw: Handle SWITCHDEV_PORT_ATTR_SET Date: Fri, 8 Feb 2019 16:32:46 -0800 Message-Id: <20190209003248.31088-15-f.fainelli@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190209003248.31088-1-f.fainelli@gmail.com> References: <20190209003248.31088-1-f.fainelli@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Following patches will change the way we communicate getting or setting a port's attribute and use a blocking notifier to perform those tasks. Prepare ethsw to support receiving notifier events targeting SWITCHDEV_PORT_ATTR_SET and simply translate that into the existing swdev_port_attr_set() call. Signed-off-by: Florian Fainelli --- drivers/staging/fsl-dpaa2/ethsw/ethsw.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/drivers/staging/fsl-dpaa2/ethsw/ethsw.c b/drivers/staging/fsl-dpaa2/ethsw/ethsw.c index b195b09e0d1d..d40bdcadd569 100644 --- a/drivers/staging/fsl-dpaa2/ethsw/ethsw.c +++ b/drivers/staging/fsl-dpaa2/ethsw/ethsw.c @@ -1092,6 +1092,24 @@ ethsw_switchdev_port_obj_event(unsigned long event, struct net_device *netdev, return notifier_from_errno(err); } +static int +ethsw_switchdev_port_attr_event(unsigned long event, + struct net_device *netdev, + struct switchdev_notifier_port_attr_info *port_attr_info) +{ + int err = -EOPNOTSUPP; + + switch (event) { + case SWITCHDEV_PORT_ATTR_SET: + err = swdev_port_attr_set(netdev, port_attr_info->attr, + port_attr_info->trans); + break; + } + + port_attr_info->handled = true; + return notifier_from_errno(err); +} + static int port_switchdev_blocking_event(struct notifier_block *unused, unsigned long event, void *ptr) { @@ -1104,6 +1122,8 @@ static int port_switchdev_blocking_event(struct notifier_block *unused, case SWITCHDEV_PORT_OBJ_ADD: /* fall through */ case SWITCHDEV_PORT_OBJ_DEL: return ethsw_switchdev_port_obj_event(event, dev, ptr); + case SWITCHDEV_PORT_ATTR_SET: + return ethsw_switchdev_port_attr_event(event, dev, ptr); } return NOTIFY_DONE; From patchwork Sat Feb 9 00:32:47 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 1039063 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=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="tEWF2cuS"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43xCjR46THz9sLw for ; Sat, 9 Feb 2019 11:34:19 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727393AbfBIAeS (ORCPT ); Fri, 8 Feb 2019 19:34:18 -0500 Received: from mail-pf1-f196.google.com ([209.85.210.196]:38348 "EHLO mail-pf1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727190AbfBIAeP (ORCPT ); Fri, 8 Feb 2019 19:34:15 -0500 Received: by mail-pf1-f196.google.com with SMTP id q1so2441147pfi.5; Fri, 08 Feb 2019 16:34:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=JXWongBRQ6HqJ5lydNBt8c+EIA0CX3r1EYUcWFECq4k=; b=tEWF2cuSfWGrJ8V1uZfIOfSI6/RErNXjQVxDOSR2NZFiDhmNy4yPN/mbtZ5euDRRKC 5Wr0crN6I0DpVGaN93VKfZ7wOkuh6CZSn+YJKF10k7QlWFaS+DLj/MJFug9ZT+M5AmRL p+8gdshS7nrLpqNii9qDenmjgyoiO3HfVP0hDXSFa6PUEN/2UR1YUsSdhA9yq6P0T9TE LeYZUwY8fCq9jSocyoCC2ftHCDSp2iyX34QL6H1njwp8mlaHn7iBQxV8DS3hv5B6SuAK BSrFIMhLHxdEqcBoDGc4WdJ3JuO5DC4MX8WnwD/cHxJW5NN7/D8or1W0rYsvcpq1EhCB wE5Q== 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=JXWongBRQ6HqJ5lydNBt8c+EIA0CX3r1EYUcWFECq4k=; b=moQiv8bIqBpC92FSd46NpAR/6xPa/+2QVqOLhBtCZiTZo5ByrFJAO/LqxZupGDoABX KKdTGqXEvBYxj0ynZJgh8Q8bOurq2Fn7BmiRQDYHxiPAFVWOmRKireoXDkaaWReFwokI TXqz9gANpElWmk80ObTLDXDUb8NIW+SnuJYn0tyReUpPi1xf6JSQ2p0LNGrkuLoSzt6O zxF9ZD0K4vLXBsPBMYtlAkWntT8VbvShFKTkdKaC5Np80b9fTldilLTp3A67UZZEDHUS bKTTVdg7d7/bvItY5GvVABDYneUUoAmUQYPbeeP0o/gocV0QB/2kFsLzucAQGHSR919a subg== X-Gm-Message-State: AHQUAuaEwLz8KGlNC6lg/ZFbyzKZebuj2Mv+H9vDHBUpWAaHr7E3QQlU O8HR0JDpkG6jd9212k3LFHu8uKQ3 X-Google-Smtp-Source: AHgI3IbQwON2MC4avhPKs44m5ThDGNNyt1QcSztP9rX4tFH1rJv0EcIvW96v8j4U/cluGN33zOZ7Rw== X-Received: by 2002:a65:64c8:: with SMTP id t8mr12687708pgv.31.1549672454456; Fri, 08 Feb 2019 16:34:14 -0800 (PST) Received: from fainelli-desktop.igp.broadcom.net ([192.19.223.250]) by smtp.gmail.com with ESMTPSA id i71sm372491pfi.170.2019.02.08.16.34.10 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 08 Feb 2019 16:34:13 -0800 (PST) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , "David S. Miller" , Ido Schimmel , linux-kernel@vger.kernel.org (open list), devel@driverdev.osuosl.org (open list:STAGING SUBSYSTEM), bridge@lists.linux-foundation.org (moderated list:ETHERNET BRIDGE), jiri@mellanox.com, andrew@lunn.ch, vivien.didelot@gmail.com Subject: [PATCH net-next 15/16] net: switchdev: Replace port attr set SDO with a notification Date: Fri, 8 Feb 2019 16:32:47 -0800 Message-Id: <20190209003248.31088-16-f.fainelli@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190209003248.31088-1-f.fainelli@gmail.com> References: <20190209003248.31088-1-f.fainelli@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Drop switchdev_ops.switchdev_port_attr_set. Drop the uses of this field from all clients, which were migrated to use switchdev notification in the previous patches. Add a new function switchdev_port_attr_notify() that sends the switchdev notifications SWITCHDEV_PORT_ATTR_SET. Drop __switchdev_port_attr_set() and update switchdev_port_attr_set() likewise. Signed-off-by: Florian Fainelli --- include/net/switchdev.h | 18 -------- net/switchdev/switchdev.c | 92 ++++++++++----------------------------- 2 files changed, 22 insertions(+), 88 deletions(-) diff --git a/include/net/switchdev.h b/include/net/switchdev.h index 4c5f7e5430cf..5387ff6f41c5 100644 --- a/include/net/switchdev.h +++ b/include/net/switchdev.h @@ -111,21 +111,6 @@ void *switchdev_trans_item_dequeue(struct switchdev_trans *trans); typedef int switchdev_obj_dump_cb_t(struct switchdev_obj *obj); -/** - * struct switchdev_ops - switchdev operations - * - * @switchdev_port_attr_get: Get a port attribute (see switchdev_attr). - * - * @switchdev_port_attr_set: Set a port attribute (see switchdev_attr). - */ -struct switchdev_ops { - int (*switchdev_port_attr_get)(struct net_device *dev, - struct switchdev_attr *attr); - int (*switchdev_port_attr_set)(struct net_device *dev, - const struct switchdev_attr *attr, - struct switchdev_trans *trans); -}; - enum switchdev_notifier_type { SWITCHDEV_FDB_ADD_TO_BRIDGE = 1, SWITCHDEV_FDB_DEL_TO_BRIDGE, @@ -224,7 +209,6 @@ int switchdev_handle_port_obj_del(struct net_device *dev, int (*del_cb)(struct net_device *dev, const struct switchdev_obj *obj)); -#define SWITCHDEV_SET_OPS(netdev, ops) ((netdev)->switchdev_ops = (ops)) #else static inline void switchdev_deferred_process(void) @@ -311,8 +295,6 @@ switchdev_handle_port_obj_del(struct net_device *dev, return 0; } -#define SWITCHDEV_SET_OPS(netdev, ops) do {} while (0) - #endif #endif /* _LINUX_SWITCHDEV_H_ */ diff --git a/net/switchdev/switchdev.c b/net/switchdev/switchdev.c index 7e1357db33d7..5a053e20363e 100644 --- a/net/switchdev/switchdev.c +++ b/net/switchdev/switchdev.c @@ -174,81 +174,31 @@ static int switchdev_deferred_enqueue(struct net_device *dev, return 0; } -/** - * switchdev_port_attr_get - Get port attribute - * - * @dev: port device - * @attr: attribute to get - */ -int switchdev_port_attr_get(struct net_device *dev, struct switchdev_attr *attr) +static int switchdev_port_attr_notify(enum switchdev_notifier_type nt, + struct net_device *dev, + struct switchdev_attr *attr, + struct switchdev_trans *trans) { - const struct switchdev_ops *ops = dev->switchdev_ops; - struct net_device *lower_dev; - struct list_head *iter; - struct switchdev_attr first = { - .id = SWITCHDEV_ATTR_ID_UNDEFINED - }; - int err = -EOPNOTSUPP; + int err; + int rc; - if (ops && ops->switchdev_port_attr_get) - return ops->switchdev_port_attr_get(dev, attr); + struct switchdev_notifier_port_attr_info attr_info = { + .attr = attr, + .trans = trans, + .handled = false, + }; - if (attr->flags & SWITCHDEV_F_NO_RECURSE) + rc = call_switchdev_blocking_notifiers(nt, dev, &attr_info.info, NULL); + err = notifier_to_errno(rc); + if (err) { + WARN_ON(!attr_info.handled); return err; - - /* Switch device port(s) may be stacked under - * bond/team/vlan dev, so recurse down to get attr on - * each port. Return -ENODATA if attr values don't - * compare across ports. - */ - - netdev_for_each_lower_dev(dev, lower_dev, iter) { - err = switchdev_port_attr_get(lower_dev, attr); - if (err) - break; - if (first.id == SWITCHDEV_ATTR_ID_UNDEFINED) - first = *attr; - else if (memcmp(&first, attr, sizeof(*attr))) - return -ENODATA; } - return err; -} -EXPORT_SYMBOL_GPL(switchdev_port_attr_get); - -static int __switchdev_port_attr_set(struct net_device *dev, - const struct switchdev_attr *attr, - struct switchdev_trans *trans) -{ - const struct switchdev_ops *ops = dev->switchdev_ops; - struct net_device *lower_dev; - struct list_head *iter; - int err = -EOPNOTSUPP; - - if (ops && ops->switchdev_port_attr_set) { - err = ops->switchdev_port_attr_set(dev, attr, trans); - goto done; - } - - if (attr->flags & SWITCHDEV_F_NO_RECURSE) - goto done; - - /* Switch device port(s) may be stacked under - * bond/team/vlan dev, so recurse down to set attr on - * each port. - */ - - netdev_for_each_lower_dev(dev, lower_dev, iter) { - err = __switchdev_port_attr_set(lower_dev, attr, trans); - if (err) - break; - } - -done: - if (err == -EOPNOTSUPP && attr->flags & SWITCHDEV_F_SKIP_EOPNOTSUPP) - err = 0; + if (!attr_info.handled) + return -EOPNOTSUPP; - return err; + return 0; } static int switchdev_port_attr_set_now(struct net_device *dev, @@ -267,7 +217,8 @@ static int switchdev_port_attr_set_now(struct net_device *dev, */ trans.ph_prepare = true; - err = __switchdev_port_attr_set(dev, attr, &trans); + err = switchdev_port_attr_notify(SWITCHDEV_PORT_ATTR_SET, dev, attr, + &trans); if (err) { /* Prepare phase failed: abort the transaction. Any * resources reserved in the prepare phase are @@ -286,7 +237,8 @@ static int switchdev_port_attr_set_now(struct net_device *dev, */ trans.ph_prepare = false; - err = __switchdev_port_attr_set(dev, attr, &trans); + err = switchdev_port_attr_notify(SWITCHDEV_PORT_ATTR_SET, dev, attr, + &trans); WARN(err, "%s: Commit of attribute (id=%d) failed.\n", dev->name, attr->id); switchdev_trans_items_warn_destroy(dev, &trans); From patchwork Sat Feb 9 00:32:48 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 1039064 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=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="PTj0/m6V"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43xCjW33Nnz9sLw for ; Sat, 9 Feb 2019 11:34:23 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727427AbfBIAeV (ORCPT ); Fri, 8 Feb 2019 19:34:21 -0500 Received: from mail-pg1-f196.google.com ([209.85.215.196]:35948 "EHLO mail-pg1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727413AbfBIAeU (ORCPT ); Fri, 8 Feb 2019 19:34:20 -0500 Received: by mail-pg1-f196.google.com with SMTP id n2so2298379pgm.3; Fri, 08 Feb 2019 16:34:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=Jcvo15u0uYbnQLDGETIYSVBEmRJ+aGxDuRD96vc8JAE=; b=PTj0/m6Vbg0p0qK2jGbSuIYVxdUfqW8PjDjYdZ+qwD18uILDHvzZSP88wOJfDFINsV 0HIIjEgEjgjEwkcZHERedpcvfttyxbFAerHgQIxEUjOIG9UzQPx1zByDezXlyzsaibcW eUzp/8EqvIlJJoWLkMs18tpvSPlq34R0JAImCY2/1BuuH/DHh2+EUQegR2/aUXJc2CLY sbhppCAvuLUz4+jitUSjjnzubuFqs8YmN6LNLgbqJK5EHKgTwoHn9ibjmxz8llG+c2EZ yBIpVvVUrNzKtSYNE8sMsUc0LDGhX569Dd7omn9u4Ps7Q1ZQyTgEqKJg/ShL3/jw9N6A LErQ== 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=Jcvo15u0uYbnQLDGETIYSVBEmRJ+aGxDuRD96vc8JAE=; b=nZK7xq7D33Q4JcYZSWr4eb9uD3Zvdz3KGllZB+oHyM4xX1TpwY0iKglKf6YKJN+4oP q43HmEXDUycGK8L7V18t0+BA0Oq8pQkcMJ9g3MhM3/6MW33t5ccjeNx2+/UWfUg1nqo2 AH/btllJJEjJqiTeYGO0nNdSym98eHFNf6QRgc98NJjruf5WUADBMP7cI7V4WSHN0wr5 7YSqFUan0d5in7EWg8AqfkIJ7opd3dT01mc0T5xfCY2V5YKo7CNbCxAhaFrY3/Xr5JaY u6NBPqXXJ6KWNviWNrKlaKOFAm8x1WQDeCPTpFPAhsQRHawHTwscuMPMiyA12ODODl8u BGXA== X-Gm-Message-State: AHQUAubTIuXxMVzjJdghq6WQRociJiPKtkHfHVeESNcKPwP1zO0onBGA rjeIfQtr0fMvTbMhhMoVojvIzKpF X-Google-Smtp-Source: AHgI3IY5FjEx8PT7yIdx3XPBactoSr18rVybbaLUGqKkWH72VQPmfDlZJnnAPfgSWxLhCe/Sw7TX6Q== X-Received: by 2002:a63:9751:: with SMTP id d17mr22378511pgo.392.1549672458999; Fri, 08 Feb 2019 16:34:18 -0800 (PST) Received: from fainelli-desktop.igp.broadcom.net ([192.19.223.250]) by smtp.gmail.com with ESMTPSA id i71sm372491pfi.170.2019.02.08.16.34.14 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 08 Feb 2019 16:34:18 -0800 (PST) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , "David S. Miller" , Ido Schimmel , linux-kernel@vger.kernel.org (open list), devel@driverdev.osuosl.org (open list:STAGING SUBSYSTEM), bridge@lists.linux-foundation.org (moderated list:ETHERNET BRIDGE), jiri@mellanox.com, andrew@lunn.ch, vivien.didelot@gmail.com Subject: [PATCH net-next 16/16] net: Remove switchdev_ops Date: Fri, 8 Feb 2019 16:32:48 -0800 Message-Id: <20190209003248.31088-17-f.fainelli@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190209003248.31088-1-f.fainelli@gmail.com> References: <20190209003248.31088-1-f.fainelli@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Now that we have converted all possible callers to using a switchdev notifier for attributes we do not have a need for implementing switchdev_ops anymore, and this can be removed from all drivers the net_device structure. Signed-off-by: Florian Fainelli --- drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 12 ------------ drivers/net/ethernet/mellanox/mlxsw/spectrum.h | 2 -- .../net/ethernet/mellanox/mlxsw/spectrum_switchdev.c | 12 ------------ drivers/net/ethernet/mscc/ocelot.c | 1 - drivers/net/ethernet/rocker/rocker_main.c | 5 ----- drivers/staging/fsl-dpaa2/ethsw/ethsw.c | 5 ----- include/linux/netdevice.h | 3 --- net/dsa/slave.c | 5 ----- 8 files changed, 45 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum.c index 8dd808b7f931..18b56afbd5d7 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum.c @@ -3220,7 +3220,6 @@ static int mlxsw_sp_port_create(struct mlxsw_sp *mlxsw_sp, u8 local_port, } mlxsw_sp_port->default_vlan = mlxsw_sp_port_vlan; - mlxsw_sp_port_switchdev_init(mlxsw_sp_port); mlxsw_sp->ports[local_port] = mlxsw_sp_port; err = register_netdev(dev); if (err) { @@ -3237,7 +3236,6 @@ static int mlxsw_sp_port_create(struct mlxsw_sp *mlxsw_sp, u8 local_port, err_register_netdev: mlxsw_sp->ports[local_port] = NULL; - mlxsw_sp_port_switchdev_fini(mlxsw_sp_port); mlxsw_sp_port_vlan_destroy(mlxsw_sp_port_vlan); err_port_vlan_create: err_port_pvid_set: @@ -3280,7 +3278,6 @@ static void mlxsw_sp_port_remove(struct mlxsw_sp *mlxsw_sp, u8 local_port) mlxsw_core_port_clear(mlxsw_sp->core, local_port, mlxsw_sp); unregister_netdev(mlxsw_sp_port->dev); /* This calls ndo_stop */ mlxsw_sp->ports[local_port] = NULL; - mlxsw_sp_port_switchdev_fini(mlxsw_sp_port); mlxsw_sp_port_vlan_flush(mlxsw_sp_port, true); mlxsw_sp_port_nve_fini(mlxsw_sp_port); mlxsw_sp_tc_qdisc_fini(mlxsw_sp_port); @@ -4001,12 +3998,6 @@ static int mlxsw_sp_init(struct mlxsw_core *mlxsw_core, goto err_span_init; } - err = mlxsw_sp_switchdev_init(mlxsw_sp); - if (err) { - dev_err(mlxsw_sp->bus_info->dev, "Failed to initialize switchdev\n"); - goto err_switchdev_init; - } - err = mlxsw_sp_counter_pool_init(mlxsw_sp); if (err) { dev_err(mlxsw_sp->bus_info->dev, "Failed to init counter pool\n"); @@ -4077,8 +4068,6 @@ static int mlxsw_sp_init(struct mlxsw_core *mlxsw_core, err_afa_init: mlxsw_sp_counter_pool_fini(mlxsw_sp); err_counter_pool_init: - mlxsw_sp_switchdev_fini(mlxsw_sp); -err_switchdev_init: mlxsw_sp_span_fini(mlxsw_sp); err_span_init: mlxsw_sp_lag_fini(mlxsw_sp); @@ -4141,7 +4130,6 @@ static void mlxsw_sp_fini(struct mlxsw_core *mlxsw_core) mlxsw_sp_nve_fini(mlxsw_sp); mlxsw_sp_afa_fini(mlxsw_sp); mlxsw_sp_counter_pool_fini(mlxsw_sp); - mlxsw_sp_switchdev_fini(mlxsw_sp); mlxsw_sp_span_fini(mlxsw_sp); mlxsw_sp_lag_fini(mlxsw_sp); mlxsw_sp_buffers_fini(mlxsw_sp); diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum.h b/drivers/net/ethernet/mellanox/mlxsw/spectrum.h index 4fe0996c7cdd..76f51087e35a 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum.h +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum.h @@ -375,8 +375,6 @@ u32 mlxsw_sp_bytes_cells(const struct mlxsw_sp *mlxsw_sp, u32 bytes); /* spectrum_switchdev.c */ int mlxsw_sp_switchdev_init(struct mlxsw_sp *mlxsw_sp); void mlxsw_sp_switchdev_fini(struct mlxsw_sp *mlxsw_sp); -void mlxsw_sp_port_switchdev_init(struct mlxsw_sp_port *mlxsw_sp_port); -void mlxsw_sp_port_switchdev_fini(struct mlxsw_sp_port *mlxsw_sp_port); int mlxsw_sp_rif_fdb_op(struct mlxsw_sp *mlxsw_sp, const char *mac, u16 fid, bool adding); void diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c index 29ffb5cac777..9951cfe0b244 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c @@ -1925,10 +1925,6 @@ static struct mlxsw_sp_port *mlxsw_sp_lag_rep_port(struct mlxsw_sp *mlxsw_sp, return NULL; } -static const struct switchdev_ops mlxsw_sp_port_switchdev_ops = { - .switchdev_port_attr_set = mlxsw_sp_port_attr_set, -}; - static int mlxsw_sp_bridge_8021q_port_join(struct mlxsw_sp_bridge_device *bridge_device, struct mlxsw_sp_bridge_port *bridge_port, @@ -3539,11 +3535,3 @@ void mlxsw_sp_switchdev_fini(struct mlxsw_sp *mlxsw_sp) kfree(mlxsw_sp->bridge); } -void mlxsw_sp_port_switchdev_init(struct mlxsw_sp_port *mlxsw_sp_port) -{ - mlxsw_sp_port->dev->switchdev_ops = &mlxsw_sp_port_switchdev_ops; -} - -void mlxsw_sp_port_switchdev_fini(struct mlxsw_sp_port *mlxsw_sp_port) -{ -} diff --git a/drivers/net/ethernet/mscc/ocelot.c b/drivers/net/ethernet/mscc/ocelot.c index adab478d36f1..b333965dd02f 100644 --- a/drivers/net/ethernet/mscc/ocelot.c +++ b/drivers/net/ethernet/mscc/ocelot.c @@ -1649,7 +1649,6 @@ int ocelot_probe_port(struct ocelot *ocelot, u8 port, dev->netdev_ops = &ocelot_port_netdev_ops; dev->ethtool_ops = &ocelot_ethtool_ops; - dev->switchdev_ops = &ocelot_port_switchdev_ops; dev->hw_features |= NETIF_F_HW_VLAN_CTAG_FILTER | NETIF_F_RXFCS; dev->features |= NETIF_F_HW_VLAN_CTAG_FILTER; diff --git a/drivers/net/ethernet/rocker/rocker_main.c b/drivers/net/ethernet/rocker/rocker_main.c index f10e4888ecff..6f70b48ce6ee 100644 --- a/drivers/net/ethernet/rocker/rocker_main.c +++ b/drivers/net/ethernet/rocker/rocker_main.c @@ -2124,10 +2124,6 @@ static int rocker_port_obj_del(struct net_device *dev, return err; } -static const struct switchdev_ops rocker_port_switchdev_ops = { - .switchdev_port_attr_set = rocker_port_attr_set, -}; - struct rocker_fib_event_work { struct work_struct work; union { @@ -2581,7 +2577,6 @@ static int rocker_probe_port(struct rocker *rocker, unsigned int port_number) rocker_port_dev_addr_init(rocker_port); dev->netdev_ops = &rocker_port_netdev_ops; dev->ethtool_ops = &rocker_port_ethtool_ops; - dev->switchdev_ops = &rocker_port_switchdev_ops; netif_tx_napi_add(dev, &rocker_port->napi_tx, rocker_port_poll_tx, NAPI_POLL_WEIGHT); netif_napi_add(dev, &rocker_port->napi_rx, rocker_port_poll_rx, diff --git a/drivers/staging/fsl-dpaa2/ethsw/ethsw.c b/drivers/staging/fsl-dpaa2/ethsw/ethsw.c index d40bdcadd569..5cc60e6ceafc 100644 --- a/drivers/staging/fsl-dpaa2/ethsw/ethsw.c +++ b/drivers/staging/fsl-dpaa2/ethsw/ethsw.c @@ -914,10 +914,6 @@ static int swdev_port_obj_del(struct net_device *netdev, return err; } -static const struct switchdev_ops ethsw_port_switchdev_ops = { - .switchdev_port_attr_set = swdev_port_attr_set, -}; - /* For the moment, only flood setting needs to be updated */ static int port_bridge_join(struct net_device *netdev, struct net_device *upper_dev) @@ -1443,7 +1439,6 @@ static int ethsw_probe_port(struct ethsw_core *ethsw, u16 port_idx) SET_NETDEV_DEV(port_netdev, dev); port_netdev->netdev_ops = ðsw_port_ops; port_netdev->ethtool_ops = ðsw_port_ethtool_ops; - port_netdev->switchdev_ops = ðsw_port_switchdev_ops; /* Set MTU limits */ port_netdev->min_mtu = ETH_MIN_MTU; diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index 1d95e634f3fe..6dc84bc43e52 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h @@ -1833,9 +1833,6 @@ struct net_device { #endif const struct net_device_ops *netdev_ops; const struct ethtool_ops *ethtool_ops; -#ifdef CONFIG_NET_SWITCHDEV - const struct switchdev_ops *switchdev_ops; -#endif #ifdef CONFIG_NET_L3_MASTER_DEV const struct l3mdev_ops *l3mdev_ops; #endif diff --git a/net/dsa/slave.c b/net/dsa/slave.c index f8c7c1b2cd2f..4178da259339 100644 --- a/net/dsa/slave.c +++ b/net/dsa/slave.c @@ -1044,10 +1044,6 @@ static const struct net_device_ops dsa_slave_netdev_ops = { .ndo_get_port_parent_id = dsa_slave_get_port_parent_id, }; -static const struct switchdev_ops dsa_slave_switchdev_ops = { - .switchdev_port_attr_set = dsa_slave_port_attr_set, -}; - static struct device_type dsa_type = { .name = "dsa", }; @@ -1307,7 +1303,6 @@ int dsa_slave_create(struct dsa_port *port) eth_hw_addr_inherit(slave_dev, master); slave_dev->priv_flags |= IFF_NO_QUEUE; slave_dev->netdev_ops = &dsa_slave_netdev_ops; - slave_dev->switchdev_ops = &dsa_slave_switchdev_ops; slave_dev->min_mtu = 0; slave_dev->max_mtu = ETH_MAX_MTU; SET_NETDEV_DEVTYPE(slave_dev, &dsa_type);