From patchwork Fri May 1 18:33:39 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tejun Heo X-Patchwork-Id: 467087 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 07A161402B2 for ; Sat, 2 May 2015 04:34:34 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=fail reason="verification failed; unprotected key" header.d=gmail.com header.i=@gmail.com header.b=qiCkupH9; dkim-adsp=none (unprotected policy); dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752103AbbEASea (ORCPT ); Fri, 1 May 2015 14:34:30 -0400 Received: from mail-qc0-f179.google.com ([209.85.216.179]:33469 "EHLO mail-qc0-f179.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751304AbbEASdw (ORCPT ); Fri, 1 May 2015 14:33:52 -0400 Received: by qcrf4 with SMTP id f4so46872402qcr.0; Fri, 01 May 2015 11:33:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=Fd0ufUvCPgQPkF0Bn3+Jl+2FgxLNQ8Q6RpGmvY3pYms=; b=qiCkupH91oPwgrQRFoVMB8jwx5/UsDHJ2TrgSSBMsYL2yslqQh7ibP4Op757pXzYB1 rAd4PNNjvJxTvWPOULSNJzLfQF917omIkRkSEcQwVFSLtBtT/zX9mRcM6CA1K5XiXn/B U2pz2yOjClR6Nwhymid4QhSBvdQMMbcucj2ets/Ow/mSrffYz4GGxU7uhqzTHDTmeMUh 8h46gCoxEZKjIyN6FzcIdmKUjo4y4DgBEEqaIPQZgFVFjTAGQnd5QO+KJhx7PiI1j9hh wNrS8/35wSGpBWQuCeasmvd7IcaeQePtlvYvg419Qc+HWXCwjzQEEnrO+eFJMqxi3nsn EyFQ== X-Received: by 10.140.80.170 with SMTP id c39mr12404504qgd.55.1430505231620; Fri, 01 May 2015 11:33:51 -0700 (PDT) Received: from htj.duckdns.org.lan (207-38-238-8.c3-0.wsd-ubr1.qens-wsd.ny.cable.rcn.com. [207.38.238.8]) by mx.google.com with ESMTPSA id w92sm3871234qgd.47.2015.05.01.11.33.50 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 01 May 2015 11:33:50 -0700 (PDT) From: Tejun Heo To: davem@davemloft.net, akpm@linux-foundation.org Cc: linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Tejun Heo Subject: [PATCH 2/3] netconsole: make all dynamic netconsoles share a mutex Date: Fri, 1 May 2015 14:33:39 -0400 Message-Id: <1430505220-25160-3-git-send-email-tj@kernel.org> X-Mailer: git-send-email 2.1.0 In-Reply-To: <1430505220-25160-1-git-send-email-tj@kernel.org> References: <1430505220-25160-1-git-send-email-tj@kernel.org> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Currently, each dynamic netconsole_target uses its own separate mutex to synchronize the configuration operations. This patch replaces the per-netconsole_target mutexes with a single mutex - dynamic_netconsole_mutex. The reduced granularity doesn't hurt anything, the code is minutely simpler and this'd allow adding operations which should be synchronized across all dynamic netconsoles. Signed-off-by: Tejun Heo Cc: David Miller --- drivers/net/netconsole.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c index 09d4e12..d9f0f85 100644 --- a/drivers/net/netconsole.c +++ b/drivers/net/netconsole.c @@ -105,13 +105,13 @@ struct netconsole_target { struct config_item item; #endif bool enabled; - struct mutex mutex; struct netpoll np; }; #ifdef CONFIG_NETCONSOLE_DYNAMIC static struct configfs_subsystem netconsole_subsys; +static DEFINE_MUTEX(dynamic_netconsole_mutex); static int __init dynamic_netconsole_init(void) { @@ -185,7 +185,6 @@ static struct netconsole_target *alloc_param_target(char *target_config) strlcpy(nt->np.dev_name, "eth0", IFNAMSIZ); nt->np.local_port = 6665; nt->np.remote_port = 6666; - mutex_init(&nt->mutex); eth_broadcast_addr(nt->np.remote_mac); /* Parse parameters and setup netpoll */ @@ -562,10 +561,10 @@ static ssize_t netconsole_target_attr_store(struct config_item *item, struct netconsole_target_attr *na = container_of(attr, struct netconsole_target_attr, attr); - mutex_lock(&nt->mutex); + mutex_lock(&dynamic_netconsole_mutex); if (na->store) ret = na->store(nt, buf, count); - mutex_unlock(&nt->mutex); + mutex_unlock(&dynamic_netconsole_mutex); return ret; } @@ -604,7 +603,6 @@ static struct config_item *make_netconsole_target(struct config_group *group, strlcpy(nt->np.dev_name, "eth0", IFNAMSIZ); nt->np.local_port = 6665; nt->np.remote_port = 6666; - mutex_init(&nt->mutex); eth_broadcast_addr(nt->np.remote_mac); /* Initialize the config_item member */