From patchwork Fri Feb 15 22:53: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: 1043264 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="Fozceu1F"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 441T961PTxz9sDr for ; Sat, 16 Feb 2019 09:54:34 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2394119AbfBOWxX (ORCPT ); Fri, 15 Feb 2019 17:53:23 -0500 Received: from mail-pl1-f195.google.com ([209.85.214.195]:33617 "EHLO mail-pl1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2390106AbfBOWxU (ORCPT ); Fri, 15 Feb 2019 17:53:20 -0500 Received: by mail-pl1-f195.google.com with SMTP id y10so5664586plp.0; Fri, 15 Feb 2019 14:53:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=GmsxL6ue1pwm/WQ282fv6yCw0X20h/gOBu2/en2qp7g=; b=Fozceu1F+1bDq17QQavBU465DtifEHGf1fNzXB4V4SFfF6Y+yldqVXsuVAZYOgtzTi vcjAJ7K4Mpdtk3kxMH/uJy0hJQozFXNQKpK14clcxWLxjeoYgBEIvUOUiTOBzRB/y9pW er2scEk7V3y1jqdb+Yg6/b0dTitHAmIG3dC1QjA0G9zujrIt47UpS6MrBx9aMc8IB0EK VP/vAa0wizCsGwztSiXtNvoYacCHDrLjpwPoLExqct5VAtA5/qcKmOAjPV5PXAltghjB zxiLi8DaSbK8wPNImVwDAMLVetUc3B7KBnPqoOGujtKuKeFckxJxvFth0dlwpcwKhWSn stiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=GmsxL6ue1pwm/WQ282fv6yCw0X20h/gOBu2/en2qp7g=; b=PI8RPGEOPaTFmkaQMg5R6YkuvHKBuX4idSY13Cqk4/1MjIQxRXqjaBJVC1hR78ffuT TcNSKp48q0bEn36aCmF3z7ZhrqVKmrLlIDJAAjnE9gb+w8tMphH/tF4zVCxNg2QbjkWO Cg4rjthMopyyfzjre2+aFajBAuRtDos6exbLGG201e6VfjMN20kTHOd5mCO0C2A48TUk 7DbW3JphJEdGCqEGvpBOHA6+3INLuH0G2m0l2RZ797AHaX3fCJ+FU/PxipY8n9w/W7bm tbLY+cMzGDeiUZYEaTQpVsU78SMyjQ7QrkrQY+dIrslWhS1KiCIkR+VuE0Am3OPfE9ML b9ug== X-Gm-Message-State: AHQUAuZwyiYzNmH4jBJHNBjSbiazml2t/XaUm8atE0XbR+mFjaJUYR4B 2OXqEXvwPETnirbufXFYmj61xxzw X-Google-Smtp-Source: AHgI3IY5hZPR/Z6U6+T545CIQgDQkN7n9B+KJwuk5i9jpFoKY0sbhr4I+ciVtHyg0BC83SQJqbqYMg== X-Received: by 2002:a17:902:3283:: with SMTP id z3mr12772258plb.76.1550271199723; Fri, 15 Feb 2019 14:53:19 -0800 (PST) Received: from fainelli-desktop.igp.broadcom.net ([192.19.223.250]) by smtp.gmail.com with ESMTPSA id d129sm9719905pfc.31.2019.02.15.14.53.18 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 15 Feb 2019 14:53:18 -0800 (PST) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , "David S. Miller" , Ido Schimmel , linux-kernel@vger.kernel.org (open list), devel@driverdev.osuosl.org (open list:STAGING SUBSYSTEM), bridge@lists.linux-foundation.org (moderated list:ETHERNET BRIDGE), jiri@mellanox.com, andrew@lunn.ch, vivien.didelot@gmail.com Subject: [PATCH net-next v2 1/9] Documentation: networking: switchdev: Update port parent ID section Date: Fri, 15 Feb 2019 14:53:05 -0800 Message-Id: <20190215225313.32303-2-f.fainelli@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190215225313.32303-1-f.fainelli@gmail.com> References: <20190215225313.32303-1-f.fainelli@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Update the section about switchdev drivers having to implement a switchdev_port_attr_get() function to return SWITCHDEV_ATTR_ID_PORT_PARENT_ID since that is no longer valid after commit bccb30254a4a ("net: Get rid of SWITCHDEV_ATTR_ID_PORT_PARENT_ID"). Fixes: bccb30254a4a ("net: Get rid of SWITCHDEV_ATTR_ID_PORT_PARENT_ID") Reviewed-by: Ido Schimmel 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 Fri Feb 15 22:53:06 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 1043265 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="s5Txl0w0"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 441T9D5cYxz9sML for ; Sat, 16 Feb 2019 09:54:40 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2394178AbfBOWyf (ORCPT ); Fri, 15 Feb 2019 17:54:35 -0500 Received: from mail-pf1-f195.google.com ([209.85.210.195]:34379 "EHLO mail-pf1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2394098AbfBOWxW (ORCPT ); Fri, 15 Feb 2019 17:53:22 -0500 Received: by mail-pf1-f195.google.com with SMTP id j18so5522501pfe.1; Fri, 15 Feb 2019 14: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; bh=Y8cTug1MK//k9Db5o5+0BQipNr3buFiSVSYrdmVTLt0=; b=s5Txl0w08kvB8rj/qhwE8TSWEgp5Pv+gpFpYiLq9AcCIsSRkIp7AGb227mXMKAmEvQ oEwl6VcefRBKfq/AONU9fLscQIEHODKVXT31KnnZU4wOpjJutyoqlnt7ir4MREEcM2zY 757a2pxH49+RWT3hlwxCN/UOKaoUyKK3iNf0iSAl/TcW9Zruf7LW5UMsg5V+zopNdFCs Ge5z/WxPQQMOQ1Z3mCROh4RTMGnvNZWpKKQMXvfWw3mgjNcu/euCHtGhPZ6PtVvBkIVz W15vz7lS9lY8xt1oxpHAJeT+OszxemQQjKr2Ssbh1wHXLvFRS1L7aly2rQYc7u9r2SxQ a3Ow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=Y8cTug1MK//k9Db5o5+0BQipNr3buFiSVSYrdmVTLt0=; b=i8K5llg7dvHsINVdD1aDR+t+inCtn3xgLeWpFmID5OYqokdXQV1xYYlkvaKXpnWxjg z/IlDSnbc2zuYLsukhY6WrWW7T9WEadRsIKQAUGMcRGi51Cdica4wAy05Vrg3JMbwPEA w+zKhhzGyBW77eiMN0W4rf9i5bPMnvXEI0O5OgaJafnlMCLygjHtvcP24jPGWCj0lBVs B2mMsr/pm1TXsZvR/reKzMnDjka3h2zzKaEkPg8BFtvVCGgA7BeMusROm7QfxcZCtKts AmoXur3uIQ57RK+X2Use/g8nufWBdDR1qNfOpZYQmim93/actWdWPzrC0lNLp9l6J2IS 9xsQ== X-Gm-Message-State: AHQUAuYYeV1p880hlrL1g9osZVTXJwCz4Ta+GW6zIn80Z5+MzfvuvKla u2SydMbtCiq8RvH0N/KwUqRphjrj X-Google-Smtp-Source: AHgI3IYBfnsMDyH9khWQY2kSPHbFcDsEfonNacKv1F0B/vz+BQ1ns1JAgsYflwhgh3oJv7BKqvnZ/g== X-Received: by 2002:a63:6c43:: with SMTP id h64mr7188341pgc.22.1550271201323; Fri, 15 Feb 2019 14:53:21 -0800 (PST) Received: from fainelli-desktop.igp.broadcom.net ([192.19.223.250]) by smtp.gmail.com with ESMTPSA id d129sm9719905pfc.31.2019.02.15.14.53.19 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 15 Feb 2019 14:53:20 -0800 (PST) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , "David S. Miller" , Ido Schimmel , linux-kernel@vger.kernel.org (open list), devel@driverdev.osuosl.org (open list:STAGING SUBSYSTEM), bridge@lists.linux-foundation.org (moderated list:ETHERNET BRIDGE), jiri@mellanox.com, andrew@lunn.ch, vivien.didelot@gmail.com Subject: [PATCH net-next v2 2/9] net: switchdev: Add PORT_PRE_BRIDGE_FLAGS Date: Fri, 15 Feb 2019 14:53:06 -0800 Message-Id: <20190215225313.32303-3-f.fainelli@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190215225313.32303-1-f.fainelli@gmail.com> References: <20190215225313.32303-1-f.fainelli@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org In preparation for removing switchdev_port_attr_get(), introduce PORT_PRE_BRIDGE_FLAGS which will be called through switchdev_port_attr_set(), in the caller's context (possibly atomic) and which must be checked by the switchdev driver in order to return whether the operation is supported or not. This is entirely analoguous to how the BRIDGE_FLAGS_SUPPORT works, except it goes through a set() instead of get(). Signed-off-by: Florian Fainelli --- include/net/switchdev.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/net/switchdev.h b/include/net/switchdev.h index 5e87b54c5dc5..de72b0a3867f 100644 --- a/include/net/switchdev.h +++ b/include/net/switchdev.h @@ -46,6 +46,7 @@ enum switchdev_attr_id { SWITCHDEV_ATTR_ID_PORT_STP_STATE, SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS, SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS_SUPPORT, + SWITCHDEV_ATTR_ID_PORT_PRE_BRIDGE_FLAGS, SWITCHDEV_ATTR_ID_PORT_MROUTER, SWITCHDEV_ATTR_ID_BRIDGE_AGEING_TIME, SWITCHDEV_ATTR_ID_BRIDGE_VLAN_FILTERING, @@ -61,7 +62,7 @@ struct switchdev_attr { void (*complete)(struct net_device *dev, int err, void *priv); union { u8 stp_state; /* PORT_STP_STATE */ - unsigned long brport_flags; /* PORT_BRIDGE_FLAGS */ + unsigned long brport_flags; /* PORT_{PRE}_BRIDGE_FLAGS */ unsigned long brport_flags_support; /* PORT_BRIDGE_FLAGS_SUPPORT */ bool mrouter; /* PORT_MROUTER */ clock_t ageing_time; /* BRIDGE_AGEING_TIME */ From patchwork Fri Feb 15 22:53:07 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 1043262 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="ShHuGei5"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 441T8v0kpTz9sDr for ; Sat, 16 Feb 2019 09:54:23 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2404592AbfBOWx1 (ORCPT ); Fri, 15 Feb 2019 17:53:27 -0500 Received: from mail-pg1-f193.google.com ([209.85.215.193]:46516 "EHLO mail-pg1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2394130AbfBOWxY (ORCPT ); Fri, 15 Feb 2019 17:53:24 -0500 Received: by mail-pg1-f193.google.com with SMTP id w7so5452172pgp.13; Fri, 15 Feb 2019 14:53:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=NK5Nsx4Hxviwe7e67zABRGR+HMqbd3Rniv+pDjc5hfE=; b=ShHuGei536BzKpRL+QQ0YUEhre4vFe3Vatvj5ClAjz4aLMZm+wetaMlWn73T159YHI Nb/qu152uLlvU5Lb37himDs0YhpnAV+TN/s+v/PDHfDfTmzlUwhLm0fwvZKmZqT+hSHk h0tC/O1Q4hslqZBb05HDOyCjlw0DOpzCVoazVhj9f+sGd+pT50bNfGh65rnh02ZZnSyM PjtW+bzxeBCtWeE5rMxTwz6YyVJSznQILu66MFwf6nyRpXoipYEhfKPqRDpS2UGjBJuh YzmV4V7Fk8aVzMbIvXzrcpNI38cWbtZmgtio0E1s+sVPfhesRW0L6rax9TSN6bSsJVyo IHXQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=NK5Nsx4Hxviwe7e67zABRGR+HMqbd3Rniv+pDjc5hfE=; b=TWIcttuaX3OGQNTUhQ4ucXz1WvFl0NfzKipp8pqiKAujuDM69sh4cAvnSQ8q/wHQxl 30VFxTUBmbZISm7VO/YeimMoJuCA5KKgknVLMIr3+0qJ+Ui5jx3eiiEZ41HT9u8z7Mla GFf1+uSPZiIYYm8lvQxQFAm+9wyQUXs44cpqYwmUraN0Wj+F86JuNvCKbvig4gmMpb33 fvFkbTg1KSFW+RUuu0D4CClH0XXzX3rPTDGOgWK/H7sp2/1G8gX/iHBu+GoUjIwPbe8r 8Z7D59biXkPkRM5TQb3tzHwnh9fBfASoCq2tg0wep3GbIBY/J/BVENEh0jnNsK0sltx1 2rWQ== X-Gm-Message-State: AHQUAuYxB0I2/VtLrnCEgSIrrRolIpwR6cSvYnsBqNu05IWjK3m2IHxM bmnMQGZLJ0j8PDdI0E1aavqlP0Fz X-Google-Smtp-Source: AHgI3IbjkPALmcbquI9ka1WFqcKquXeKK2km7phH1pErP03BSGQBuxlkM8oLXSR1bk77bwdsnj0MvA== X-Received: by 2002:a65:64c8:: with SMTP id t8mr7499119pgv.31.1550271202845; Fri, 15 Feb 2019 14:53:22 -0800 (PST) Received: from fainelli-desktop.igp.broadcom.net ([192.19.223.250]) by smtp.gmail.com with ESMTPSA id d129sm9719905pfc.31.2019.02.15.14.53.21 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 15 Feb 2019 14:53:22 -0800 (PST) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , "David S. Miller" , Ido Schimmel , linux-kernel@vger.kernel.org (open list), devel@driverdev.osuosl.org (open list:STAGING SUBSYSTEM), bridge@lists.linux-foundation.org (moderated list:ETHERNET BRIDGE), jiri@mellanox.com, andrew@lunn.ch, vivien.didelot@gmail.com Subject: [PATCH net-next v2 3/9] mlxsw: spectrum: Handle PORT_PRE_BRIDGE_FLAGS Date: Fri, 15 Feb 2019 14:53:07 -0800 Message-Id: <20190215225313.32303-4-f.fainelli@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190215225313.32303-1-f.fainelli@gmail.com> References: <20190215225313.32303-1-f.fainelli@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org In preparation for getting rid of switchdev_port_attr_get(), have mlxsw check for the bridge flags being set through switchdev_port_attr_set() when the SWITCHDEV_ATTR_ID_PORT_PRE_BRIDGE_FLAGS attribute identifier is used. Signed-off-by: Florian Fainelli --- .../mellanox/mlxsw/spectrum_switchdev.c | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c index 1f492b7dbea8..8cdc0fe17a2e 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c @@ -595,10 +595,25 @@ mlxsw_sp_bridge_port_learning_set(struct mlxsw_sp_port *mlxsw_sp_port, return err; } +static int mlxsw_sp_port_attr_br_pre_flags_set(struct mlxsw_sp_port + *mlxsw_sp_port, + struct switchdev_trans *trans, + unsigned long brport_flags) +{ + if (switchdev_trans_ph_prepare(trans)) + return 0; + + if (brport_flags & ~(BR_LEARNING | BR_FLOOD | BR_MCAST_FLOOD)) + return -EINVAL; + + return 0; +} + static int mlxsw_sp_port_attr_br_flags_set(struct mlxsw_sp_port *mlxsw_sp_port, struct switchdev_trans *trans, struct net_device *orig_dev, - unsigned long brport_flags) + unsigned long brport_flags, + bool pre_set) { struct mlxsw_sp_bridge_port *bridge_port; int err; @@ -841,6 +856,11 @@ static int mlxsw_sp_port_attr_set(struct net_device *dev, attr->orig_dev, attr->u.stp_state); break; + case SWITCHDEV_ATTR_ID_PORT_PRE_BRIDGE_FLAGS: + err = mlxsw_sp_port_attr_br_pre_flags_set(mlxsw_sp_port, + trans, + attr->u.brport_flags); + break; case SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS: err = mlxsw_sp_port_attr_br_flags_set(mlxsw_sp_port, trans, attr->orig_dev, From patchwork Fri Feb 15 22:53:08 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 1043259 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="Pza6dnJZ"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 441T8g3kPwz9sDr for ; Sat, 16 Feb 2019 09:54:11 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2404626AbfBOWx3 (ORCPT ); Fri, 15 Feb 2019 17:53:29 -0500 Received: from mail-pg1-f193.google.com ([209.85.215.193]:46519 "EHLO mail-pg1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2390106AbfBOWxZ (ORCPT ); Fri, 15 Feb 2019 17:53:25 -0500 Received: by mail-pg1-f193.google.com with SMTP id w7so5452206pgp.13; Fri, 15 Feb 2019 14:53:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=n2/1JGLjz3gI0i0km/VMbftbaECrLXWDDsdiVS5YC7k=; b=Pza6dnJZmj4HZD8QFkaW8X3wWci5bwclZAeF4EWR3Po9m2NBomOZP3HPj7WfsMdUjz W1nyIulcOWb9eEZvavsBcS2pR6lj0lyeHOTzsFgfS/XrGCYJyiit8+f3Fin+y9OvsrrC hVBGMjEdjqKOxbPfcaol2CJw4BzFOD2UMfnxn46hUybTn1guv1w+iU9KFCMQn5ZWSc1/ vLuFIV3r97/F5emOVrrzcM+279Ts7olbXGIBqHsMTA9FY9gwU3Iue/viyiLwl1fGXbcL yfhgl2bnHw8NR3QBTrS6nkUpKWMpDYtDEaxzaFBCava3fhWZ2U1o3hyUk7r+O4ulqU52 i+rA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=n2/1JGLjz3gI0i0km/VMbftbaECrLXWDDsdiVS5YC7k=; b=HB4WQE7idoZHgFALP4KSiW/47IhaFri2uIkHN0Itrn3p9QUe8ndCVrVDCyAYxv7TXA 0lXsd8wUndr4NO2W++5JyEC/e2DrhSDna16dGkjOisjuDv2gCReIOLJAKtyqYywNjjZv tBG2614hufOTYBNdlEzU+BFseDifUQQCQjgSgNHCtVU2V9QGpBYyyOEUi+6v0XhsJ7zf sSWMC+wiiLKXQqPmYKEq2K4T6/U8kmXXg731S5IBSr07suHK3PyeebT/t9OfIcD7gtrS RczyHBNgrG8cqNQSw7lKSekbrVlNfPHkkQYvDRLrB72ceKe5+iJMxxv4lakBIVbOFIEW zbEw== X-Gm-Message-State: AHQUAuZPSnAUZAtwv21uriPq98xkF3CIJ69591qiKi8V37w8fGXkAY2y ncCSBjM9O2gk+GmLA2yxt1i4I172 X-Google-Smtp-Source: AHgI3IYxSkOSYcOsWKJDcm/tKw3MDioGWTpIcvXOCQ+0KjW2QAh9PG3b+jDPJIO6IAnWE++VCiBs2A== X-Received: by 2002:a63:1544:: with SMTP id 4mr7684735pgv.290.1550271204302; Fri, 15 Feb 2019 14:53:24 -0800 (PST) Received: from fainelli-desktop.igp.broadcom.net ([192.19.223.250]) by smtp.gmail.com with ESMTPSA id d129sm9719905pfc.31.2019.02.15.14.53.22 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 15 Feb 2019 14:53:23 -0800 (PST) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , "David S. Miller" , Ido Schimmel , linux-kernel@vger.kernel.org (open list), devel@driverdev.osuosl.org (open list:STAGING SUBSYSTEM), bridge@lists.linux-foundation.org (moderated list:ETHERNET BRIDGE), jiri@mellanox.com, andrew@lunn.ch, vivien.didelot@gmail.com Subject: [PATCH net-next v2 4/9] staging: fsl-dpaa2: ethsw: Handle PORT_PRE_BRIDGE_FLAGS Date: Fri, 15 Feb 2019 14:53:08 -0800 Message-Id: <20190215225313.32303-5-f.fainelli@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190215225313.32303-1-f.fainelli@gmail.com> References: <20190215225313.32303-1-f.fainelli@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org In preparation for removing SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS_SUPPORT, handle the SWITCHDEV_ATTR_ID_PORT_PRE_BRIDGE_FLAGS attribute and check that the bridge port flags being configured are supported. Signed-off-by: Florian Fainelli --- drivers/staging/fsl-dpaa2/ethsw/ethsw.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/drivers/staging/fsl-dpaa2/ethsw/ethsw.c b/drivers/staging/fsl-dpaa2/ethsw/ethsw.c index 1b3943b71254..640fd6834be1 100644 --- a/drivers/staging/fsl-dpaa2/ethsw/ethsw.c +++ b/drivers/staging/fsl-dpaa2/ethsw/ethsw.c @@ -666,6 +666,19 @@ static int port_attr_stp_state_set(struct net_device *netdev, return ethsw_port_set_stp_state(port_priv, state); } +static int port_attr_br_flags_pre_set(struct net_device *netdev, + struct switchdev_trans *trans, + unsigned long flags) +{ + if (switchdev_trans_ph_prepare(trans)) + return 0; + + if (flags & ~(BR_LEARNING | BR_FLOOD)) + return -EINVAL; + + return 0; +} + static int port_attr_br_flags_set(struct net_device *netdev, struct switchdev_trans *trans, unsigned long flags) @@ -698,6 +711,10 @@ static int swdev_port_attr_set(struct net_device *netdev, err = port_attr_stp_state_set(netdev, trans, attr->u.stp_state); break; + case SWITCHDEV_ATTR_ID_PORT_PRE_BRIDGE_FLAGS: + err = port_attr_br_flags_pre_set(netdev, trans, + attr->u.brport_flags); + break; case SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS: err = port_attr_br_flags_set(netdev, trans, attr->u.brport_flags); From patchwork Fri Feb 15 22:53:09 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 1043263 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="fHJi0B45"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 441T920CJCz9sML for ; Sat, 16 Feb 2019 09:54:30 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2394152AbfBOWyZ (ORCPT ); Fri, 15 Feb 2019 17:54:25 -0500 Received: from mail-pl1-f194.google.com ([209.85.214.194]:35417 "EHLO mail-pl1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2403879AbfBOWx0 (ORCPT ); Fri, 15 Feb 2019 17:53:26 -0500 Received: by mail-pl1-f194.google.com with SMTP id p8so5656279plo.2; Fri, 15 Feb 2019 14: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; bh=VDGmRMfeqZv9NxuAeBQdbUzJUsHV0xq2Pnb3Ma6yPoU=; b=fHJi0B45dpX2nXBWIkj7n3csq8XA3GJLOSf315HQEMWlPPy4SQujmTv8qbRGV3YBVu AJZTtb5w3vxVwBoRm+nCexc7xqBPHXXkddRtnOr4cNqB7m7RfdPytw6NMrRQUHyHkm0h VXeVDzisTdNpAfag4yEVSjzq/BgPqnMZDGGZYL/Kl/2dUDO/Gt1pO/ROoGkQp7+6ef9u JCm1npFS938zhKmgaLEPIumpPH6hWU8uzL+jImgNY4kihFf0twkjlIV20J9yv83Gkmsp Z8DlSz2KfTtAlbtm/C+uDBKtU2QgQ1FYNLzAK76IxmELr+Eyb/msyOujzxA6F5J6x0XY Jh/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=VDGmRMfeqZv9NxuAeBQdbUzJUsHV0xq2Pnb3Ma6yPoU=; b=lEfljHHQlG79cROt/IcQHNXoAtqlmqFwJ0gMqrzO91Eqx4xq6ioX73WmRCzAAliRuz m7zBoSbOHQ+mqkTJH2WWexX+BClvrEzLVtDCF8k0NRK2rTBPgd5CVbnvrvOiVVnrlltf GwvAoLzumo5Su5AIphhMmnobjgHHzMTMsRHCK0di2dNJ/dZ2mYudIuGQEc3maWtgoqT4 ePaovHO92AOc30pc/qKSYZervQwbTLrfbWEbE235jbmgAKzGqX1TsLm3FGPIkBOzJnZt QQYGnSeiqWMQKq2OnaMRwJhnP67dM/W5AQw50QPuLo+Xg8aLT7IAbq9f4vcHX5pCPhGM fe4w== X-Gm-Message-State: AHQUAuZjTZ61cAIO8sIGo72yiR4HSYjiITeIXDUL34ZDw/Phrje0nvDO 2ww0F+YA1a9wa3AELNmu/1r3KsY0 X-Google-Smtp-Source: AHgI3IYExsjGZGgMZythUEinhQXDH0azMb5/UK0vIAWYOeJntw8HdG04ym59tCbjPSA2zZWOBowMrw== X-Received: by 2002:a17:902:860a:: with SMTP id f10mr12467915plo.136.1550271205863; Fri, 15 Feb 2019 14:53:25 -0800 (PST) Received: from fainelli-desktop.igp.broadcom.net ([192.19.223.250]) by smtp.gmail.com with ESMTPSA id d129sm9719905pfc.31.2019.02.15.14.53.24 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 15 Feb 2019 14:53:25 -0800 (PST) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , "David S. Miller" , Ido Schimmel , linux-kernel@vger.kernel.org (open list), devel@driverdev.osuosl.org (open list:STAGING SUBSYSTEM), bridge@lists.linux-foundation.org (moderated list:ETHERNET BRIDGE), jiri@mellanox.com, andrew@lunn.ch, vivien.didelot@gmail.com Subject: [PATCH net-next v2 5/9] net: dsa: Add setter for SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS Date: Fri, 15 Feb 2019 14:53:09 -0800 Message-Id: <20190215225313.32303-6-f.fainelli@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190215225313.32303-1-f.fainelli@gmail.com> References: <20190215225313.32303-1-f.fainelli@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org In preparation for removing SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS_SUPPORT, add support for a function that processes the SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS and SWITCHDEV_ATTR_ID_PORT_PRE_BRIDGE_FLAGS attributes and returns not supported for any flag set, since DSA does not currently support toggling those bridge port attributes (yet). Signed-off-by: Florian Fainelli --- net/dsa/dsa_priv.h | 6 ++++++ net/dsa/port.c | 17 +++++++++++++++++ net/dsa/slave.c | 9 +++++++++ 3 files changed, 32 insertions(+) diff --git a/net/dsa/dsa_priv.h b/net/dsa/dsa_priv.h index 1f4972dab9f2..3d58dc4f4d46 100644 --- a/net/dsa/dsa_priv.h +++ b/net/dsa/dsa_priv.h @@ -150,6 +150,12 @@ 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_pre_flags_set(struct dsa_port *dp, + unsigned long brport_flags, + 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..c67a329d4414 100644 --- a/net/dsa/port.c +++ b/net/dsa/port.c @@ -177,6 +177,23 @@ 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_pre_flags_set(struct dsa_port *dp, + unsigned long brport_flags, + struct switchdev_trans *trans) +{ + if (switchdev_trans_ph_prepare(trans)) + return 0; + + return -EINVAL; +} + +int dsa_port_bridge_port_flags_set(struct dsa_port *dp, + unsigned long brport_flags, + struct switchdev_trans *trans) +{ + return -EOPNOTSUPP; +} + 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..d3370e840956 100644 --- a/net/dsa/slave.c +++ b/net/dsa/slave.c @@ -295,6 +295,15 @@ 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_PRE_BRIDGE_FLAGS: + ret = dsa_port_bridge_port_pre_flags_set(dp, + attr->u.brport_flags, + 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 Fri Feb 15 22:53:10 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 1043261 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="uetxnquO"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 441T8k5Pbdz9sDr for ; Sat, 16 Feb 2019 09:54:14 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729620AbfBOWyM (ORCPT ); Fri, 15 Feb 2019 17:54:12 -0500 Received: from mail-pl1-f196.google.com ([209.85.214.196]:41594 "EHLO mail-pl1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2404614AbfBOWx2 (ORCPT ); Fri, 15 Feb 2019 17:53:28 -0500 Received: by mail-pl1-f196.google.com with SMTP id y5so77938plk.8; Fri, 15 Feb 2019 14: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; bh=3WXfPa3CqTn5iWZnGqAfG6E5Sj9YIB4siZ2SZASyrj4=; b=uetxnquOXmK0TnmGX8mCFyy7VgZ1q1UcL/ItrBcstMxpK0JSQUHfwZiylBWguK8rNB W4JROa49SmlmkB1SZhAWL+Am83+OYcxYkuNJYFs0LlLBDWfGAUkDNCaXPHK3SbDz35VV gLSCoMbCIVblK0bByueYXlqFWoKkI7yciWV3x5Nkn5hRW5Wq1VZeWtF81wLRNKNovcop lmGAd4nbjaHsEkShkCsvwQDQccrcf8TJvkjpt+KtnkqG6QEXtQc4Tpk9G9vITddnl+5q qlbTc/OWB/+ZTKUTLBdmfYhAEWgN18RhMMsfd7eNk0UACgWQAP2MhH9YY09xpfZg7z+x LgNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=3WXfPa3CqTn5iWZnGqAfG6E5Sj9YIB4siZ2SZASyrj4=; b=U/r/hg2PaQqCVwG7AhRo5l+bVQkZoXMMl7q3/MFETFToOftS+BuB5KZVHesfbiBo4F sjkkNT/AstiloQpy5Kw8R9GWiN/ck8r4fTys2vtfgpoxaqAV06HtenRW5vWwonAwWbbP a3nhCBZt8j9LgP2eXJqEY3z1dcZpKSoe9SyydZ6wiLwXenlFOmRiU+zK4bLORTr6wBo4 AEV3dxSO8SXmI4WEM5TrtoW+V4DYh515+jErIcycI9Dzz3qnrge+4HHEK5bZYP/z+qfZ kKtRPFbZLbbwv9fTvc2oyZjiqlG5I1UXZ6dWhc9kDrtIj6SKKHSaXX6FHcSeizd2C+tl KEsw== X-Gm-Message-State: AHQUAuZsP3/fOztuyeQ00KJIylsZQfpndwO4QQQ+6IFIrwVhFdb5I3S5 B4Kua892rr012pmRZcEcbY40/3mN X-Google-Smtp-Source: AHgI3IYdtKlpiZBYnvSt5ve5l31AF8jH1BuFjDQzUgtaerLdeDc5WbVKHSPy3/cSxLLrxT4+Comvlw== X-Received: by 2002:a17:902:be05:: with SMTP id r5mr1705471pls.48.1550271207350; Fri, 15 Feb 2019 14:53:27 -0800 (PST) Received: from fainelli-desktop.igp.broadcom.net ([192.19.223.250]) by smtp.gmail.com with ESMTPSA id d129sm9719905pfc.31.2019.02.15.14.53.25 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 15 Feb 2019 14:53:26 -0800 (PST) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , "David S. Miller" , Ido Schimmel , linux-kernel@vger.kernel.org (open list), devel@driverdev.osuosl.org (open list:STAGING SUBSYSTEM), bridge@lists.linux-foundation.org (moderated list:ETHERNET BRIDGE), jiri@mellanox.com, andrew@lunn.ch, vivien.didelot@gmail.com Subject: [PATCH net-next v2 6/9] rocker: Check Handle PORT_PRE_BRIDGE_FLAGS Date: Fri, 15 Feb 2019 14:53:10 -0800 Message-Id: <20190215225313.32303-7-f.fainelli@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190215225313.32303-1-f.fainelli@gmail.com> References: <20190215225313.32303-1-f.fainelli@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org In preparation for getting rid of switchdev_port_attr_get(), have rocker check for the bridge flags being set through switchdev_port_attr_set() with the SWITCHDEV_ATTR_ID_PORT_PRE_BRIDGE_FLAGS attribute identifier. Signed-off-by: Florian Fainelli --- drivers/net/ethernet/rocker/rocker_main.c | 56 ++++++++++++++++++----- 1 file changed, 44 insertions(+), 12 deletions(-) diff --git a/drivers/net/ethernet/rocker/rocker_main.c b/drivers/net/ethernet/rocker/rocker_main.c index 5ce8d5aba603..2102e449c037 100644 --- a/drivers/net/ethernet/rocker/rocker_main.c +++ b/drivers/net/ethernet/rocker/rocker_main.c @@ -1566,34 +1566,62 @@ static int rocker_world_port_attr_stp_state_set(struct rocker_port *rocker_port, } static int -rocker_world_port_attr_bridge_flags_set(struct rocker_port *rocker_port, - unsigned long brport_flags, - struct switchdev_trans *trans) +rocker_world_port_attr_bridge_flags_support_get(const struct rocker_port * + rocker_port, + unsigned long * + p_brport_flags_support) { struct rocker_world_ops *wops = rocker_port->rocker->wops; + if (!wops->port_attr_bridge_flags_support_get) + return -EOPNOTSUPP; + return wops->port_attr_bridge_flags_support_get(rocker_port, + p_brport_flags_support); +} + +static int +rocker_world_port_attr_bridge_pre_flags_set(struct rocker_port *rocker_port, + unsigned long brport_flags, + struct switchdev_trans *trans) +{ + struct rocker_world_ops *wops = rocker_port->rocker->wops; + unsigned long brport_flags_s; + int err; + if (!wops->port_attr_bridge_flags_set) return -EOPNOTSUPP; if (switchdev_trans_ph_prepare(trans)) return 0; - return wops->port_attr_bridge_flags_set(rocker_port, brport_flags, - trans); + err = rocker_world_port_attr_bridge_flags_support_get(rocker_port, + &brport_flags_s); + if (err) + return err; + + if (brport_flags & ~brport_flags_s) + return -EINVAL; + + return 0; } static int -rocker_world_port_attr_bridge_flags_support_get(const struct rocker_port * - rocker_port, - unsigned long * - p_brport_flags_support) +rocker_world_port_attr_bridge_flags_set(struct rocker_port *rocker_port, + unsigned long brport_flags, + struct switchdev_trans *trans) { struct rocker_world_ops *wops = rocker_port->rocker->wops; + unsigned long brport_flags_s; + int err; - if (!wops->port_attr_bridge_flags_support_get) + if (!wops->port_attr_bridge_flags_set) return -EOPNOTSUPP; - return wops->port_attr_bridge_flags_support_get(rocker_port, - p_brport_flags_support); + + if (switchdev_trans_ph_prepare(trans)) + return 0; + + return wops->port_attr_bridge_flags_set(rocker_port, brport_flags, + trans); } static int @@ -2074,6 +2102,10 @@ static int rocker_port_attr_set(struct net_device *dev, attr->u.stp_state, trans); break; + case SWITCHDEV_ATTR_ID_PORT_PRE_BRIDGE_FLAGS: + err = rocker_world_port_attr_bridge_pre_flags_set(rocker_port, + attr->u.brport_flags, + trans); case SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS: err = rocker_world_port_attr_bridge_flags_set(rocker_port, attr->u.brport_flags, From patchwork Fri Feb 15 22:53:11 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 1043258 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="c+m6yOLH"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 441T8Z3kCsz9sML for ; Sat, 16 Feb 2019 09:54:06 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2404819AbfBOWyA (ORCPT ); Fri, 15 Feb 2019 17:54:00 -0500 Received: from mail-pl1-f196.google.com ([209.85.214.196]:43001 "EHLO mail-pl1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2404629AbfBOWxa (ORCPT ); Fri, 15 Feb 2019 17:53:30 -0500 Received: by mail-pl1-f196.google.com with SMTP id s1so5632494plp.9; Fri, 15 Feb 2019 14:53:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=l46VvHT7eqrMkE6E40frKPiWzb4eR8K705HCwYquJCU=; b=c+m6yOLHHnoPkllcF2apu1UUUyZhWn90E9JbS6Mv0V+cXNRzwSE9dLKIcuJH4/VXMT sCuNtXXY3ZT+zbtftR/Si2teaR4xrzeMZ3NrYioQNXs5sECpThYXU06875Yz0dHikB3+ BUmySfMmKKfmQ91u3/AVB50e6MPGae47/v8YRrQhU3gaDuxPFjk7te949mpPsRXhDcB4 aPQdVPMdPjVPi+MuxlqUxmpIBjIeq2tLTeyV73wWnkeXUV7D59scLXriqB/LA7vHUItP mnxwR2gGk+u7EuLkVDKaPy0DVKKcu1H7MdnQCirB36USQRT/VhKZl0zKr1EeqrdYZkVl tDSw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=l46VvHT7eqrMkE6E40frKPiWzb4eR8K705HCwYquJCU=; b=dB0tAKu8obwYeIko42VwGMJaGbBjcZNGJ+g0Z/y65WQBo059OuuXAHVgvcOsuewLI7 6/SNXU7uvigh+EETY59GV6zcM818r2NVPd7mw6lggjUJHSHCehpeZkrtowsCGzwKsa94 wCAIpea/gaDX4qQvOzXX7PxgRTtOVaNqP1GPP3SRC1SQfrIg2PoWz++DHcrnmB1g1KEM u2OiJLIhaMRBz6LU0BJf4QlvvixEdMWFIad7wZZUyZIxqUeamn3OuX/ewqz8Mgu1QTB3 p2z8Og4X8WVAbi1Q7NAdZ39IF8IQNlt68nLWE0PvxNhSn4sZ2FhKGfAxScNJ5A12qC43 uLUg== X-Gm-Message-State: AHQUAuaGxvUXJnK4RwNFD7z/O+Cp9vF5fLNCJP/0tkTumt2zgp3WA+4J M0AP8JOXQagvB4+HJNHypWQQvpN/ X-Google-Smtp-Source: AHgI3IZ7yG9LEJ7lOWxbEjGLuFG2Z8hL9PxkGfo4i3AXlCWu8HUQnPBfO07G7fQecqAW1Pft+DMNjA== X-Received: by 2002:a17:902:44c:: with SMTP id 70mr11360520ple.318.1550271208903; Fri, 15 Feb 2019 14:53:28 -0800 (PST) Received: from fainelli-desktop.igp.broadcom.net ([192.19.223.250]) by smtp.gmail.com with ESMTPSA id d129sm9719905pfc.31.2019.02.15.14.53.27 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 15 Feb 2019 14:53:28 -0800 (PST) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , "David S. Miller" , Ido Schimmel , linux-kernel@vger.kernel.org (open list), devel@driverdev.osuosl.org (open list:STAGING SUBSYSTEM), bridge@lists.linux-foundation.org (moderated list:ETHERNET BRIDGE), jiri@mellanox.com, andrew@lunn.ch, vivien.didelot@gmail.com Subject: [PATCH net-next v2 7/9] net: bridge: Stop calling switchdev_port_attr_get() Date: Fri, 15 Feb 2019 14:53:11 -0800 Message-Id: <20190215225313.32303-8-f.fainelli@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190215225313.32303-1-f.fainelli@gmail.com> References: <20190215225313.32303-1-f.fainelli@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Now that all switchdev drivers have been converted to check the SWITCHDEV_ATTR_ID_PORT_PRE_BRIDGE_FLAGS flags and report flags that they do not support accordingly, we can migrate the bridge code to try to set that attribute first, check the results and then do the actual setting. Signed-off-by: Florian Fainelli --- net/bridge/br_switchdev.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/net/bridge/br_switchdev.c b/net/bridge/br_switchdev.c index db9e8ab96d48..af57c4a2b78a 100644 --- a/net/bridge/br_switchdev.c +++ b/net/bridge/br_switchdev.c @@ -64,21 +64,19 @@ 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_PRE_BRIDGE_FLAGS, + .u.brport_flags = mask, }; int err; if (mask & ~BR_PORT_FLAGS_HW_OFFLOAD) return 0; - err = switchdev_port_attr_get(p->dev, &attr); + err = switchdev_port_attr_set(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)) { + if (err) { br_warn(p->br, "bridge flag offload is not supported %u(%s)\n", (unsigned int)p->port_no, p->dev->name); return -EOPNOTSUPP; @@ -87,6 +85,7 @@ int br_switchdev_set_port_flag(struct net_bridge_port *p, 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 Fri Feb 15 22:53:12 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 1043256 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="W3ZwsPb0"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 441T862vPYz9sML for ; Sat, 16 Feb 2019 09:53:42 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2404689AbfBOWxe (ORCPT ); Fri, 15 Feb 2019 17:53:34 -0500 Received: from mail-pl1-f194.google.com ([209.85.214.194]:45160 "EHLO mail-pl1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2404653AbfBOWxb (ORCPT ); Fri, 15 Feb 2019 17:53:31 -0500 Received: by mail-pl1-f194.google.com with SMTP id r14so5632547pls.12; Fri, 15 Feb 2019 14:53:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=/YRkK8iY5c2UL+9cmABu8/WhNQuT1lvaF8VvP4wC8eM=; b=W3ZwsPb0opAWKR/mm9GSm92WrzvmWuYsx/uHnGFuO7Wz7n1d1sAxNiL6O+GA9VciCb u1L30qYgYG8dX680e/s2mK4CDT4ZPz0UxGQtvNQNRodp2FDvBi++Uzui5nYUeTO8DRsy 997vqIQKeqHGENQpzsRWyiqi3lrFZcFkX0RnjzlVHdqs46GVL8PWOx9vviUdW6agt26B JOXHuL+oxwOGV4yT3/8nRAUZ1NuRwnrsCKeyhIwJrhUG8di+hLsBbdkkPbD98TxDFWzW euUVIgCyT+j51X7DJlLt4vAYLfoaqZt7Uyrc4AtAoEd/4OlmsPmuCq6AUfmIANhiSFVu Ioog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=/YRkK8iY5c2UL+9cmABu8/WhNQuT1lvaF8VvP4wC8eM=; b=jvW3/P8HH05EfVvbpt8plq7UsDkp5dwZdEo2UnZpFzJpo6mJdPkKfHCxAEjEWH0SpD JBstmNt8EPCzGWE7ad4N7IHLv+4Jz1OzSb3K6uP6UOcRNBvxwkk7NaU45mFmXFrLBrk2 vMBazK6S3NgIOlhFhhEgsL+NU7oTQtcVim8h+TfXZV0gfNxbRz4xTRdZ+Amr3KCAy4SN 0rI9yTQ5aDlozFbAa7L/8A/lcKtYYl4MwWM/NerNic/svcqSVN4Mn1xsVaagoUfjK++f qab5nTEdiEC3ZNnMi2zfyn6iYfWwfixnBmna0jkD/ADjhAjIt6VRqeFbM1EZbpNtf/fZ ydBQ== X-Gm-Message-State: AHQUAuYDl5BJldk/FprUS4y5efrqMzBtmxcq1VeKs5sxgu3Vo5DNXlVL qWAtrB50BgMGvBlfqmJQ10MNRQB9 X-Google-Smtp-Source: AHgI3Ibw18/Hie3gcC7mgMC8S8INtWplfu07WtQG9kOHQQA9F+3+dQ+1uKey6eq/IOH0lru5+KWyoQ== X-Received: by 2002:a17:902:64:: with SMTP id 91mr12976295pla.229.1550271210372; Fri, 15 Feb 2019 14:53:30 -0800 (PST) Received: from fainelli-desktop.igp.broadcom.net ([192.19.223.250]) by smtp.gmail.com with ESMTPSA id d129sm9719905pfc.31.2019.02.15.14.53.28 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 15 Feb 2019 14:53:29 -0800 (PST) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , "David S. Miller" , Ido Schimmel , linux-kernel@vger.kernel.org (open list), devel@driverdev.osuosl.org (open list:STAGING SUBSYSTEM), bridge@lists.linux-foundation.org (moderated list:ETHERNET BRIDGE), jiri@mellanox.com, andrew@lunn.ch, vivien.didelot@gmail.com Subject: [PATCH net-next v2 8/9] net: Remove SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS_SUPPORT Date: Fri, 15 Feb 2019 14:53:12 -0800 Message-Id: <20190215225313.32303-9-f.fainelli@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190215225313.32303-1-f.fainelli@gmail.com> References: <20190215225313.32303-1-f.fainelli@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Now that we have converted the bridge code and the drivers to check for bridge port(s) flags at the time we try to set them, there is no need for a get() -> set() sequence anymore and SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS_SUPPORT therefore becomes unused. Reviewed-by: Ido Schimmel Signed-off-by: Florian Fainelli --- Documentation/networking/switchdev.txt | 6 ++---- .../ethernet/mellanox/mlxsw/spectrum_switchdev.c | 11 +---------- drivers/net/ethernet/rocker/rocker_main.c | 14 +------------- drivers/staging/fsl-dpaa2/ethsw/ethsw.c | 10 +--------- include/net/switchdev.h | 2 -- net/dsa/slave.c | 10 +--------- 6 files changed, 6 insertions(+), 47 deletions(-) diff --git a/Documentation/networking/switchdev.txt b/Documentation/networking/switchdev.txt index ea90243340a9..b764568deabf 100644 --- a/Documentation/networking/switchdev.txt +++ b/Documentation/networking/switchdev.txt @@ -232,10 +232,8 @@ Learning_sync attribute enables syncing of the learned/forgotten FDB entry to 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. +To support learning, the driver implements switchdev op +switchdev_port_attr_get/set for SWITCHDEV_ATTR_PORT_ID_BRIDGE_FLAGS. FDB Ageing ^^^^^^^^^^ diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c index 8cdc0fe17a2e..2311ef8554d9 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c @@ -434,16 +434,7 @@ static void mlxsw_sp_bridge_vlan_put(struct mlxsw_sp_bridge_vlan *bridge_vlan) static int mlxsw_sp_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 = BR_LEARNING | BR_FLOOD | - BR_MCAST_FLOOD; - break; - default: - return -EOPNOTSUPP; - } - - return 0; + return -EOPNOTSUPP; } static int diff --git a/drivers/net/ethernet/rocker/rocker_main.c b/drivers/net/ethernet/rocker/rocker_main.c index 2102e449c037..107fcbec3234 100644 --- a/drivers/net/ethernet/rocker/rocker_main.c +++ b/drivers/net/ethernet/rocker/rocker_main.c @@ -2074,19 +2074,7 @@ static const struct net_device_ops rocker_port_netdev_ops = { 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_SUPPORT: - err = rocker_world_port_attr_bridge_flags_support_get(rocker_port, - &attr->u.brport_flags_support); - break; - default: - return -EOPNOTSUPP; - } - - return err; + return -EOPNOTSUPP; } static int rocker_port_attr_set(struct net_device *dev, diff --git a/drivers/staging/fsl-dpaa2/ethsw/ethsw.c b/drivers/staging/fsl-dpaa2/ethsw/ethsw.c index 640fd6834be1..e71bc7ed363e 100644 --- a/drivers/staging/fsl-dpaa2/ethsw/ethsw.c +++ b/drivers/staging/fsl-dpaa2/ethsw/ethsw.c @@ -643,15 +643,7 @@ static void ethsw_teardown_irqs(struct fsl_mc_device *sw_dev) static int swdev_port_attr_get(struct net_device *netdev, struct switchdev_attr *attr) { - switch (attr->id) { - case SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS_SUPPORT: - attr->u.brport_flags_support = BR_LEARNING | BR_FLOOD; - break; - default: - return -EOPNOTSUPP; - } - - return 0; + return -EOPNOTSUPP; } static int port_attr_stp_state_set(struct net_device *netdev, diff --git a/include/net/switchdev.h b/include/net/switchdev.h index de72b0a3867f..0f352019ef99 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_PRE_BRIDGE_FLAGS, SWITCHDEV_ATTR_ID_PORT_MROUTER, SWITCHDEV_ATTR_ID_BRIDGE_AGEING_TIME, @@ -63,7 +62,6 @@ struct switchdev_attr { union { u8 stp_state; /* PORT_STP_STATE */ unsigned long brport_flags; /* PORT_{PRE}_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 d3370e840956..06aa7376d968 100644 --- a/net/dsa/slave.c +++ b/net/dsa/slave.c @@ -390,15 +390,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 Fri Feb 15 22:53:13 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 1043257 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="oH1g8P9n"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 441T8N32C3z9sN6 for ; Sat, 16 Feb 2019 09:53:56 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2404763AbfBOWxv (ORCPT ); Fri, 15 Feb 2019 17:53:51 -0500 Received: from mail-pg1-f195.google.com ([209.85.215.195]:36458 "EHLO mail-pg1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2404675AbfBOWxd (ORCPT ); Fri, 15 Feb 2019 17:53:33 -0500 Received: by mail-pg1-f195.google.com with SMTP id r124so5476722pgr.3; Fri, 15 Feb 2019 14: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; bh=3OWzvzFMgG7QaNM4TQQVNPz9Dz/XntulO6mi3+88Pl8=; b=oH1g8P9ngUqR4QKeaQ7n4s8yK/kZ6IU5fTdKbYyTyPu/o+AU/UL/p9ZqHzBJYO2T+u 92Vryg1mqmrWJLOysldqQ+to37Y1NVK/tED7v5OhEBibF4ghDlbLi/VaFjmNukssRiz/ 6C2VDB4fpa79gUXQCXSX0Lrqk2U2gZtL/1FGPgvkwJi/WWS1T1e9y4UC+ecYU3xTn2Ry UgqYCtpv+m5gWcXmMTSFHTKfVcSjsWtiAlaYXpLnDpZNRlwYRa6DYE2r1UGdOvYk/ZYm f7wmN7adZ7RLn1VRohc/kW/y7p3loQsSszUOxNvOtFlasl0pI5jt/EfaCqOplyj7V29x vh5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=3OWzvzFMgG7QaNM4TQQVNPz9Dz/XntulO6mi3+88Pl8=; b=HuuUOPWf0MNCsSwpBWXL5p7xnOLrIf3GK+pS2kC1UWyER3CvkMJdxQLTY6vXjnikG1 Kgccie2RVkk/y9Qx2IlmXbGinUMzhZNWT99YsDO9eJprHzWbVf11wiqPqyGqGFIpuU+G zwLDLjeZJHlRiOp6TqePu7Jb6qKftHU7MCE7jhomjVEiNIaQvkMeix4g5lbQUh5W4Zba TSVCEVV62FtQFpP872Qa+LELflu4bvhnnAiZse6OL0L/QAd5wR/CG4wYhAlfJGNkYsPJ xJllCs7UIVhqMZhGERxCfv4YLBgVLAJ9aTq/BJhBvGdBo06yFY9otKlsCguEnqSZk0/z C46Q== X-Gm-Message-State: AHQUAuZFUqcHt7WNByOm6oPb7SuUJVuQyj7+w4iuogN6YjORhOI2YL54 W+ang9CiFTtfwYUUufw9w5GkEs14 X-Google-Smtp-Source: AHgI3Ibofh7cqqh2+pr98Q1pGZfPS3IPrgIwd9nNpF0CogjEoboRkoOMdzEtLqI9CfU5d/l0MErB5g== X-Received: by 2002:aa7:82ca:: with SMTP id f10mr11933008pfn.131.1550271212118; Fri, 15 Feb 2019 14:53:32 -0800 (PST) Received: from fainelli-desktop.igp.broadcom.net ([192.19.223.250]) by smtp.gmail.com with ESMTPSA id d129sm9719905pfc.31.2019.02.15.14.53.30 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 15 Feb 2019 14:53:31 -0800 (PST) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , "David S. Miller" , Ido Schimmel , linux-kernel@vger.kernel.org (open list), devel@driverdev.osuosl.org (open list:STAGING SUBSYSTEM), bridge@lists.linux-foundation.org (moderated list:ETHERNET BRIDGE), jiri@mellanox.com, andrew@lunn.ch, vivien.didelot@gmail.com Subject: [PATCH net-next v2 9/9] net: Get rid of switchdev_port_attr_get() Date: Fri, 15 Feb 2019 14:53:13 -0800 Message-Id: <20190215225313.32303-10-f.fainelli@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190215225313.32303-1-f.fainelli@gmail.com> References: <20190215225313.32303-1-f.fainelli@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org With the bridge no longer calling switchdev_port_attr_get() to obtain the supported bridge port flags from a driver but instead trying to set the bridge port flags directly and relying on driver to reject unsupported configurations, we can effectively get rid of switchdev_port_attr_get() entirely since this was the only place where it was called. Signed-off-by: Florian Fainelli --- Documentation/networking/switchdev.txt | 2 +- drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c | 7 ------- drivers/net/ethernet/rocker/rocker_main.c | 7 ------- drivers/staging/fsl-dpaa2/ethsw/ethsw.c | 7 ------- include/net/switchdev.h | 8 -------- net/dsa/slave.c | 7 ------- 6 files changed, 1 insertion(+), 37 deletions(-) diff --git a/Documentation/networking/switchdev.txt b/Documentation/networking/switchdev.txt index b764568deabf..633dd1fd81b7 100644 --- a/Documentation/networking/switchdev.txt +++ b/Documentation/networking/switchdev.txt @@ -233,7 +233,7 @@ 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, the driver implements switchdev op -switchdev_port_attr_get/set for SWITCHDEV_ATTR_PORT_ID_BRIDGE_FLAGS. +switchdev_port_attr_set for SWITCHDEV_ATTR_PORT_ID_{PRE}_BRIDGE_FLAGS. FDB Ageing ^^^^^^^^^^ diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c index 2311ef8554d9..d0fcc36f2188 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c @@ -431,12 +431,6 @@ static void mlxsw_sp_bridge_vlan_put(struct mlxsw_sp_bridge_vlan *bridge_vlan) mlxsw_sp_bridge_vlan_destroy(bridge_vlan); } -static int mlxsw_sp_port_attr_get(struct net_device *dev, - struct switchdev_attr *attr) -{ - return -EOPNOTSUPP; -} - static int mlxsw_sp_port_bridge_vlan_stp_set(struct mlxsw_sp_port *mlxsw_sp_port, struct mlxsw_sp_bridge_vlan *bridge_vlan, @@ -1949,7 +1943,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 107fcbec3234..68d8f33113a5 100644 --- a/drivers/net/ethernet/rocker/rocker_main.c +++ b/drivers/net/ethernet/rocker/rocker_main.c @@ -2071,12 +2071,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) -{ - return -EOPNOTSUPP; -} - static int rocker_port_attr_set(struct net_device *dev, const struct switchdev_attr *attr, struct switchdev_trans *trans) @@ -2153,7 +2147,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 e71bc7ed363e..7557f994ef06 100644 --- a/drivers/staging/fsl-dpaa2/ethsw/ethsw.c +++ b/drivers/staging/fsl-dpaa2/ethsw/ethsw.c @@ -640,12 +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) -{ - return -EOPNOTSUPP; -} - static int port_attr_stp_state_set(struct net_device *netdev, struct switchdev_trans *trans, u8 state) @@ -935,7 +929,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 0f352019ef99..45310ddf2d7e 100644 --- a/include/net/switchdev.h +++ b/include/net/switchdev.h @@ -179,8 +179,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, @@ -225,12 +223,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 06aa7376d968..07a98b17f2ac 100644 --- a/net/dsa/slave.c +++ b/net/dsa/slave.c @@ -387,12 +387,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) { @@ -1059,7 +1053,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, };