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);