From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx2.redhat.com (mx2.redhat.com [66.187.237.31]) by ozlabs.org (Postfix) with ESMTP id A931BDDFAC for ; Wed, 11 Mar 2009 19:45:41 +1100 (EST) From: David Howells Subject: [PATCH] eHEA: Don't do memory allocation under lock if not necessary To: raisch@de.ibm.com, themann@de.ibm.com, tklein@de.ibm.com Date: Wed, 11 Mar 2009 08:44:57 +0000 Message-ID: <20090311084456.9190.52805.stgit@warthog.procyon.org.uk> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Cc: linuxppc-dev@ozlabs.org, netdev@vger.kernel.org List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , In ehea_probe_adapter() the initial memory allocation and initialisation does not need to be done with the ehea_fw_handles.lock semaphore held. Doing so extends the amount of time the lock is held unnecessarily. Signed-off-by: David Howells --- drivers/net/ehea/ehea_main.c | 13 ++++++------- 1 files changed, 6 insertions(+), 7 deletions(-) diff --git a/drivers/net/ehea/ehea_main.c b/drivers/net/ehea/ehea_main.c index dfe9226..34480ae 100644 --- a/drivers/net/ehea/ehea_main.c +++ b/drivers/net/ehea/ehea_main.c @@ -3370,18 +3370,19 @@ static int __devinit ehea_probe_adapter(struct of_device *dev, ehea_error("Invalid ibmebus device probed"); return -EINVAL; } - mutex_lock(&ehea_fw_handles.lock); adapter = kzalloc(sizeof(*adapter), GFP_KERNEL); if (!adapter) { - ret = -ENOMEM; dev_err(&dev->dev, "no mem for ehea_adapter\n"); - goto out; + return -ENOMEM; } - list_add(&adapter->list, &adapter_list); - adapter->ofdev = dev; + adapter->pd = EHEA_PD_ID; + + mutex_lock(&ehea_fw_handles.lock); + + list_add(&adapter->list, &adapter_list); adapter_handle = of_get_property(dev->node, "ibm,hea-handle", NULL); @@ -3395,8 +3396,6 @@ static int __devinit ehea_probe_adapter(struct of_device *dev, goto out_free_ad; } - adapter->pd = EHEA_PD_ID; - dev->dev.driver_data = adapter;