From patchwork Tue Apr 5 03:32:38 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Xin Long X-Patchwork-Id: 606242 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3qfDvl6rrgz9sCj for ; Tue, 5 Apr 2016 13:33:07 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=evJzKdDi; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753793AbcDEDdF (ORCPT ); Mon, 4 Apr 2016 23:33:05 -0400 Received: from mail-pf0-f193.google.com ([209.85.192.193]:33230 "EHLO mail-pf0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753627AbcDEDdE (ORCPT ); Mon, 4 Apr 2016 23:33:04 -0400 Received: by mail-pf0-f193.google.com with SMTP id e190so151111pfe.0 for ; Mon, 04 Apr 2016 20:33:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references :in-reply-to:references; bh=KBlJVcOgPN+vADlAofLDaNv741Kr3aFVtEBaxM5YqZU=; b=evJzKdDiVIFJoks3VroCsIoTjaRk+aH4C4HjR5uvD0dX2REkpkAcrIHDHz4U1FNPJJ DA9uWZrKtprU8M6fqlKBGS+nUOXBbZMDr5VbyDSYT3UCDIUTTUUm5wjZi+eYeAWJqWZ/ /PtlrqdJzNvAxOXO7Q3FjbJqZGsz60yYW3j/oINViLscRQ5kabspLZZCDdwnjdtNDnJG GUimlyTTvYRuMDUVL95OpJAlSw97+T1TqRvR+CYAeYTIE1G9f7cWcdQMqnVxwe46toty fU5iGw0c5aYbye2ydxzY7cyOWpgdmTg9PCMb1KaWQFIaKqJ4Aor1QodFyXLDnt84z/nq NH3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; bh=KBlJVcOgPN+vADlAofLDaNv741Kr3aFVtEBaxM5YqZU=; b=Db6H4GslIdPqU//jr+LB5IEErayXY177CK+GhHKq4TOwh8CNn9aC0zcGvxpwmc3txY +hnM8QqXMoDQybrI3sqqZMKOsKNcBsfyNLvwsqBZ6exodblhcA0l67XGFvBMmwhaxk4e xXdVQAnKb9uSISLT2WNeYAtVxWC2RQch+6rl/lD6XxLgCtqu0Gq5DpdvwOWjyMdfFYDJ yy+VeaGPa5/QcY4Vly+WxPcJ0V5VWKeb94Ae100orFkARTvaLW4HmrGgosGz3uLoaknG RmibuqLGx/aV1jlssL0DTMm8ZgUs5pzkVBvQLS+6ihgka7wd7VPbDh7KXuVNxhgdnney CBxw== X-Gm-Message-State: AD7BkJIMft9XEY7u4PwSgcFhdQu6HnsOcuctkyzqSpBJlua65HsUnx0m+4iibdPCuB0CQg== X-Received: by 10.98.40.4 with SMTP id o4mr26371719pfo.76.1459827183364; Mon, 04 Apr 2016 20:33:03 -0700 (PDT) Received: from localhost (138.128.208.20.16clouds.com. [138.128.208.20]) by smtp.gmail.com with ESMTPSA id l81sm42629449pfj.21.2016.04.04.20.33.02 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 04 Apr 2016 20:33:02 -0700 (PDT) From: Xin Long To: network dev , bridge@lists.linux-foundation.org Cc: davem@davemloft.net, Stephen Hemminger , Hannes Frederic Sowa , nikolay@cumulusnetworks.com Subject: [PATCHv2 net-next 3/6] bridge: simplify the stp_state_store by calling store_bridge_parm Date: Tue, 5 Apr 2016 11:32:38 +0800 Message-Id: X-Mailer: git-send-email 2.1.0 In-Reply-To: <6197a35a2eb6df2caf90edcbf1b49da12077f659.1459827115.git.lucien.xin@gmail.com> References: <6e2cf6821542a253904dfc7d8ec431d6bbda2b4e.1459827115.git.lucien.xin@gmail.com> <6197a35a2eb6df2caf90edcbf1b49da12077f659.1459827115.git.lucien.xin@gmail.com> In-Reply-To: References: Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org There are some repetitive codes in stp_state_store, we can remove them by calling store_bridge_parm. Signed-off-by: Xin Long --- net/bridge/br_sysfs_br.c | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/net/bridge/br_sysfs_br.c b/net/bridge/br_sysfs_br.c index 137cd3b..9918763 100644 --- a/net/bridge/br_sysfs_br.c +++ b/net/bridge/br_sysfs_br.c @@ -128,27 +128,17 @@ static ssize_t stp_state_show(struct device *d, } +static int set_stp_state(struct net_bridge *br, unsigned long val) +{ + br_stp_set_enabled(br, val); + return 0; +} + static ssize_t stp_state_store(struct device *d, struct device_attribute *attr, const char *buf, size_t len) { - struct net_bridge *br = to_bridge(d); - char *endp; - unsigned long val; - - if (!ns_capable(dev_net(br->dev)->user_ns, CAP_NET_ADMIN)) - return -EPERM; - - val = simple_strtoul(buf, &endp, 0); - if (endp == buf) - return -EINVAL; - - if (!rtnl_trylock()) - return restart_syscall(); - br_stp_set_enabled(br, val); - rtnl_unlock(); - - return len; + return store_bridge_parm(d, buf, len, set_stp_state); } static DEVICE_ATTR_RW(stp_state);