From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752405AbbJBKQZ (ORCPT ); Fri, 2 Oct 2015 06:16:25 -0400 Received: from mx2.suse.de ([195.135.220.15]:51571 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752338AbbJBKQV convert rfc822-to-8bit (ORCPT ); Fri, 2 Oct 2015 06:16:21 -0400 From: Johannes Thumshirn To: Lee Duncan Cc: linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org, James Bottomley , Tejun Heo , Hannes Reinecke , Christoph Hellwig , Greg Kroah-Hartman Subject: Re: [PATCH 5/5] base: soc: siplify ida usage References: Date: Fri, 02 Oct 2015 12:16:19 +0200 In-Reply-To: (Lee Duncan's message of "Thu, 1 Oct 2015 11:59:09 -0700") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Lee Duncan writes: > Simplify ida index allocation and removal by > using the ida_simple_* helper functions > > Signed-off-by: Lee Duncan > --- > drivers/base/soc.c | 21 +++++---------------- > 1 file changed, 5 insertions(+), 16 deletions(-) > > diff --git a/drivers/base/soc.c b/drivers/base/soc.c > index 39fca01c8fa1..75b98aad6faf 100644 > --- a/drivers/base/soc.c > +++ b/drivers/base/soc.c > @@ -16,7 +16,6 @@ > #include > > static DEFINE_IDA(soc_ida); > -static DEFINE_SPINLOCK(soc_lock); > > static ssize_t soc_info_get(struct device *dev, > struct device_attribute *attr, > @@ -122,20 +121,10 @@ struct soc_device *soc_device_register(struct soc_device_attribute *soc_dev_attr > } > > /* Fetch a unique (reclaimable) SOC ID. */ > - do { > - if (!ida_pre_get(&soc_ida, GFP_KERNEL)) { > - ret = -ENOMEM; > - goto out2; > - } > - > - spin_lock(&soc_lock); > - ret = ida_get_new(&soc_ida, &soc_dev->soc_dev_num); > - spin_unlock(&soc_lock); > - > - } while (ret == -EAGAIN); > - > - if (ret) > + ret = ida_simple_get(&soc_ida, 0, 0, GFP_KERNEL); > + if (ret < 0) > goto out2; > + soc_dev->soc_dev_num = ret; > > soc_dev->attr = soc_dev_attr; > soc_dev->dev.bus = &soc_bus_type; > @@ -151,7 +140,7 @@ struct soc_device *soc_device_register(struct soc_device_attribute *soc_dev_attr > return soc_dev; > > out3: > - ida_remove(&soc_ida, soc_dev->soc_dev_num); > + ida_simple_remove(&soc_ida, soc_dev->soc_dev_num); > out2: > kfree(soc_dev); > out1: > @@ -161,7 +150,7 @@ out1: > /* Ensure soc_dev->attr is freed prior to calling soc_device_unregister. */ > void soc_device_unregister(struct soc_device *soc_dev) > { > - ida_remove(&soc_ida, soc_dev->soc_dev_num); > + ida_simple_remove(&soc_ida, soc_dev->soc_dev_num); > > device_unregister(&soc_dev->dev); > } Reviewed-by: Johannes Thumshirn -- Johannes Thumshirn Storage jthumshirn@suse.de +49 911 74053 689 SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg GF: Felix Imendörffer, Jane Smithard, Graham Norton HRB 21284 (AG Nürnberg) Key fingerprint = EC38 9CAB C2C4 F25D 8600 D0D0 0393 969D 2D76 0850