From patchwork Wed Feb 6 19:40:38 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tejun Heo X-Patchwork-Id: 2107041 Return-Path: X-Original-To: patchwork-kvm@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork1.kernel.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by patchwork1.kernel.org (Postfix) with ESMTP id 9CE383FCFC for ; Wed, 6 Feb 2013 19:55:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1030257Ab3BFTvM (ORCPT ); Wed, 6 Feb 2013 14:51:12 -0500 Received: from mail-oa0-f46.google.com ([209.85.219.46]:39999 "EHLO mail-oa0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757801Ab3BFTvK (ORCPT ); Wed, 6 Feb 2013 14:51:10 -0500 Received: by mail-oa0-f46.google.com with SMTP id k1so1940754oag.19 for ; Wed, 06 Feb 2013 11:51:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:sender:from:to:cc:subject:date:message-id:x-mailer :in-reply-to:references; bh=G7BD0zJA53kHeu6SDz2aSm5LIqlNkWJQamx8Pr0nxWg=; b=uYXU4cUbj19Jz3pvS9vyTKOyjxj0ZAgBXfYRPR3EajenaNCzzWMuIo/CqZHS3Axw41 nXvPQ7N4C2ZkwqDMlVP2YpAm5FqeE2789VlkTTL+3x7TpxzlFUBzv8TPLgu7BKPAG9bH F+M4AbD3pQZ5Gj9OyT2mp2C1BodVDXmP6tPnouyWGD/nmwNDTq2HMqXwk/fZBw5/BTxd vDXKAEgZZYkt2FKsEmEQLdjxy3L6WAfoZm2SgiYTNaAftz4WxTFiRBX1Sp5i32sw3y6m A5WzkwmEJmugYqtlBmmdJJT8IAPIXQmF4BHxgtiK7+QwSDLZYiuTS+uuPq7X64wwSJSv Vnzg== X-Received: by 10.182.3.134 with SMTP id c6mr22110521obc.10.1360180269720; Wed, 06 Feb 2013 11:51:09 -0800 (PST) Received: from htj.dyndns.org (c-69-181-251-227.hsd1.ca.comcast.net. [69.181.251.227]) by mx.google.com with ESMTPS id l5sm39989590pax.10.2013.02.06.11.51.08 (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Wed, 06 Feb 2013 11:51:09 -0800 (PST) From: Tejun Heo To: akpm@linux-foundation.org Cc: linux-kernel@vger.kernel.org, Tejun Heo , kvm@vger.kernel.org Subject: [PATCH 66/77] vfio: convert to idr_alloc() Date: Wed, 6 Feb 2013 11:40:38 -0800 Message-Id: <1360179649-22465-67-git-send-email-tj@kernel.org> X-Mailer: git-send-email 1.8.1 In-Reply-To: <1360179649-22465-1-git-send-email-tj@kernel.org> References: <1360179649-22465-1-git-send-email-tj@kernel.org> Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org Convert to the much saner new idr interface. Only compile tested. v2: Restore accidentally dropped "index 0" comment as suggested by Alex. Signed-off-by: Tejun Heo Acked-by: Alex Williamson Cc: kvm@vger.kernel.org --- drivers/vfio/vfio.c | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/drivers/vfio/vfio.c b/drivers/vfio/vfio.c index 12c264d..7f61abf 100644 --- a/drivers/vfio/vfio.c +++ b/drivers/vfio/vfio.c @@ -139,23 +139,8 @@ EXPORT_SYMBOL_GPL(vfio_unregister_iommu_driver); */ static int vfio_alloc_group_minor(struct vfio_group *group) { - int ret, minor; - -again: - if (unlikely(idr_pre_get(&vfio.group_idr, GFP_KERNEL) == 0)) - return -ENOMEM; - /* index 0 is used by /dev/vfio/vfio */ - ret = idr_get_new_above(&vfio.group_idr, group, 1, &minor); - if (ret == -EAGAIN) - goto again; - if (ret || minor > MINORMASK) { - if (minor > MINORMASK) - idr_remove(&vfio.group_idr, minor); - return -ENOSPC; - } - - return minor; + return idr_alloc(&vfio.group_idr, group, 1, MINORMASK + 1, GFP_KERNEL); } static void vfio_free_group_minor(int minor)