Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

vfio: convert to idr_alloc()

Convert to the much saner new idr interface.

Signed-off-by: Tejun Heo <tj@kernel.org>
Acked-by: Alex Williamson <alex.williamson@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

authored by

Tejun Heo and committed by
Linus Torvalds
a1c36b16 6d770931

+1 -16
+1 -16
drivers/vfio/vfio.c
··· 139 139 */ 140 140 static int vfio_alloc_group_minor(struct vfio_group *group) 141 141 { 142 - int ret, minor; 143 - 144 - again: 145 - if (unlikely(idr_pre_get(&vfio.group_idr, GFP_KERNEL) == 0)) 146 - return -ENOMEM; 147 - 148 142 /* index 0 is used by /dev/vfio/vfio */ 149 - ret = idr_get_new_above(&vfio.group_idr, group, 1, &minor); 150 - if (ret == -EAGAIN) 151 - goto again; 152 - if (ret || minor > MINORMASK) { 153 - if (minor > MINORMASK) 154 - idr_remove(&vfio.group_idr, minor); 155 - return -ENOSPC; 156 - } 157 - 158 - return minor; 143 + return idr_alloc(&vfio.group_idr, group, 1, MINORMASK + 1, GFP_KERNEL); 159 144 } 160 145 161 146 static void vfio_free_group_minor(int minor)