From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0A4E6C71156 for ; Mon, 30 Nov 2020 17:21:41 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id C2DCD2076E for ; Mon, 30 Nov 2020 17:21:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729233AbgK3RV3 (ORCPT ); Mon, 30 Nov 2020 12:21:29 -0500 Received: from vps0.lunn.ch ([185.16.172.187]:57844 "EHLO vps0.lunn.ch" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728162AbgK3RV1 (ORCPT ); Mon, 30 Nov 2020 12:21:27 -0500 Received: from andrew by vps0.lunn.ch with local (Exim 4.94) (envelope-from ) id 1kjmqo-009XnF-OI; Mon, 30 Nov 2020 18:20:34 +0100 Date: Mon, 30 Nov 2020 18:20:34 +0100 From: Andrew Lunn To: Vignesh Raghavendra Cc: "David S . Miller" , Jakub Kicinski , Grygorii Strashko , Jonathan Corbet , Jiri Pirko , netdev@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, Linux ARM Mailing List Subject: Re: [PATCH 3/4] net: ti: am65-cpsw-nuss: Add switchdev support Message-ID: <20201130172034.GF2073444@lunn.ch> References: <20201130082046.16292-1-vigneshr@ti.com> <20201130082046.16292-4-vigneshr@ti.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20201130082046.16292-4-vigneshr@ti.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org > +static int am65_cpsw_port_stp_state_set(struct am65_cpsw_port *port, > + struct switchdev_trans *trans, u8 state) > +{ > + struct am65_cpsw_common *cpsw = port->common; > + u8 cpsw_state; > + int ret = 0; > + > + if (switchdev_trans_ph_prepare(trans)) > + return 0; > + > + switch (state) { > + case BR_STATE_FORWARDING: > + cpsw_state = ALE_PORT_STATE_FORWARD; > + break; > + case BR_STATE_LEARNING: > + cpsw_state = ALE_PORT_STATE_LEARN; > + break; > + case BR_STATE_DISABLED: > + cpsw_state = ALE_PORT_STATE_DISABLE; > + break; > + case BR_STATE_LISTENING: > + case BR_STATE_BLOCKING: > + cpsw_state = ALE_PORT_STATE_BLOCK; > + break; > + default: > + return -EOPNOTSUPP; > + } Strictly speaking, the: > + if (switchdev_trans_ph_prepare(trans)) > + return 0; should be here. In the prepare phase, you are suppose to validate you can do the requested action, and return an error is not. In second phase, actually carrying out the action, you then never return an error. But in this case, you are handling all the bridge states, so it should not matter. Andrew From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2B962C63777 for ; Mon, 30 Nov 2020 17:22:18 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 9E40D20789 for ; Mon, 30 Nov 2020 17:22:17 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="FWzhl7We" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9E40D20789 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=lunn.ch Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References:Message-ID: Subject:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=Mfs9oWIp+VriR7YyWarnnr1LtCLQzYOEOIBvgyjRUSo=; b=FWzhl7WehqIY1VOi343Aq37os j+eh0EIjbLBSftHUyo8ABOz1V50C8Rena8EEjEMaCimX+M3msmezoL6Xjsd9ZWrREqOVTn5TlbLat eX2V40PzZjSD7TBRdyaVB2/SvVEqRQ7zk22Hl/m4kudohZcDscWV++WGVJ4iYQq/ca7GF/QHpYQ55 0gB8TV0tFZl7EeEDNFQyGxEp11z1OE7AoURTTqrZUJ0yXtsVYmvGX8xOy0hWGh66bbL3/EJcpB4Xq uBYlOmh0mDR5uNHaPAInFC+f4+h7m8csYyPuesB8MWlmt9snPX66lPHZwvE9ezIgRQ2MGEDnVnD1H Nv44VIaOw==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kjmrD-0000Sc-QH; Mon, 30 Nov 2020 17:20:59 +0000 Received: from vps0.lunn.ch ([185.16.172.187]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kjmrA-0000RL-Aw for linux-arm-kernel@lists.infradead.org; Mon, 30 Nov 2020 17:20:58 +0000 Received: from andrew by vps0.lunn.ch with local (Exim 4.94) (envelope-from ) id 1kjmqo-009XnF-OI; Mon, 30 Nov 2020 18:20:34 +0100 Date: Mon, 30 Nov 2020 18:20:34 +0100 From: Andrew Lunn To: Vignesh Raghavendra Subject: Re: [PATCH 3/4] net: ti: am65-cpsw-nuss: Add switchdev support Message-ID: <20201130172034.GF2073444@lunn.ch> References: <20201130082046.16292-1-vigneshr@ti.com> <20201130082046.16292-4-vigneshr@ti.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20201130082046.16292-4-vigneshr@ti.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201130_122056_422015_878AA531 X-CRM114-Status: GOOD ( 12.36 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Grygorii Strashko , Jonathan Corbet , netdev@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, Jiri Pirko , Jakub Kicinski , "David S . Miller" , Linux ARM Mailing List Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org > +static int am65_cpsw_port_stp_state_set(struct am65_cpsw_port *port, > + struct switchdev_trans *trans, u8 state) > +{ > + struct am65_cpsw_common *cpsw = port->common; > + u8 cpsw_state; > + int ret = 0; > + > + if (switchdev_trans_ph_prepare(trans)) > + return 0; > + > + switch (state) { > + case BR_STATE_FORWARDING: > + cpsw_state = ALE_PORT_STATE_FORWARD; > + break; > + case BR_STATE_LEARNING: > + cpsw_state = ALE_PORT_STATE_LEARN; > + break; > + case BR_STATE_DISABLED: > + cpsw_state = ALE_PORT_STATE_DISABLE; > + break; > + case BR_STATE_LISTENING: > + case BR_STATE_BLOCKING: > + cpsw_state = ALE_PORT_STATE_BLOCK; > + break; > + default: > + return -EOPNOTSUPP; > + } Strictly speaking, the: > + if (switchdev_trans_ph_prepare(trans)) > + return 0; should be here. In the prepare phase, you are suppose to validate you can do the requested action, and return an error is not. In second phase, actually carrying out the action, you then never return an error. But in this case, you are handling all the bridge states, so it should not matter. Andrew _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel