From patchwork Tue Dec 18 22:14:16 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiri Pirko X-Patchwork-Id: 207225 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 6A53B2C008E for ; Wed, 19 Dec 2012 09:14:40 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932138Ab2LRWOe (ORCPT ); Tue, 18 Dec 2012 17:14:34 -0500 Received: from mail-ee0-f44.google.com ([74.125.83.44]:47545 "EHLO mail-ee0-f44.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753764Ab2LRWOc (ORCPT ); Tue, 18 Dec 2012 17:14:32 -0500 Received: by mail-ee0-f44.google.com with SMTP id b47so646739eek.17 for ; Tue, 18 Dec 2012 14:14:31 -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=ZGbM20NimGxMVl3ov/7MWpGtryV0RpxO9OKH9BG7MgVcmDWvehNtga4tUA1duXIj0Q zvjO5jpvb3nKmz1erShvyqsCylzFv6G+SlWjQAwjK7IwiwCSiIgh5C6ZAE3y0oe5oysJ njfzAZSt7qjBU+F5xPGVGF11YEnVa2clxapw84ffrUS8ewRZ16Mg4H8Hsrj4YyX+YIB6 uMNyswJyaSUQuCMVBTiNNJ6/DltPzXwiEMLITaljrqYHKtKUJjaWObama1kRFb0/249D AY3ST6yaGVXICw20UOapuf/clK9Ds5xm/SEitiho73GRJcLGHILkmQX7u8ZxG2KzTkHB angQ== X-Received: by 10.14.223.200 with SMTP id v48mr9204890eep.24.1355868871457; Tue, 18 Dec 2012 14:14:31 -0800 (PST) Received: from localhost (ip-89-103-8-129.net.upcbroadband.cz. [89.103.8.129]) by mx.google.com with ESMTPS id w44sm5797149eep.6.2012.12.18.14.14.29 (version=TLSv1/SSLv3 cipher=OTHER); Tue, 18 Dec 2012 14:14:30 -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: Tue, 18 Dec 2012 23:14:16 +0100 Message-Id: <1355868858-1713-3-git-send-email-jiri@resnulli.us> X-Mailer: git-send-email 1.8.0 In-Reply-To: <1355868858-1713-1-git-send-email-jiri@resnulli.us> References: <1355868858-1713-1-git-send-email-jiri@resnulli.us> X-Gm-Message-State: ALoCoQlFs7TOuoiFbn3gsqMcujyOMswffpZ+b+wWO/EyoCOxKsaa2bjbmLz1jG8kURJ7HE1FP5XZ 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),