From patchwork Fri Apr 8 16:03:29 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Xin Long X-Patchwork-Id: 608074 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 3qhPQx0ZVpz9t5m for ; Sat, 9 Apr 2016 02:04:09 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=DJCecdUH; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932677AbcDHQDw (ORCPT ); Fri, 8 Apr 2016 12:03:52 -0400 Received: from mail-pf0-f196.google.com ([209.85.192.196]:35556 "EHLO mail-pf0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932200AbcDHQDt (ORCPT ); Fri, 8 Apr 2016 12:03:49 -0400 Received: by mail-pf0-f196.google.com with SMTP id r187so9826410pfr.2 for ; Fri, 08 Apr 2016 09:03:49 -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=Vr3fonZRZ0pfFkHMTM2qgfvEVDY3OI9B+nwb5bt6GI8=; b=DJCecdUHMOWGDVRsCjxNtoFGPC6dUbQUVDAIyw9N9l3wUZjIbQUyhAbKyyeGi7Uary CvXr54VwYFZUnhg5R/9TNrBkf6UXbAXZ0Mw1t2Qd2qgM/qcuVJg8mTC2Hrun7NNvpp8q Uy5Y5PqJ8IH9g1gPKikELW4vvsGS/etFPNjC1mrmHlzshFNZQr8FhL+4xIl8z1MxSUJZ qZQYiljN/OpinLxP8GPwlRJUg63f83pNC8KmHqKUAXhmbEqUO2ixZ++kAbk15+cC/yBA 07/p4ZTFcCBscX1aY4NOBepcXLPaJ6bMmRksL5bh+VUHDCYXuqyXM9B8xlZ1vsQCsCUn lXag== 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=Vr3fonZRZ0pfFkHMTM2qgfvEVDY3OI9B+nwb5bt6GI8=; b=bT0OmG4owoypptiwAaZr9gY9901GtYmepysUk8WXFy0OscOkeO0ETpLyANqUZL3GDs ysgEWEIR+HyoZusZXKQ7A/x9SR2gQCY0UhaHZou5uANFOns8S5qop+733BHkEahs+aTT RZR+rs/uIgKhArToqZZOj8pM8eRv5d5DcSkcaKao33u/J1QrDNAgmxRFQG07Fw/Q3AS4 jdanxsmtdbPRBMb3gS47d8n7u/UtdKJU0Xg2+4HW/G6KT1Ulr5UdhSwbJxPFofLRFR21 h8Xj/quBL497C1/+2DMr1eRz0GU0hrez9QvMsev6EnyRvTcCkWEaIIw/RxSP4FQjNvlP MWLg== X-Gm-Message-State: AD7BkJJB5jqCNtH7CNgWYYC01Bc8ROJV40BuXmBRBS1eHwrnyI/3eT7TvgEor1r6+/Deqw== X-Received: by 10.98.13.88 with SMTP id v85mr13649734pfi.150.1460131428534; Fri, 08 Apr 2016 09:03:48 -0700 (PDT) Received: from localhost (138.128.208.20.16clouds.com. [138.128.208.20]) by smtp.gmail.com with ESMTPSA id m87sm19698733pfj.38.2016.04.08.09.03.47 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 08 Apr 2016 09:03:47 -0700 (PDT) From: Xin Long To: network dev , bridge@lists.linux-foundation.org Cc: davem@davemloft.net, Stephen Hemminger , nikolay@cumulusnetworks.com Subject: [PATCHv3 net-next 2/6] bridge: simplify the forward_delay_store by calling store_bridge_parm Date: Sat, 9 Apr 2016 00:03:29 +0800 Message-Id: <6197a35a2eb6df2caf90edcbf1b49da12077f659.1460131308.git.lucien.xin@gmail.com> X-Mailer: git-send-email 2.1.0 In-Reply-To: <6e2cf6821542a253904dfc7d8ec431d6bbda2b4e.1460131308.git.lucien.xin@gmail.com> References: <6e2cf6821542a253904dfc7d8ec431d6bbda2b4e.1460131308.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 forward_delay_store, we can remove them by calling store_bridge_parm. Signed-off-by: Xin Long Reviewed-by: Nikolay Aleksandrov --- net/bridge/br_sysfs_br.c | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/net/bridge/br_sysfs_br.c b/net/bridge/br_sysfs_br.c index c48f6b0..137cd3b 100644 --- a/net/bridge/br_sysfs_br.c +++ b/net/bridge/br_sysfs_br.c @@ -160,29 +160,22 @@ static ssize_t group_fwd_mask_show(struct device *d, return sprintf(buf, "%#x\n", br->group_fwd_mask); } - -static ssize_t group_fwd_mask_store(struct device *d, - struct device_attribute *attr, - const char *buf, - size_t len) +static int set_group_fwd_mask(struct net_bridge *br, unsigned long val) { - 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 (val & BR_GROUPFWD_RESTRICTED) return -EINVAL; br->group_fwd_mask = val; - return len; + return 0; +} + +static ssize_t group_fwd_mask_store(struct device *d, + struct device_attribute *attr, + const char *buf, + size_t len) +{ + return store_bridge_parm(d, buf, len, set_group_fwd_mask); } static DEVICE_ATTR_RW(group_fwd_mask);