mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 12:28:41 +08:00
gpio: convert to idr_alloc()
Convert to the much saner new idr interface. Signed-off-by: Tejun Heo <tj@kernel.org> Acked-by: Linus Walleij <linus.walleij@linaro.org> Cc: Grant Likely <grant.likely@secretlab.ca> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
37b61890d7
commit
62f516b8d6
@ -411,15 +411,10 @@ static int gpio_setup_irq(struct gpio_desc *desc, struct device *dev,
|
||||
goto err_out;
|
||||
}
|
||||
|
||||
do {
|
||||
ret = -ENOMEM;
|
||||
if (idr_pre_get(&dirent_idr, GFP_KERNEL))
|
||||
ret = idr_get_new_above(&dirent_idr, value_sd,
|
||||
1, &id);
|
||||
} while (ret == -EAGAIN);
|
||||
|
||||
if (ret)
|
||||
ret = idr_alloc(&dirent_idr, value_sd, 1, 0, GFP_KERNEL);
|
||||
if (ret < 0)
|
||||
goto free_sd;
|
||||
id = ret;
|
||||
|
||||
desc->flags &= GPIO_FLAGS_MASK;
|
||||
desc->flags |= (unsigned long)id << ID_SHIFT;
|
||||
|
Loading…
Reference in New Issue
Block a user