From patchwork Sun Feb 10 17:50:50 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 1039468 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="AVfJJ2Z3"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43yGlz1XdGz9s5c for ; Mon, 11 Feb 2019 04:55:11 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726177AbfBJRxT (ORCPT ); Sun, 10 Feb 2019 12:53:19 -0500 Received: from mail-ot1-f67.google.com ([209.85.210.67]:38876 "EHLO mail-ot1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725871AbfBJRxS (ORCPT ); Sun, 10 Feb 2019 12:53:18 -0500 Received: by mail-ot1-f67.google.com with SMTP id m1so2175901otf.5; Sun, 10 Feb 2019 09:53: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 :mime-version:content-transfer-encoding; bh=7L0xTa6HUjap5hvS5D6PfDYA/2qTJS8vMeAX54+U6P8=; b=AVfJJ2Z3BJxohhvaJosGHfmuHpolN4+mn5xeHpQxDwgH3+SrEUl98/yXAbSXa6HrrI 4JvrRQVv7UzDD9bz2MhL4WnF+YaOqQNAFun0jH3RrPQinnlWTyhDy86oazrKG/TLUpwN PwvUIgLrxVT4L4harlpMJVk2jgKcAEkmM/k+JkSvW1ESuJ6L/Bu3/L3JczIwvKGnEQhH ZXBhOpqk4zcQBJ6zfETqsl/Jt3lo8zzqiss7oc01+1xpY8Hzs9Y1U6ehGcw4SeVkgoKi 5TEuayykwBgMfDShRSR+BIdrNZV53/w5T++btSZtuRGJVQYGaxm3Qdm7MAQtLtBHY+tD Mp4A== 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:mime-version:content-transfer-encoding; bh=7L0xTa6HUjap5hvS5D6PfDYA/2qTJS8vMeAX54+U6P8=; b=PymcQOU53JKKcxslbKbEZm/k0k4fHA7JkfEUdjehENhTqxG8iIb2nfTV3KSfZrAgZ6 Yms0/APDoubN/hKteBGdE9stVpoCgjxJfxAJS0WnP1Ju8te518FwjQX5EzeZfJYScX2K GSuPf3lWWMWAOhev0OctKfBhC5GuSvK+NbDsMttO60RUzBfBNmSd+xfYCNCSxcWawXCb uNZtRm87cMWKPWd7yeJRqOj5FQJdZTD7ZT5fUeGYgIyBxxkYabBVdR4BhY6od0OeL89j XAXLaPpRu3CpgXO7L6d33djTY/CnzGKf0OP3GE0mXrRpRkIKHsA0AVKynXio6ErwnHb1 7lQA== X-Gm-Message-State: AHQUAuaPz7g1KFpVHCL/kdOybC5gCuHeuHautLU25EPKjs/veSN3NSmJ 8xVkyrjSoZYRzBcEFiUjwnO4AQdT X-Google-Smtp-Source: AHgI3Ib1A5lZZQ8e8yQ+YV5QbtehTyUkPyZ4hYHVIq/F2Eqg2s2apEjnRBiflVQripA0Mk+K9yQHAw== X-Received: by 2002:a9d:644b:: with SMTP id m11mr12312054otl.90.1549821196362; Sun, 10 Feb 2019 09:53:16 -0800 (PST) Received: from localhost.localdomain (ip68-228-73-187.oc.oc.cox.net. [68.228.73.187]) by smtp.gmail.com with ESMTPSA id n9sm3156425otq.14.2019.02.10.09.53.14 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 10 Feb 2019 09:53:15 -0800 (PST) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , idosch@mellanox.com, linux-kernel@vger.kernel.org, devel@driverdev.osuosl.org, bridge@lists.linux-foundation.org, jiri@mellanox.com, andrew@lunn.ch, vivien.didelot@gmail.com Subject: [PATCH net-next v2 01/16] Documentation: networking: switchdev: Update port parent ID section Date: Sun, 10 Feb 2019 09:50:50 -0800 Message-Id: <20190210175105.31629-2-f.fainelli@gmail.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190210175105.31629-1-f.fainelli@gmail.com> References: <20190210175105.31629-1-f.fainelli@gmail.com> MIME-Version: 1.0 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") Acked-by: Jiri Pirko Signed-off-by: Florian Fainelli --- 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..ea90243340a9 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 Sun Feb 10 17:50:51 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 1039467 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="eaBWKmWU"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43yGlt42w0z9sCh for ; Mon, 11 Feb 2019 04:55:06 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726530AbfBJRxU (ORCPT ); Sun, 10 Feb 2019 12:53:20 -0500 Received: from mail-ot1-f66.google.com ([209.85.210.66]:39976 "EHLO mail-ot1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726243AbfBJRxT (ORCPT ); Sun, 10 Feb 2019 12:53:19 -0500 Received: by mail-ot1-f66.google.com with SMTP id s5so13890070oth.7; Sun, 10 Feb 2019 09:53:19 -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 :mime-version:content-transfer-encoding; bh=zl/HyELvG6PMVqnH30RIyCX+2L6jJFk32RBdmwKy5nw=; b=eaBWKmWU5SyOKj+LbsSWwDOhrBiQ2cqf21r3RepMklKAjTufvG1hTlZfeWTOb+XEb9 X3Jld52sQ88uD4NfzVXXQg927esA5dZ4ZGove6VQSzRAaZVXQ+3zgJDgOqDGuw+Q1isR 7eeJuJVvz/PrZLTeBPORVmzp/DPE7CazevMkRMOQ0Mt4LAo0vqtkUB8O3MlhA1qE1ioM JRNTKtutzN6F8kGnf/6CkTaVsV4y3KzPexLCEx4ufXtH0EXO+IbB0AATN9/LViqr4EGq IChZbcSsDfr/DdjutvJ1IwbaAn7eah1SV6fdn25L3GCnv7GGyit1jPtzfb79dwrSeAHy Rr+g== 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:mime-version:content-transfer-encoding; bh=zl/HyELvG6PMVqnH30RIyCX+2L6jJFk32RBdmwKy5nw=; b=VZ9yoYaO/7dDKm5mQYw3leVNg7PCgorwhAKXN8UnBZ0ZgfoJ289awyPnIkcHayTbl6 KGxXPFZxgtgBx3ESo3YJKC1hbNoBseJ9IdhG+wBt2fZQwwr55MtXaRlA1lc1V0iJE1OK JqqlJ+JbLt9EtdsiC0e7q6BpTYVogAH5pQIkw/vk4Em6Z22TaYPu2yeUQCQU/ZagS28y omkE1LE9BGaHhue3MDodwcEUEdCkbXI2PDr+YvSQgrRjU+OvlgTHTVGh62e+gZDPdX3H hVW3udCaarQdTJaUMhbYAUjQu7Lda3y8EhoxC9WSDud8zQFHyZxF7XgfXjzXIZQxlUDM QUbw== X-Gm-Message-State: AHQUAuZfDrdRMT40gNdOxWQpbn4seqI9+IBjj7Z8dUt4W/D7Yi3pIBAB tJfQjOVLhypUoatHGu2mab3xV7jv X-Google-Smtp-Source: AHgI3IYaa3rxlAqDUJi2c/r4ohl+9myzYVyr2o5t7r/G0iAx2+nBrV5+uTosTYviuDhE7H7hmdy6Mg== X-Received: by 2002:a05:6830:1609:: with SMTP id g9mr10421755otr.254.1549821198322; Sun, 10 Feb 2019 09:53:18 -0800 (PST) Received: from localhost.localdomain (ip68-228-73-187.oc.oc.cox.net. [68.228.73.187]) by smtp.gmail.com with ESMTPSA id n9sm3156425otq.14.2019.02.10.09.53.16 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 10 Feb 2019 09:53:17 -0800 (PST) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , idosch@mellanox.com, linux-kernel@vger.kernel.org, devel@driverdev.osuosl.org, bridge@lists.linux-foundation.org, jiri@mellanox.com, andrew@lunn.ch, vivien.didelot@gmail.com Subject: [PATCH net-next v2 02/16] mlxsw: spectrum: Check bridge flags during prepare phase Date: Sun, 10 Feb 2019 09:50:51 -0800 Message-Id: <20190210175105.31629-3-f.fainelli@gmail.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190210175105.31629-1-f.fainelli@gmail.com> References: <20190210175105.31629-1-f.fainelli@gmail.com> MIME-Version: 1.0 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. Acked-by: Jiri Pirko Signed-off-by: Florian Fainelli --- 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 Sun Feb 10 17:50:52 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 1039453 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="AgYAp9no"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43yGk34gJtz9s5c for ; Mon, 11 Feb 2019 04:53:31 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726834AbfBJRxY (ORCPT ); Sun, 10 Feb 2019 12:53:24 -0500 Received: from mail-ot1-f66.google.com ([209.85.210.66]:42881 "EHLO mail-ot1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726655AbfBJRxV (ORCPT ); Sun, 10 Feb 2019 12:53:21 -0500 Received: by mail-ot1-f66.google.com with SMTP id i5so3375202oto.9; Sun, 10 Feb 2019 09:53: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 :mime-version:content-transfer-encoding; bh=exDgzfiqwA3z8lOpN/VUH5vzBnnYQ2SOMaSyGMBZROQ=; b=AgYAp9no8pvAvhahS4zyEYOHWK5zf+kFJSllL5DEUXl1fxLONkSRzYz4e30Z0xlMaV wfpgwhE5AK9LuE0/11ZRAf9Y6OKE81L+wgGo4AFfmqOj0rI+BZb9f3OzVoIB3niDuSt2 o0bDBjXzHFpV8o/TL2pSRAtMR3AEhGIgQpP4gGBAhRgbCWn+1rgjUOveU4h4thWPNwdn nwTcYvzt9ODORTlV3z+NiFi3b0YoicrVfb3x3OypO8bMLZH/aLlJ5fpNIWZN/s6JIu3f 1YlizvlIgdvTt/VlS23Q19yObJzYbQlySh3ioBHmdRXX+GiiDoY6ZBhyKdso13kyh7MK Uh1g== 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:mime-version:content-transfer-encoding; bh=exDgzfiqwA3z8lOpN/VUH5vzBnnYQ2SOMaSyGMBZROQ=; b=jOGIkELMj2gmY+VTZpUR/dxQrnJqC2lCUdJHqpfCXUoBj6J2KNCKNG+heEFAgSlB3M XPysvUWi8xamNf4YqEHZcxSED/9UG8WmQsPCwq/YqmH57PxJocoaY8Wou1jH6xpBzjxt U5AZBBQus0mgc5YMHHZ/EVtPNW83Yv5Eo9ZLpeoTzgf92siTbJYnKAbpExZROQz50Oww rnnIS1IhqGcUEkQVDMiS2g3dHiWgACPpSg5/NbczClCqThpZKpzhGvGZJKi7zpQcoeon p6t6PFelto1wH9EcGhlJ4DZ3TIeZf5dxoqkPnkRaOjySOrJfgS5lfwphxhx40l7QfYkI NUUA== X-Gm-Message-State: AHQUAubu+HcYY8doip8aS3k1pkUAAYKr5M2W+NVBX0NUtlbDXX0957UM uTAGzseFV/a/Qjd9YF++tDl28GsY X-Google-Smtp-Source: AHgI3IYm7SbIUjsZ36F7ZxrQxeWde1DXAqNlFCXVt5TvxN78tG4vLheiH5pwd2DnQLuU4KNAifvPvw== X-Received: by 2002:a9d:491e:: with SMTP id e30mr24798987otf.131.1549821200246; Sun, 10 Feb 2019 09:53:20 -0800 (PST) Received: from localhost.localdomain (ip68-228-73-187.oc.oc.cox.net. [68.228.73.187]) by smtp.gmail.com with ESMTPSA id n9sm3156425otq.14.2019.02.10.09.53.18 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 10 Feb 2019 09:53:19 -0800 (PST) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , idosch@mellanox.com, linux-kernel@vger.kernel.org, devel@driverdev.osuosl.org, bridge@lists.linux-foundation.org, jiri@mellanox.com, andrew@lunn.ch, vivien.didelot@gmail.com Subject: [PATCH net-next v2 03/16] staging: fsl-dpaa2: ethsw: Check bridge port flags during set Date: Sun, 10 Feb 2019 09:50:52 -0800 Message-Id: <20190210175105.31629-4-f.fainelli@gmail.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190210175105.31629-1-f.fainelli@gmail.com> References: <20190210175105.31629-1-f.fainelli@gmail.com> MIME-Version: 1.0 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. Acked-by: Jiri Pirko Signed-off-by: Florian Fainelli --- 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 Sun Feb 10 17:50:53 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 1039466 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="SFF8qviz"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43yGlp66VGz9sCh for ; Mon, 11 Feb 2019 04:55:02 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726941AbfBJRy6 (ORCPT ); Sun, 10 Feb 2019 12:54:58 -0500 Received: from mail-ot1-f65.google.com ([209.85.210.65]:37556 "EHLO mail-ot1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726243AbfBJRxX (ORCPT ); Sun, 10 Feb 2019 12:53:23 -0500 Received: by mail-ot1-f65.google.com with SMTP id s13so13923182otq.4; Sun, 10 Feb 2019 09:53:22 -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 :mime-version:content-transfer-encoding; bh=RoEf5Fd90q4JOx/RAzYyPMDHBqBYHJwO/D8F0sElp4M=; b=SFF8qviz4fxEwgKMc+kkg6W/Ia+3p6O64ML8ipA1mqvuZzVY1QeSYO1qYySPZluGzz cKFVdjChvoM9H+3lvVUbPYj8UDvkllQkzkL/uMG3zhNOiX5wNGKa6jMHFqMbNbPb6WrC iR2x2fwRPVf4QjfDlIgb5BY4dHf5W2K2vPFdR4wdqTeMW32mZXfmZUTxT2AgY2Jx3FDS OCEi7lc1ci3tovGBKrGaAyZQJZ+NDm9IVGVWHoP71apdXRIfUuIgldIDQ/7C6C/OjW9a r6h4+i+KTH6sUJG+OyfQOVCO2fBPqV9qbOPqvDPm4N43yarCJQoltXhp1zagIuEuc4AF CW+w== 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:mime-version:content-transfer-encoding; bh=RoEf5Fd90q4JOx/RAzYyPMDHBqBYHJwO/D8F0sElp4M=; b=Z8/S+S31M3ZOile5mTQvnLq+hHX0GLlErUdG/ZHOyGQGWDLc+Aqs2eIkFNVsn24+do 4r/VZp2NCw5WaT2vphT0pruI7XcTrfmcprx0elOhlskQaN9lq5VOcFvllN6BsT+7HQY8 y2RgI4AZZN/pO+WeJqY0AaHBvgHww3xhI5JGDahR6fTrPY+DTKsHD9mEsVBZUK9jrTQa TLmAjRibzx8mYCanTLHLGkCPzlMVSnbwpZC0SFiDAyXKH/xpm7vZAGgmdd0N/6Mpa0K8 sevl60KSkcJWCp1PsjP1bYklFtXeW8m5xj8YaQVQqXfhxcKuTajtoF1dl0UZGHTMRQzI lZzA== X-Gm-Message-State: AHQUAuZt7KirsDfVKCHsTApiO4Xa89p0Z2dJJyGEMFpo5h5m+Slt5ysA 3XTJbvxH8sTolJCw0/iu5qrB667A X-Google-Smtp-Source: AHgI3IZOrGfct9pQPDz+2R+05bWF3KG7PVKyUmwyseCUEfLQtQpiCBcCUn6DlQQ2wMBGBVtmZ9RHPQ== X-Received: by 2002:a9d:6419:: with SMTP id h25mr22238071otl.34.1549821202084; Sun, 10 Feb 2019 09:53:22 -0800 (PST) Received: from localhost.localdomain (ip68-228-73-187.oc.oc.cox.net. [68.228.73.187]) by smtp.gmail.com with ESMTPSA id n9sm3156425otq.14.2019.02.10.09.53.20 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 10 Feb 2019 09:53:21 -0800 (PST) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , idosch@mellanox.com, linux-kernel@vger.kernel.org, devel@driverdev.osuosl.org, bridge@lists.linux-foundation.org, jiri@mellanox.com, andrew@lunn.ch, vivien.didelot@gmail.com Subject: [PATCH net-next v2 04/16] net: dsa: Add setter for SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS Date: Sun, 10 Feb 2019 09:50:53 -0800 Message-Id: <20190210175105.31629-5-f.fainelli@gmail.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190210175105.31629-1-f.fainelli@gmail.com> References: <20190210175105.31629-1-f.fainelli@gmail.com> MIME-Version: 1.0 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). Acked-by: Jiri Pirko Signed-off-by: Florian Fainelli --- 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 2e5e7c04821b..9b499ba88aa7 100644 --- a/net/dsa/slave.c +++ b/net/dsa/slave.c @@ -295,6 +295,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 Sun Feb 10 17:50:55 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 1039465 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="NBK1CTtr"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43yGlY1qk0z9sCh for ; Mon, 11 Feb 2019 04:54:49 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727321AbfBJRyp (ORCPT ); Sun, 10 Feb 2019 12:54:45 -0500 Received: from mail-ot1-f68.google.com ([209.85.210.68]:44879 "EHLO mail-ot1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726906AbfBJRx1 (ORCPT ); Sun, 10 Feb 2019 12:53:27 -0500 Received: by mail-ot1-f68.google.com with SMTP id e24so13831747otp.11; Sun, 10 Feb 2019 09:53: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 :mime-version:content-transfer-encoding; bh=QA40rPEhuXPofIQU7vYAyGMcSK0VqfBQ5xwZGHv+dPM=; b=NBK1CTtryHR6sFv2CVIZlk/pkEccWfogqsWQT303Jbs4aAIm5Pnu88qp2UGAPOb7C0 w0VKUdp8uCjti8rbPCs+KRTQ2AzaqvCNMVAeYThwWoIF08Vcn6pw+PFYg8FPH2wbWBrb 3IRjUhCNV6nvqKMoTMwiIxcWcodqO3ikHY0CtS26nw0v1/WscuARB6huJV2vHGWp8Ga3 Z7KHdWUHkTY93tQU6FQjZ14FfBQ6LRu4+uSrj6L36dBtgsVRHXq6if5HVh9geFtVO13b RtRH5m/ZrXGdL13DyVbekIGsYnF3pRi1EMLK5KpRFf30Ysn6BOdKEYvZ1d5AR8TLx/XM cZgg== 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:mime-version:content-transfer-encoding; bh=QA40rPEhuXPofIQU7vYAyGMcSK0VqfBQ5xwZGHv+dPM=; b=WYya8lxyCx8O7YMXLm6Z7d4d3AAxDZjdhy3frTLgAsMYGM2rOIV4acunJksiwaZfDR /amreOdFvmWMLjkTeSVaZPLUI7apdnDbJDT7yKAishEBu/xDx8F1wQeMZ8k+TlBMSV7/ NdfyHrqj7wFt3ebxp8IRUQSWuosVolH5dnDCPFUEnr/JC3R34bA07MtvWS3KHsrJVA7S JU/rJHHPcfjp+3TSbvhNQJlxqsanayUn2vZ5SEdsHQ/yoi8z3by0e24+CNceLeYWm136 NZ8uB1pU+7iyRYHO/oQtcQsOGqRrXEGTB0/8yUq4Xkmdkk9PKHGxmTWywNbj3wxo/aKl g9Ow== X-Gm-Message-State: AHQUAua6p89ifQNrijIZ3GO6fHoAe1PYmyiTFoGBuARZ2tSCB9Lhf2bQ DZhd8zumg+n7sYZ5vXEVnbvOVEsL X-Google-Smtp-Source: AHgI3IY0foCL/qsHvtrQcEDw95JSNHYnE455k0ly5DQ/Lu+KdxP+jB6j68GQgVKbEEqx+Iegb1JYJg== X-Received: by 2002:a9d:2c46:: with SMTP id f64mr25001914otb.192.1549821205828; Sun, 10 Feb 2019 09:53:25 -0800 (PST) Received: from localhost.localdomain (ip68-228-73-187.oc.oc.cox.net. [68.228.73.187]) by smtp.gmail.com with ESMTPSA id n9sm3156425otq.14.2019.02.10.09.53.24 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 10 Feb 2019 09:53:25 -0800 (PST) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , idosch@mellanox.com, linux-kernel@vger.kernel.org, devel@driverdev.osuosl.org, bridge@lists.linux-foundation.org, jiri@mellanox.com, andrew@lunn.ch, vivien.didelot@gmail.com Subject: [PATCH net-next v2 06/16] net: bridge: Stop calling switchdev_port_attr_get() Date: Sun, 10 Feb 2019 09:50:55 -0800 Message-Id: <20190210175105.31629-7-f.fainelli@gmail.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190210175105.31629-1-f.fainelli@gmail.com> References: <20190210175105.31629-1-f.fainelli@gmail.com> MIME-Version: 1.0 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. Acked-by: Jiri Pirko Signed-off-by: Florian Fainelli --- 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 Sun Feb 10 17:50:56 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 1039464 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="P+11KNTm"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43yGlQ68Zwz9s5c for ; Mon, 11 Feb 2019 04:54:42 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727003AbfBJRxe (ORCPT ); Sun, 10 Feb 2019 12:53:34 -0500 Received: from mail-ot1-f67.google.com ([209.85.210.67]:39988 "EHLO mail-ot1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726943AbfBJRx3 (ORCPT ); Sun, 10 Feb 2019 12:53:29 -0500 Received: by mail-ot1-f67.google.com with SMTP id s5so13890375oth.7; Sun, 10 Feb 2019 09:53:28 -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 :mime-version:content-transfer-encoding; bh=eTCnNF6EGhkskPwVXdaxmOsTc+jRbd5uHwdDTwPkIvk=; b=P+11KNTmszO9F9LaVfeFCxVum+ebZA8/jAIhHH3WfBgn3D/YTPFGj+JxJsfBB1LN19 O9XtpatHSqiYOx08l87htOPQ8hTz4ypsv0UxxLW5sTq1xYQYlDBqrpaHl9nrkMvElky+ 2COeXQxDZhUfYkrJV0edxifK7bqEdNCkN61wZ6v3fIm4j9eyN8b7t51xiG7iYB7eLKmn VPtnjKpj9LSmuS3/B+0Wy9yURk3SdoNTCDmx/n7xanFUTPU2WlByfT1wCwlhEtl0cxtX 3YCSGOozGCRfuW0G6fKtTGLMoWKXqcJS0VgwYPmOMyg0Q/8F9ayhQrDRArpnDgg5Zj4t jf0A== 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:mime-version:content-transfer-encoding; bh=eTCnNF6EGhkskPwVXdaxmOsTc+jRbd5uHwdDTwPkIvk=; b=Eg1nC/Q9JwoaTj66a+2oerH1j/FYkWizKCO/HwWoiOYJe5329j9bEQ5cgljjXkCDMZ GvCV/fuIlCUdFgZH9Gl1+ta+4sX0vWMYhLU25C9s8zCKXbXPYd+ynL7n9prKi9WWDznA oVXD09xSlySnO7io4KYESR4kE8yI+QIgl/BZMIeELYTN2XAvtw03Wtnrpcq8XhufyAMc 9p9aTmHO3BmTOj3j9CrmiurXSHu8tcTSNBpx4avCI8SjHz7wI3jnq916wQiYoSgyUSzt 8jvl25fQb/Lf8qz+u5ZQ8mcHI8CVUi6GBkRNf96u+m/stDlsXZWsctb+5e3wq1+76nhl 0RoQ== X-Gm-Message-State: AHQUAuafIcQbYjukAhan+KHIhtj4v84A7gmyl/QVGep2fw7s5/ZblON6 2spsMG7i+hggeOxW/gntSvhKlaiZ X-Google-Smtp-Source: AHgI3IbfMjAQarkw4x08MBkiCV2SiLDG5iDslovpQCuQp+GDIXKAcId6zDMHDRRUHRQURLZYICYwYA== X-Received: by 2002:a9d:7482:: with SMTP id t2mr3453170otk.180.1549821207803; Sun, 10 Feb 2019 09:53:27 -0800 (PST) Received: from localhost.localdomain (ip68-228-73-187.oc.oc.cox.net. [68.228.73.187]) by smtp.gmail.com with ESMTPSA id n9sm3156425otq.14.2019.02.10.09.53.25 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 10 Feb 2019 09:53:27 -0800 (PST) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , idosch@mellanox.com, linux-kernel@vger.kernel.org, devel@driverdev.osuosl.org, bridge@lists.linux-foundation.org, jiri@mellanox.com, andrew@lunn.ch, vivien.didelot@gmail.com Subject: [PATCH net-next v2 07/16] net: Remove SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS_SUPPORT Date: Sun, 10 Feb 2019 09:50:56 -0800 Message-Id: <20190210175105.31629-8-f.fainelli@gmail.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190210175105.31629-1-f.fainelli@gmail.com> References: <20190210175105.31629-1-f.fainelli@gmail.com> MIME-Version: 1.0 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. Acked-by: Jiri Pirko Signed-off-by: Florian Fainelli --- .../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 9b499ba88aa7..7b33be6f1954 100644 --- a/net/dsa/slave.c +++ b/net/dsa/slave.c @@ -385,15 +385,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 Sun Feb 10 17:50:57 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 1039462 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="inq7s76h"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43yGlF6W41z9sCh for ; Mon, 11 Feb 2019 04:54:33 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727021AbfBJRxf (ORCPT ); Sun, 10 Feb 2019 12:53:35 -0500 Received: from mail-ot1-f68.google.com ([209.85.210.68]:36451 "EHLO mail-ot1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726975AbfBJRxb (ORCPT ); Sun, 10 Feb 2019 12:53:31 -0500 Received: by mail-ot1-f68.google.com with SMTP id k98so13934198otk.3; Sun, 10 Feb 2019 09:53: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 :mime-version:content-transfer-encoding; bh=bDLwzZYTke7J4+Ms6YdobffRPZitEEVhuCSfGIatE34=; b=inq7s76hipaZ2SVZuEpfHYQbdYYGKaQLgwlW0/hM8jbPVAFPC1YYJJeBOzYF894nJh bZ6FECDD7AGFF5IXIN4nNe/zkR+wLs30zF7/ldrU9DUe3v4cbN/zh0pdfPwRwqUqjiC7 UOGsmiTTgjvbswrZbuNKno6/NjfAfs0i+vygsuh++JyGMBpwsDdk0TgKOtNgX8J203FQ 8qWPeRDRuoDlzPL2NQjbvndVv8Yras2MOCIlcJ2IUL+KajV7CZT8kZJf0/zDtBbHm8Xf aURM+mp7Uzj33HfShKSSCYDtwCTxBfgTYMLF7hjFYRuqyRm5k9304vE3jFsQAF00+s6M Tqlg== 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:mime-version:content-transfer-encoding; bh=bDLwzZYTke7J4+Ms6YdobffRPZitEEVhuCSfGIatE34=; b=trKrQp6WANNeHpxvVsY+ZCRMcGTYdtyOvlReHp34wEcXUt14TLLyKhcgxJ15ZwnrLH ZvOm/+FBDVoDVw9sfMiT0wOreua6P9LeSPFVzgpJTdet0+NOg5hRuuS+x0KPv2Muh8mr Kb23e+Z3O8TnINgtOhXSIO9l2Ho8C5a1usTQ0BHuMcpyC2eopO5GknT58YHvf/EpOS7p iwVEB1tkURbb/ZTzc2j6daUTX5PxJWanizLgj1EFL4t0CWWzfPTXap0xKPlWJhx9uGm4 IXsNlkFpTRmiUEo1E0cKGQWC1vN74i2CwYY0pTZ5jZbNWDSSoELlgKJ9iwuDwq8KH1VN P2wA== X-Gm-Message-State: AHQUAuZYHeYR74+LEh62qj8S6201/d6QSulqn7RTmo519zmOhIWlsaW3 F5ztDHd0XTANY0PPQW8OU9IdKzBU X-Google-Smtp-Source: AHgI3Iak9dRJ702t9kOw9Hrq4u7t8VXuY7tT3knPKXMHOxeThC2H7fElrI6Z09W6gaOBN7nYZE0IhQ== X-Received: by 2002:a9d:630f:: with SMTP id q15mr22820213otk.187.1549821209744; Sun, 10 Feb 2019 09:53:29 -0800 (PST) Received: from localhost.localdomain (ip68-228-73-187.oc.oc.cox.net. [68.228.73.187]) by smtp.gmail.com with ESMTPSA id n9sm3156425otq.14.2019.02.10.09.53.27 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 10 Feb 2019 09:53:28 -0800 (PST) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , idosch@mellanox.com, linux-kernel@vger.kernel.org, devel@driverdev.osuosl.org, bridge@lists.linux-foundation.org, jiri@mellanox.com, andrew@lunn.ch, vivien.didelot@gmail.com Subject: [PATCH net-next v2 08/16] net: Get rid of switchdev_port_attr_get() Date: Sun, 10 Feb 2019 09:50:57 -0800 Message-Id: <20190210175105.31629-9-f.fainelli@gmail.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190210175105.31629-1-f.fainelli@gmail.com> References: <20190210175105.31629-1-f.fainelli@gmail.com> MIME-Version: 1.0 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. Acked-by: Jiri Pirko Signed-off-by: Florian Fainelli --- 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 ea90243340a9..327afe754230 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 7b33be6f1954..d8eb33979368 100644 --- a/net/dsa/slave.c +++ b/net/dsa/slave.c @@ -382,12 +382,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) { @@ -1054,7 +1048,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 Sun Feb 10 17:50:58 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 1039461 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="CNJJyBLB"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43yGlB2byCz9s5c for ; Mon, 11 Feb 2019 04:54:30 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727041AbfBJRxf (ORCPT ); Sun, 10 Feb 2019 12:53:35 -0500 Received: from mail-ot1-f67.google.com ([209.85.210.67]:36452 "EHLO mail-ot1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726858AbfBJRxd (ORCPT ); Sun, 10 Feb 2019 12:53:33 -0500 Received: by mail-ot1-f67.google.com with SMTP id k98so13934243otk.3; Sun, 10 Feb 2019 09:53:32 -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 :mime-version:content-transfer-encoding; bh=81DjCgz+iyCtT5UWtxC0sunQeOYy1ppR2RSyv4AVzCg=; b=CNJJyBLB2tLVddFJ2LsHHczCUzrZYJe/u6ZVOeym6EOWO1QRjP5hyihNVBivQ1uhSR 8knwLaI67D+lt3XKeg5r/JTvmLzUPf/u9RFutmQbgYG4YU3QqO1vNA752Oh0GAy1Ye+v eiuSrpkdK66kPRe4DfZYKrnWjthWxulQ4/hehAQZpQgKBaFgHXoA30cd2ohrJ8GxhOYo TzM0gAjPOwO/CROxdjsxhsJ1fimeWoQunp0Flkbl3kdSYDfhzVsZkiQ1uJbVm2t6HpIs gikhmHG5EIRAhiBpkAoFGtptYr/sXsSxlL+6RjRUSYKD+lUNW4srNIECQIND8JNFSoNo Uu4A== 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:mime-version:content-transfer-encoding; bh=81DjCgz+iyCtT5UWtxC0sunQeOYy1ppR2RSyv4AVzCg=; b=dBoRJIgK59DXL7baaITU/jwhgdnaFY7VvgQ5ubVG+emoYGu1Nmwtq4QG8kQ+87T8xR /VS+o5NJnP5FvVkRIDJcOzzDhbOCr4ep+4KHoHywsY7Tay5Sng3WSHSL/6B0h1DY9hIp T5bevipdZgy1EEwJHWoaxNv0p5TAT0weFlCncD4P8RNhwUA/vIz+z4wcACkUTJZp6N8Q U/BEVE6vqRaNVm17bfimFnhnHVm+RP+FxM+J1ntXf6jmRPA5CWjlhNoYC/bpD8Crgzf1 PTNncaCcItjfqspFPGwED1CiTzv8vNHmMYnJM3f3It7qyHSwrve+makHVaVYX6lSFR5j BqVA== X-Gm-Message-State: AHQUAuZdogtFcL45JujMXicvivaHcHIu9S9dgNLdsHd+gx8NkloJscpp os9VhqhXeIEbvH+uAQIYAyxWOxeH X-Google-Smtp-Source: AHgI3IZUL6jmhc8slPtrF6LepLmL3NLmXatG4Q8O4c2Im2NzEN9BBoNrUtYbnj9jY0h0tzuRJoWUhg== X-Received: by 2002:a9d:6a:: with SMTP id 97mr8181051ota.313.1549821211584; Sun, 10 Feb 2019 09:53:31 -0800 (PST) Received: from localhost.localdomain (ip68-228-73-187.oc.oc.cox.net. [68.228.73.187]) by smtp.gmail.com with ESMTPSA id n9sm3156425otq.14.2019.02.10.09.53.29 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 10 Feb 2019 09:53:30 -0800 (PST) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , idosch@mellanox.com, linux-kernel@vger.kernel.org, devel@driverdev.osuosl.org, bridge@lists.linux-foundation.org, jiri@mellanox.com, andrew@lunn.ch, vivien.didelot@gmail.com Subject: [PATCH net-next v2 09/16] switchdev: Add SWITCHDEV_PORT_ATTR_SET Date: Sun, 10 Feb 2019 09:50:58 -0800 Message-Id: <20190210175105.31629-10-f.fainelli@gmail.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190210175105.31629-1-f.fainelli@gmail.com> References: <20190210175105.31629-1-f.fainelli@gmail.com> MIME-Version: 1.0 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 Acked-by: Jiri Pirko Signed-off-by: Florian Fainelli --- include/net/switchdev.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/include/net/switchdev.h b/include/net/switchdev.h index 96cd3e795f7f..7bc6a004d32a 100644 --- a/include/net/switchdev.h +++ b/include/net/switchdev.h @@ -135,6 +135,7 @@ enum switchdev_notifier_type { SWITCHDEV_PORT_OBJ_ADD, /* Blocking. */ SWITCHDEV_PORT_OBJ_DEL, /* Blocking. */ + SWITCHDEV_PORT_ATTR_SET, /* Blocking. */ SWITCHDEV_VXLAN_FDB_ADD_TO_BRIDGE, SWITCHDEV_VXLAN_FDB_DEL_TO_BRIDGE, @@ -163,6 +164,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 Sun Feb 10 17:50:59 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 1039463 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="tOXyWENM"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43yGlP0D8rz9sCh for ; Mon, 11 Feb 2019 04:54:41 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727305AbfBJRyf (ORCPT ); Sun, 10 Feb 2019 12:54:35 -0500 Received: from mail-ot1-f67.google.com ([209.85.210.67]:36455 "EHLO mail-ot1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726994AbfBJRxe (ORCPT ); Sun, 10 Feb 2019 12:53:34 -0500 Received: by mail-ot1-f67.google.com with SMTP id k98so13934315otk.3; Sun, 10 Feb 2019 09:53:34 -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 :mime-version:content-transfer-encoding; bh=mdbv4CO8BhE6pqFGehWefPsAVhnmG6B4RY3j765Q16s=; b=tOXyWENMOp400xQqmuZyKf+MB3GpNHvhdbkFAX2zGy4g8bh0TWEkIYy3T+nkt8jao/ l8+ofIUKfYYEj73BxcyeIyR5dMsKLnnROi1QwRsEEy3HcCQU57ijZVl1IriMc7Wfc3mo FPEXAgRxJz3mQdvfa02ChFSxRnroK7aM8g3c7qMQ0XfNUsGlkwaOdLKYzNUhYoy4E5at qiJrc4j3eY7kdTrfK9ZjGMiAUUai9Etg7aA5PBEDZ/PjkhlTroGSfKh3DlLu+uMBOLzu 8SCVftbaX4IW+bVk3k6AoTOuSYP4mGjZPKoVdMvQPSi7lTMg5qBrdIrNdJ68e9XmTCmO AprQ== 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:mime-version:content-transfer-encoding; bh=mdbv4CO8BhE6pqFGehWefPsAVhnmG6B4RY3j765Q16s=; b=O9v5fJlAoZFSexxegRAh8QqQdWL0Gag7khWn2Lj2CS0RO8c/ATD9Og/2pIPrBG7j+Y jbPB+tw2h+sQcyUq63EGSWJ1tQZZTcSJP1024UWilg7GqjUtLkd01J+FgiWhP1gWe2JB Z6bxpL66UB/ef1bHgYZzKuwv4yhOOJDAiPp8yBrhGLkhrfI7zszbiNK+35ujunEMqNGD K0p2Q36dSZn/2ogBSm9n37OFF8nfYFTDEX1NHSrYlhLkN56y8OpT/nmHEcmVIwfI1x9D PsyYIQBG8oY9tuAf/xHj4U7MjlXPcnj0evvpBq7RvQgMVnRcVYnD/wSOO0jhGipWc9p4 roIg== X-Gm-Message-State: AHQUAuYEtR3+qnWcHz6uhCRFcNNX+Q07UA0Pqf2SWrnnbEg+o9p4Ms81 FSApuQeu7YySTP35usVgbvIboAg/ X-Google-Smtp-Source: AHgI3IaK+52ILJCn+nxlaWMncS/QTv7hBWczjfavzEAWqk8pR/Bx0VK1yqh5RWFXU2I8QD/qYWbHWA== X-Received: by 2002:a9d:6b11:: with SMTP id g17mr23627288otp.70.1549821213472; Sun, 10 Feb 2019 09:53:33 -0800 (PST) Received: from localhost.localdomain (ip68-228-73-187.oc.oc.cox.net. [68.228.73.187]) by smtp.gmail.com with ESMTPSA id n9sm3156425otq.14.2019.02.10.09.53.31 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 10 Feb 2019 09:53:32 -0800 (PST) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , idosch@mellanox.com, linux-kernel@vger.kernel.org, devel@driverdev.osuosl.org, bridge@lists.linux-foundation.org, jiri@mellanox.com, andrew@lunn.ch, vivien.didelot@gmail.com Subject: [PATCH net-next v2 10/16] rocker: Handle SWITCHDEV_PORT_ATTR_SET Date: Sun, 10 Feb 2019 09:50:59 -0800 Message-Id: <20190210175105.31629-11-f.fainelli@gmail.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190210175105.31629-1-f.fainelli@gmail.com> References: <20190210175105.31629-1-f.fainelli@gmail.com> MIME-Version: 1.0 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 | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/drivers/net/ethernet/rocker/rocker_main.c b/drivers/net/ethernet/rocker/rocker_main.c index ff3f14504f4f..b94f940dc7b5 100644 --- a/drivers/net/ethernet/rocker/rocker_main.c +++ b/drivers/net/ethernet/rocker/rocker_main.c @@ -2811,6 +2811,20 @@ rocker_switchdev_port_obj_event(unsigned long event, struct net_device *netdev, return notifier_from_errno(err); } +static int +rocker_switchdev_port_attr_set_event(unsigned long event, struct net_device *netdev, + struct switchdev_notifier_port_attr_info + *port_attr_info) +{ + int err; + + err = rocker_port_attr_set(netdev, port_attr_info->attr, + port_attr_info->trans); + + 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 +2837,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_set_event(event, dev, ptr); } return NOTIFY_DONE; From patchwork Sun Feb 10 17:51:00 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 1039460 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="Ji9es3ng"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43yGl61mx2z9sCh for ; Mon, 11 Feb 2019 04:54:26 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727276AbfBJRyV (ORCPT ); Sun, 10 Feb 2019 12:54:21 -0500 Received: from mail-ot1-f66.google.com ([209.85.210.66]:41872 "EHLO mail-ot1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727067AbfBJRxg (ORCPT ); Sun, 10 Feb 2019 12:53:36 -0500 Received: by mail-ot1-f66.google.com with SMTP id u16so13892949otk.8; Sun, 10 Feb 2019 09:53:36 -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 :mime-version:content-transfer-encoding; bh=xHCeq/zNU8Vz6vIUbaa4+CfDxZLSbpk+FdXHMruBdy8=; b=Ji9es3ngnoEFQk/V5XYuhKH9kud+ZWCCSh07BAcEfY67Vo1fFDHdSCxhdN9kuKQzcx osggmOvP6UvQggn1eoLoZ+oZQC383AkZ2aVEUdP2PelBIa1urYS1PJfpElQ4I/m00Gra zRZwLNb2BBH9Y/LnjI6fKANk0V7Us3W9tBfuDrkYBlgZ8Qo0vjGYYZnjsw5wkRIgrWQE GzCPDYth2p+viqkGcSg6vhyfERlcIqxXht/ge0Yt2IJ2u5/GawUKI7NjPiIq12lT8fnw Pfv5vl+ju5BEW0H+vLeohmFOrHrFiRBmlSsVBRZ1KJlf3Q9KotnNbwkUzcA+tMIH+V7h 3WvA== 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:mime-version:content-transfer-encoding; bh=xHCeq/zNU8Vz6vIUbaa4+CfDxZLSbpk+FdXHMruBdy8=; b=HErbSNq4cJV7W+I8ay89ZFHUiIKS1hupltAjDomJvPxgcjGbgHxJ81Rszzl+XnQsid SH8iCIHguqDKrmWh5FN/Ic6FimNMZAIRNuiTJRudYTlk5iwN+NkUD88h/1cq28dH687h 3RKgivTRbsSYLphHcPN/uPUfFNp+Ue4CV8egIBi37HG1RS/Anw+9TDY+SOILJDu23Me4 xqUwBbQsy/jsZx1WyDw5MtIVz2Yorgqm1IcHO6F0GaGfCbn83UE5bvJ+GAIDB5isjCt7 RQZ4ydhDACfO2NvwssGE5MQhFoYFzZ1iD6m+D+vr/Pyg3RnslT6lKM5E6ZKRJGe09HA5 FwTw== X-Gm-Message-State: AHQUAua1E0xfy0IIkQCbyaG13OILcWZb2LoYzjg/qfWnyMk2ww+ac92J LGttrYJqVfQFmoI7HKm14CVcWdwi X-Google-Smtp-Source: AHgI3IZOE9L0HosyaPIzwxemT5iDZHDB3MU3Xdb6W2uqaiam/1+N3pBOc8gwtohbN4R6jyyhhEMA9w== X-Received: by 2002:a9d:6143:: with SMTP id c3mr24707297otk.227.1549821215346; Sun, 10 Feb 2019 09:53:35 -0800 (PST) Received: from localhost.localdomain (ip68-228-73-187.oc.oc.cox.net. [68.228.73.187]) by smtp.gmail.com with ESMTPSA id n9sm3156425otq.14.2019.02.10.09.53.33 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 10 Feb 2019 09:53:34 -0800 (PST) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , idosch@mellanox.com, linux-kernel@vger.kernel.org, devel@driverdev.osuosl.org, bridge@lists.linux-foundation.org, jiri@mellanox.com, andrew@lunn.ch, vivien.didelot@gmail.com Subject: [PATCH net-next v2 11/16] net: dsa: Handle SWITCHDEV_PORT_ATTR_SET Date: Sun, 10 Feb 2019 09:51:00 -0800 Message-Id: <20190210175105.31629-12-f.fainelli@gmail.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190210175105.31629-1-f.fainelli@gmail.com> References: <20190210175105.31629-1-f.fainelli@gmail.com> MIME-Version: 1.0 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 | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/net/dsa/slave.c b/net/dsa/slave.c index d8eb33979368..ee4b94c5e68e 100644 --- a/net/dsa/slave.c +++ b/net/dsa/slave.c @@ -1547,6 +1547,20 @@ dsa_slave_switchdev_port_obj_event(unsigned long event, return notifier_from_errno(err); } +static int +dsa_slave_switchdev_port_attr_set_event(unsigned long event, + struct net_device *netdev, + struct switchdev_notifier_port_attr_info *port_attr_info) +{ + int err; + + err = dsa_slave_port_attr_set(netdev, port_attr_info->attr, + port_attr_info->trans); + + 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) { @@ -1559,6 +1573,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: + return dsa_slave_switchdev_port_attr_set_event(event, dev, ptr); } return NOTIFY_DONE; From patchwork Sun Feb 10 17:51:01 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 1039456 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="YMspBbhk"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43yGkg1X6Wz9sCh for ; Mon, 11 Feb 2019 04:54:03 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727176AbfBJRxp (ORCPT ); Sun, 10 Feb 2019 12:53:45 -0500 Received: from mail-ot1-f68.google.com ([209.85.210.68]:40002 "EHLO mail-ot1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727086AbfBJRxi (ORCPT ); Sun, 10 Feb 2019 12:53:38 -0500 Received: by mail-ot1-f68.google.com with SMTP id s5so13890697oth.7; Sun, 10 Feb 2019 09:53:38 -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 :mime-version:content-transfer-encoding; bh=hRaNPPzM96oGSGlTiQdvEvb1VbhoN7y90hwdqDXlGIw=; b=YMspBbhkiCZVIRUzHRVdS6460kq5AxFn+bI5KvcOAFT+6deQTvZeiPcxEgCIMvneBi qYCSK7g4SrifAI4MfUzSN3Ia+fuu+b+xMzEziKJ4a6vh+fIAz+r6WLPbWSY712nGvo+L FuizCI/l2o4E4uDTumBAiIQYQR/dXX6T+MdL40RToqqiJgBScvbQttFPcH81haBW2Gn/ wGk5KKu8Daj0CkbyeXdzGhXHP+CEaLpWegv77oRJlWo0MoWUF9QEhLKNLWWOmHm0uZb1 ZdwYJZ6o/tbsY3DowcZQKXhJ73L79wpCGoaT0DY+qfQV5J6HA56wAkXBZGHOLi0lcGk4 XNnQ== 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:mime-version:content-transfer-encoding; bh=hRaNPPzM96oGSGlTiQdvEvb1VbhoN7y90hwdqDXlGIw=; b=KmKqAfNzxUAd1Vwo3Mi1TDNTtjzCCKIft47XQ+WHsab/+X+G/H5yG6MBIv1xH5nNom hbLrUnmKwkzkaGPACBakaXE+pJX5N3LMYYJ3HKnYuzuEWEgWWpmP+DjzscBIc43Cw6VU 5DvPfuEzldjWyCi5Nnca1wgIoDrJUAjruksSaMYln4rkORaIFuS0tJzRqGVY+xVPCILq 1S7Ys7fU64EM1s1CAE2hwl3TyXwUXYrAo27vjvVoyyRB/mCxVp27XDt+OHTCF344qJSJ F7JOVz4XA+G47h21GVdBMV78ribp4sO058no+eIgmS3DAgGKrUGuypoZ6KHIpwq5uP6F KWhg== X-Gm-Message-State: AHQUAub6B61sh/r4nTfURG0MMMBrM78L+g39e8wDk47Kg3i8PMN74qXY wVGwOtSmPuqoq1L8AZacCh70P7X+ X-Google-Smtp-Source: AHgI3IbnDuaexYvhLjmaWPEhKYT4hpGUxG/93QSOD9P7QbL46Z4DPfDsD3cGDuMcfme2oZrUqQIrEw== X-Received: by 2002:a9d:4a87:: with SMTP id i7mr24377964otf.178.1549821217181; Sun, 10 Feb 2019 09:53:37 -0800 (PST) Received: from localhost.localdomain (ip68-228-73-187.oc.oc.cox.net. [68.228.73.187]) by smtp.gmail.com with ESMTPSA id n9sm3156425otq.14.2019.02.10.09.53.35 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 10 Feb 2019 09:53:36 -0800 (PST) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , idosch@mellanox.com, linux-kernel@vger.kernel.org, devel@driverdev.osuosl.org, bridge@lists.linux-foundation.org, jiri@mellanox.com, andrew@lunn.ch, vivien.didelot@gmail.com Subject: [PATCH net-next v2 12/16] mlxsw: spectrum_switchdev: Handle SWITCHDEV_PORT_ATTR_SET Date: Sun, 10 Feb 2019 09:51:01 -0800 Message-Id: <20190210175105.31629-13-f.fainelli@gmail.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190210175105.31629-1-f.fainelli@gmail.com> References: <20190210175105.31629-1-f.fainelli@gmail.com> MIME-Version: 1.0 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 --- .../ethernet/mellanox/mlxsw/spectrum_switchdev.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c index 6b09d68671cf..39a99db040bd 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c @@ -3410,6 +3410,20 @@ mlxsw_sp_switchdev_handle_vxlan_obj_del(struct net_device *vxlan_dev, } } +static int +mlxsw_sp_switchdev_port_attr_set_event(unsigned long event, + struct net_device *dev, + struct switchdev_notifier_port_attr_info *port_attr_info) +{ + int err; + + err = mlxsw_sp_port_attr_set(dev, port_attr_info->attr, + port_attr_info->trans); + + 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 +3447,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_set_event(event, dev, ptr); } return NOTIFY_DONE; From patchwork Sun Feb 10 17:51:02 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 1039459 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="FAKdtfqk"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43yGky2yCrz9s5c for ; Mon, 11 Feb 2019 04:54:18 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727132AbfBJRxn (ORCPT ); Sun, 10 Feb 2019 12:53:43 -0500 Received: from mail-ot1-f65.google.com ([209.85.210.65]:39784 "EHLO mail-ot1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727097AbfBJRxk (ORCPT ); Sun, 10 Feb 2019 12:53:40 -0500 Received: by mail-ot1-f65.google.com with SMTP id n8so13893754otl.6; Sun, 10 Feb 2019 09:53: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 :mime-version:content-transfer-encoding; bh=4HuMzAPZm6+87r82yhdOiGKCalKhABoswLiokllJuxQ=; b=FAKdtfqkzU6mcofBLDh/nrL7z0qgbYcuIx8tRoRxa3ramBXLMo73cuNaalSbYcBRcL MAiwUxIgr4LWhjJr5M+TX8dm6T+z8p4nCv4JwUgq6CmelZzqCACO+ToN0oR+YsqmD2MJ J+BO3C/loMWgryavP/TiEfRYdD6Ne8uVn0mO8ylOJx/erZIdAKmgMuFmcruAcBBuJJja mcARog7bNWQJY6SwRwurYweE3UeMjDBOobTkZQ9D2DOA/zraifN2Sbato6iB3Ro/n7AU r3Lg6IszkrmXuvNbLlLMOVqaMXNEbOrRgC49CvGcrxiMXCaP6WgMv7zbX+79sVqX7tby vgpA== 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:mime-version:content-transfer-encoding; bh=4HuMzAPZm6+87r82yhdOiGKCalKhABoswLiokllJuxQ=; b=noRuWhS67SZFl0E2Q9gW/eSb9UGrDZaIO4gUa1zkMr46k+v7AD3Cd4ZbjWP1Utmmb1 UkzUBmhTHsahGeQkCqre6XbEdSrVaVJUpjgIR7hllzAKPnOuIV/kxAvoAen1P23VI7jT IUvNFMlYimfqagTVbCpiHY3L26sKk7iIFNdmqc7xKfsCftNb2H9tCZImf1glWGLnTJRI uE6Dqv2JuUG97TwVpCWzsks+SQucQg/CtAMrL95jU7diqb9YlvyQV/C9SsV+bvXaH0di NcJXGNEcOGHlO00gvCicNLTJm6kSSJkT0Zb17ozuAYMYK4QhQksLQMKvbRIlW6K4C1bH lmTA== X-Gm-Message-State: AHQUAuappIKHHK9MITRqW/jvbxwGMMJP11/GonumcKqB05rquUZ7jwaj pmbWSFJCGkBV+BbOX6gkbbPb5UV+ X-Google-Smtp-Source: AHgI3IZZGCSgl9zk1qWx5a4yTVOkXFIwX6GRDfFlsB8DZak+alh4MI4N1M1fn5pYS8Vip9hWohW/8Q== X-Received: by 2002:a9d:491e:: with SMTP id e30mr24800038otf.131.1549821219165; Sun, 10 Feb 2019 09:53:39 -0800 (PST) Received: from localhost.localdomain (ip68-228-73-187.oc.oc.cox.net. [68.228.73.187]) by smtp.gmail.com with ESMTPSA id n9sm3156425otq.14.2019.02.10.09.53.37 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 10 Feb 2019 09:53:38 -0800 (PST) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , idosch@mellanox.com, linux-kernel@vger.kernel.org, devel@driverdev.osuosl.org, bridge@lists.linux-foundation.org, jiri@mellanox.com, andrew@lunn.ch, vivien.didelot@gmail.com Subject: [PATCH net-next v2 13/16] net: mscc: ocelot: Handle SWITCHDEV_PORT_ATTR_SET Date: Sun, 10 Feb 2019 09:51:02 -0800 Message-Id: <20190210175105.31629-14-f.fainelli@gmail.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190210175105.31629-1-f.fainelli@gmail.com> References: <20190210175105.31629-1-f.fainelli@gmail.com> MIME-Version: 1.0 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 | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/drivers/net/ethernet/mscc/ocelot.c b/drivers/net/ethernet/mscc/ocelot.c index 195306d05bcd..1dda4dd4c073 100644 --- a/drivers/net/ethernet/mscc/ocelot.c +++ b/drivers/net/ethernet/mscc/ocelot.c @@ -1582,6 +1582,20 @@ struct notifier_block ocelot_netdevice_nb __read_mostly = { }; EXPORT_SYMBOL(ocelot_netdevice_nb); +static int +ocelot_switchdev_port_attr_set_event(unsigned long event, + struct net_device *netdev, + struct switchdev_notifier_port_attr_info *port_attr_info) +{ + int err; + + err = ocelot_port_attr_set(netdev, port_attr_info->attr, + port_attr_info->trans); + + 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_set_event(event, dev, ptr); } return NOTIFY_DONE; From patchwork Sun Feb 10 17:51:03 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 1039457 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="U5pnJnzi"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43yGkk171Vz9s5c for ; Mon, 11 Feb 2019 04:54:06 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727151AbfBJRxo (ORCPT ); Sun, 10 Feb 2019 12:53:44 -0500 Received: from mail-ot1-f67.google.com ([209.85.210.67]:36464 "EHLO mail-ot1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726858AbfBJRxm (ORCPT ); Sun, 10 Feb 2019 12:53:42 -0500 Received: by mail-ot1-f67.google.com with SMTP id k98so13934581otk.3; Sun, 10 Feb 2019 09:53:41 -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 :mime-version:content-transfer-encoding; bh=FGFWf5U9CHtZ6FB5zlzDIcFUgfeHDErZdPOql/NjREc=; b=U5pnJnzi48HrxK6RxIa5OSjwz0/2L0TQnyMRZ4Tm+xif1YMbHJprB+onmSkF2bd457 DsUlwbe3TNherXstL0/xa8GSJTebXKNK4gO0d5y4Y2zdW7B03a5p1fCLufp8OitBK05k WaZIeT1P/JpV3JLoxf53pdjUO/h3jYfUcKvRecTyeOS0EUPrvv6BYEhM+m0T+lxCrDQl iqe1wuEefekU9BAA0yxQo6iqXW1LPvRbMWdb+lEKkARsPYXlY8jY6+eQL5RRreJqpeti mfbnXUlrwOUCKp07hcg4aovGARIy8DLLsbmVWHC4uDeU8RyL5zCTKLMP7GwqP74+a54B jv0g== 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:mime-version:content-transfer-encoding; bh=FGFWf5U9CHtZ6FB5zlzDIcFUgfeHDErZdPOql/NjREc=; b=FwKhcWJhmiJU8mzwJox3S+qz81WFARF5V2Yx/XGmVz23b73i9wtv/lgiaqi767waO1 vS3IzO2EQmdvFloiz8aOCosVYRywrIvsNqjI9nopVIzNsriC+cBGF9XmrkkfUWFavBfT mb6TD/KBrueSlrR4Phawp/QJVD2fIqb8oxN/Wo/K5QTnWRmtHxgHqHwXkVCEIGJ6x7Wv 3CPYSGskfHoyvbo7IiN592Z5zZkVD4pJw6hZwyRrJlesMY9k5abg+kM66bKuaQ1MQ8Zq OdrxZSY2tVWCVF6MOqFJ/cYcERPsMJFn9mvPS7JXvyGoAr138aOX3K54uwYWjr37XKBU 7Exg== X-Gm-Message-State: AHQUAuYKuZOBQUeOWLnd2DQMVHn7ivu36oZGd3gO2O4FM0OC080JV7En 4gWsRUFe387RKTqmEMNEQVudd9hE X-Google-Smtp-Source: AHgI3IYnbsH0T0Kkg1sBRApGT119FUb2sKgSgsAfs0yaTQs20rVc/5IIpKXHVpRcpJK2fBXZyc7poA== X-Received: by 2002:a9d:629a:: with SMTP id x26mr1123244otk.173.1549821221134; Sun, 10 Feb 2019 09:53:41 -0800 (PST) Received: from localhost.localdomain (ip68-228-73-187.oc.oc.cox.net. [68.228.73.187]) by smtp.gmail.com with ESMTPSA id n9sm3156425otq.14.2019.02.10.09.53.39 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 10 Feb 2019 09:53:40 -0800 (PST) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , idosch@mellanox.com, linux-kernel@vger.kernel.org, devel@driverdev.osuosl.org, bridge@lists.linux-foundation.org, jiri@mellanox.com, andrew@lunn.ch, vivien.didelot@gmail.com Subject: [PATCH net-next v2 14/16] staging: fsl-dpaa2: ethsw: Handle SWITCHDEV_PORT_ATTR_SET Date: Sun, 10 Feb 2019 09:51:03 -0800 Message-Id: <20190210175105.31629-15-f.fainelli@gmail.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190210175105.31629-1-f.fainelli@gmail.com> References: <20190210175105.31629-1-f.fainelli@gmail.com> MIME-Version: 1.0 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 | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/drivers/staging/fsl-dpaa2/ethsw/ethsw.c b/drivers/staging/fsl-dpaa2/ethsw/ethsw.c index b195b09e0d1d..8baa503d9a6a 100644 --- a/drivers/staging/fsl-dpaa2/ethsw/ethsw.c +++ b/drivers/staging/fsl-dpaa2/ethsw/ethsw.c @@ -1092,6 +1092,20 @@ ethsw_switchdev_port_obj_event(unsigned long event, struct net_device *netdev, return notifier_from_errno(err); } +static int +ethsw_switchdev_port_attr_set_event(unsigned long event, + struct net_device *netdev, + struct switchdev_notifier_port_attr_info *port_attr_info) +{ + int err; + + err = swdev_port_attr_set(netdev, port_attr_info->attr, + port_attr_info->trans); + + 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 +1118,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_set_event(event, dev, ptr); } return NOTIFY_DONE; From patchwork Sun Feb 10 17:51:04 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 1039458 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="ga9NuVRT"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43yGkq06Qrz9sCh for ; Mon, 11 Feb 2019 04:54:11 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727255AbfBJRyF (ORCPT ); Sun, 10 Feb 2019 12:54:05 -0500 Received: from mail-ot1-f67.google.com ([209.85.210.67]:35837 "EHLO mail-ot1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727125AbfBJRxo (ORCPT ); Sun, 10 Feb 2019 12:53:44 -0500 Received: by mail-ot1-f67.google.com with SMTP id z19so9874562otm.2; Sun, 10 Feb 2019 09:53:43 -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 :mime-version:content-transfer-encoding; bh=sHbE9uV6OJihboPBricQmFVWhk9d/x0XEMpL4qW8zEg=; b=ga9NuVRTf+76T7F63I0At4BMjiHjjyiJUyTurr1/K2cV5/F4Wqj4H8Bza925ptIGz3 y7AEmW4k8D7s1CyBf+UEmhar1a2KSoKDDiCQhaaz8E9JhW6uRTujxuvjUfLRZQcohrFS ZKQZejX+emIG7Jn7vlpxaKElkAuvjfGz8gp4k2Ba/KI1KJDhWL+nNikMpK8bfhi+xLSp NFwassSAWCfIHaZgJLLegulW8IQR+ymU8qWqL43n7zHfcyjhQLdY7+krJA1RkKqgV5hv 6n1LOkPO9klAZWrHHB6BcPc+yzZi6CjU3q0f6D6CWxMc1kecvA0/PdFWJtRrowrjaYvU wWxg== 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:mime-version:content-transfer-encoding; bh=sHbE9uV6OJihboPBricQmFVWhk9d/x0XEMpL4qW8zEg=; b=GkZ+Vw5T0nTam1Wh1uggF/BwGmFwO2FkG2nxAn6UUhnfExT70tARzTgvM16q7nycC8 /36ugSAmJiObuEPsFWcdmtfRN/8sHPzKGvy7Q7OuAi5lR+h2ya/gAEHFFut4a4t/i+l9 kymucmiP2zYBo/MIwAjAHjwAt95eQj8IPY7ffWsT9jFgcIQ2ay4mCFqxAnILdEPwsJFq KaMjqZWnj0lEqLWUH9BwdabmyY6mVtdf9g5D4DPRLlfeUM/6hAtikE0+jq9LUDTR8orx FuRO6F1IaxZpjhqDefKxXyLaqeNoIRcwuNIHeNXE63fTNPXGrPJGl3Kur3d8YSUiBAVj LBRQ== X-Gm-Message-State: AHQUAuZTuz8n3LBplwY5otvkNgsM9q4GEMuZP4bIi4SXErxjdR9SSJ+D E5JzuPkIGDA+p7pwhp7VPlWukzPW X-Google-Smtp-Source: AHgI3IanprX1G12M5T+FfZ2hTIa4tOdiKOqe5OhTMtQMGzgqMi5HKkrQ/dXxm/+lg6nNeSvb85CKjg== X-Received: by 2002:a9d:6419:: with SMTP id h25mr22239291otl.34.1549821223002; Sun, 10 Feb 2019 09:53:43 -0800 (PST) Received: from localhost.localdomain (ip68-228-73-187.oc.oc.cox.net. [68.228.73.187]) by smtp.gmail.com with ESMTPSA id n9sm3156425otq.14.2019.02.10.09.53.41 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 10 Feb 2019 09:53:42 -0800 (PST) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , idosch@mellanox.com, linux-kernel@vger.kernel.org, devel@driverdev.osuosl.org, bridge@lists.linux-foundation.org, jiri@mellanox.com, andrew@lunn.ch, vivien.didelot@gmail.com Subject: [PATCH net-next v2 15/16] net: switchdev: Replace port attr set SDO with a notification Date: Sun, 10 Feb 2019 09:51:04 -0800 Message-Id: <20190210175105.31629-16-f.fainelli@gmail.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190210175105.31629-1-f.fainelli@gmail.com> References: <20190210175105.31629-1-f.fainelli@gmail.com> MIME-Version: 1.0 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 --- net/switchdev/switchdev.c | 92 ++++++++++----------------------------- 1 file changed, 22 insertions(+), 70 deletions(-) diff --git a/net/switchdev/switchdev.c b/net/switchdev/switchdev.c index 7e1357db33d7..fab96d978924 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, + 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; - 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 Sun Feb 10 17:51:05 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 1039455 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="uOYTbVD6"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43yGkT64zSz9sCh for ; Mon, 11 Feb 2019 04:53:53 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727230AbfBJRxs (ORCPT ); Sun, 10 Feb 2019 12:53:48 -0500 Received: from mail-ot1-f66.google.com ([209.85.210.66]:34816 "EHLO mail-ot1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727210AbfBJRxq (ORCPT ); Sun, 10 Feb 2019 12:53:46 -0500 Received: by mail-ot1-f66.google.com with SMTP id z19so9874627otm.2; Sun, 10 Feb 2019 09:53:45 -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 :mime-version:content-transfer-encoding; bh=vIVYf9JotKnwepovE3GpoXexvmzAMYjU81aU5RcnSF4=; b=uOYTbVD61U8bTWzhedfdn5nY7VPQzlXMEjzGA2tsY09AXRFT3Kxyk1QQRD0odKgmY9 SgDccPuAboUhEgdVoKxuqa8DKpAmzdxiaN6nShMqztrXTkasmyyUcTSDllj0G1S1Vz2Z vp3633ekK4cLnPQiNJufEeAcPPGH9GtTj6UYB/LZdh9oooElIAHLKmbI+uBlYIgQRnJQ JVcbPEeZAyDTUdzLOwDAsZVLY7P2z2veG2mIvyzITIQq45Z6cmbwjzYkr3FMhiIr39ZC ZEzrZqZ7oaPUQn7NyU5HO+CO7GhMZdO19DdxDZr3WvsjaUPZdd9sQ4Kq/orAMPtpepBy XI+A== 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:mime-version:content-transfer-encoding; bh=vIVYf9JotKnwepovE3GpoXexvmzAMYjU81aU5RcnSF4=; b=apJY5sS8tqjwl0Ugw9nXAECbsubPx7DGoS+awhIC5KjPgILt19COK9fGB60BSg9C8Z unJwYtcl9gTvSqWFqSaNuEGDYIAZFy2z89mZJDbDqbx7LHlfPYhnBz1u7x2SgSJmvb41 JIEpnoIIVUJyICyy6jPWofQoJ5xgHY0DAyJOxLjdZpdAz4kI2tAnsLrDa2jLB23v2vGd vkkdp5NNBmd5Ndqa1cH9/lfTf7KnOrzBAFvj9Gd+ggna+CQCiiWFBVzQyCzv3oQPz2Vr k0MEpYjLNck62mHsVLZyOOjhezyeO9GqDdqJhiYuAd7LiF3T/Z+YXtHqZJQRRpz3MsxC WFvQ== X-Gm-Message-State: AHQUAubKRHO/bRVJ4F3X5+0LI6CMT/7/leIQgma2AGUhMzSIbEnU4RQN ZiqCAfmZ0/iM1UDC21FyoQiDgV2S X-Google-Smtp-Source: AHgI3IZ1VjiG8OFOB3bveXKH4Wjf8zGJwfM/0tiHTwNl2m/lu3w93YYRTqY9Un/WLQZ83/lIypOtIA== X-Received: by 2002:a9d:3b65:: with SMTP id z92mr24110459otb.275.1549821225075; Sun, 10 Feb 2019 09:53:45 -0800 (PST) Received: from localhost.localdomain (ip68-228-73-187.oc.oc.cox.net. [68.228.73.187]) by smtp.gmail.com with ESMTPSA id n9sm3156425otq.14.2019.02.10.09.53.43 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 10 Feb 2019 09:53:44 -0800 (PST) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , idosch@mellanox.com, linux-kernel@vger.kernel.org, devel@driverdev.osuosl.org, bridge@lists.linux-foundation.org, jiri@mellanox.com, andrew@lunn.ch, vivien.didelot@gmail.com Subject: [PATCH net-next v2 16/16] net: Remove switchdev_ops Date: Sun, 10 Feb 2019 09:51:05 -0800 Message-Id: <20190210175105.31629-17-f.fainelli@gmail.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190210175105.31629-1-f.fainelli@gmail.com> References: <20190210175105.31629-1-f.fainelli@gmail.com> MIME-Version: 1.0 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 -- .../mellanox/mlxsw/spectrum_switchdev.c | 12 ------------ drivers/net/ethernet/mscc/ocelot.c | 5 ----- drivers/net/ethernet/rocker/rocker_main.c | 5 ----- drivers/staging/fsl-dpaa2/ethsw/ethsw.c | 5 ----- include/linux/netdevice.h | 3 --- include/net/switchdev.h | 18 ------------------ net/dsa/slave.c | 5 ----- 9 files changed, 67 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum.c index 7c9745cecbbd..619965abab43 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 ceebc91f4f1d..82e3e6dc81a1 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 39a99db040bd..a3a3c14c7886 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, @@ -3536,11 +3532,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 1dda4dd4c073..c98d2df08968 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) { @@ -1649,7 +1645,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 b94f940dc7b5..262f6dd173f6 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 8baa503d9a6a..fe7d7617e800 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) @@ -1439,7 +1435,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 1fb733f38a47..a747456b9d23 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h @@ -1836,9 +1836,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/include/net/switchdev.h b/include/net/switchdev.h index 7bc6a004d32a..e66a6c30eee6 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, @@ -223,7 +208,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) @@ -310,8 +294,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/dsa/slave.c b/net/dsa/slave.c index ee4b94c5e68e..871ab04d5f05 100644 --- a/net/dsa/slave.c +++ b/net/dsa/slave.c @@ -1047,10 +1047,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", }; @@ -1310,7 +1306,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);