From patchwork Wed Dec 19 09:35:54 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiri Pirko X-Patchwork-Id: 207277 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 952E22C0089 for ; Wed, 19 Dec 2012 20:36:17 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754264Ab2LSJgP (ORCPT ); Wed, 19 Dec 2012 04:36:15 -0500 Received: from mail-ee0-f48.google.com ([74.125.83.48]:56618 "EHLO mail-ee0-f48.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753999Ab2LSJgI (ORCPT ); Wed, 19 Dec 2012 04:36:08 -0500 Received: by mail-ee0-f48.google.com with SMTP id b57so894961eek.21 for ; Wed, 19 Dec 2012 01:36:07 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-received:from:to:cc:subject:date:message-id:x-mailer:in-reply-to :references:x-gm-message-state; bh=IFxq+jCdU2YS/VOmI1V5wbwJAlNAWtBdkKa07YQiGYo=; b=PNb2BsTGauR+bL21lRww5wl5R8ug0/UGz51g78Y3zXCv4myNGQieJ4c+XSjspOgBWZ ugmojoNi09NtRNvdDeL0eanplb6N3AuXapeivvSGVo2gfSI0bME/9JCL4dryoIpJPfiO KnQYs6zePcCBcWga6llNzhstJ7Z4KWuahSfaG3FTPsBsjECvwBghR3E4ebOJ9/pzO1vl 36YRDrX/nnSi7O+c4VVQFTs1LVwHskP3DAhPmgcEjsUAbbMK/thjrPNpv1c42ZlIEWIN moX/gRdouT4eoexAdzXATEC4hWKj7VwSV5w5XDXy+QiDI9HqWlmFhPXabrEpLBhi1wzl ZyDA== X-Received: by 10.14.174.198 with SMTP id x46mr12884334eel.23.1355909767229; Wed, 19 Dec 2012 01:36:07 -0800 (PST) Received: from localhost (ip-89-103-8-129.net.upcbroadband.cz. [89.103.8.129]) by mx.google.com with ESMTPS id f6sm8185000eeo.7.2012.12.19.01.36.05 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 19 Dec 2012 01:36:06 -0800 (PST) From: Jiri Pirko To: netdev@vger.kernel.org Cc: davem@davemloft.net, edumazet@google.com, bhutchings@solarflare.com, mirqus@gmail.com, shemminger@vyatta.com, greearb@candelatech.com, fbl@redhat.com, john.r.fastabend@intel.com Subject: [patch net-next 2/4] net: allow to change carrier via sysfs Date: Wed, 19 Dec 2012 10:35:54 +0100 Message-Id: <1355909756-2389-3-git-send-email-jiri@resnulli.us> X-Mailer: git-send-email 1.8.0 In-Reply-To: <1355909756-2389-1-git-send-email-jiri@resnulli.us> References: <1355909756-2389-1-git-send-email-jiri@resnulli.us> X-Gm-Message-State: ALoCoQn1soTv9XFeAtJDvHEKYI0m8yRQNpoHLxGB0UoSJLJ6p+yxcV9UmI0R9ySjNvc6ZXMgodeY Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Make carrier writable Signed-off-by: Jiri Pirko --- net/core/net-sysfs.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/net/core/net-sysfs.c b/net/core/net-sysfs.c index 334efd5..7eda40a 100644 --- a/net/core/net-sysfs.c +++ b/net/core/net-sysfs.c @@ -126,6 +126,19 @@ static ssize_t show_broadcast(struct device *dev, return -EINVAL; } +static int change_carrier(struct net_device *net, unsigned long new_carrier) +{ + if (!netif_running(net)) + return -EINVAL; + return dev_change_carrier(net, (bool) new_carrier); +} + +static ssize_t store_carrier(struct device *dev, struct device_attribute *attr, + const char *buf, size_t len) +{ + return netdev_store(dev, attr, buf, len, change_carrier); +} + static ssize_t show_carrier(struct device *dev, struct device_attribute *attr, char *buf) { @@ -331,7 +344,7 @@ static struct device_attribute net_class_attributes[] = { __ATTR(link_mode, S_IRUGO, show_link_mode, NULL), __ATTR(address, S_IRUGO, show_address, NULL), __ATTR(broadcast, S_IRUGO, show_broadcast, NULL), - __ATTR(carrier, S_IRUGO, show_carrier, NULL), + __ATTR(carrier, S_IRUGO | S_IWUSR, show_carrier, store_carrier), __ATTR(speed, S_IRUGO, show_speed, NULL), __ATTR(duplex, S_IRUGO, show_duplex, NULL), __ATTR(dormant, S_IRUGO, show_dormant, NULL),