[PATCH 07/17] Update the memstick driver to use idr helper functions.
Signed-off-by: Lee Duncan --- drivers/memstick/core/memstick.c | 19 --- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/drivers/memstick/core/memstick.c b/drivers/memstick/core/memstick.c index a0547dbf9806..8f40a3d5108b 100644 --- a/drivers/memstick/core/memstick.c +++ b/drivers/memstick/core/memstick.c @@ -512,25 +512,16 @@ int memstick_add_host(struct memstick_host *host) { int rc; - idr_preload(GFP_KERNEL); - spin_lock(_host_lock); - - rc = idr_alloc(_host_idr, host, 0, 0, GFP_NOWAIT); - if (rc >= 0) - host->id = rc; - - spin_unlock(_host_lock); - idr_preload_end(); + rc = idr_get_index(_host_idr, _host_lock, host); if (rc < 0) return rc; + host->id = rc; dev_set_name(>dev, "memstick%u", host->id); rc = device_add(>dev); if (rc) { - spin_lock(_host_lock); - idr_remove(_host_idr, host->id); - spin_unlock(_host_lock); + idr_put_index(_host_idr, _host_lock, host->id); return rc; } @@ -554,9 +545,7 @@ void memstick_remove_host(struct memstick_host *host) host->set_param(host, MEMSTICK_POWER, MEMSTICK_POWER_OFF); mutex_unlock(>lock); - spin_lock(_host_lock); - idr_remove(_host_idr, host->id); - spin_unlock(_host_lock); + idr_put_index(_host_idr, _host_lock, host->id); device_del(>dev); } EXPORT_SYMBOL(memstick_remove_host); -- 2.1.4 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH 07/17] Update the memstick driver to use idr helper functions.
Signed-off-by: Lee Duncan--- drivers/memstick/core/memstick.c | 19 --- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/drivers/memstick/core/memstick.c b/drivers/memstick/core/memstick.c index a0547dbf9806..8f40a3d5108b 100644 --- a/drivers/memstick/core/memstick.c +++ b/drivers/memstick/core/memstick.c @@ -512,25 +512,16 @@ int memstick_add_host(struct memstick_host *host) { int rc; - idr_preload(GFP_KERNEL); - spin_lock(_host_lock); - - rc = idr_alloc(_host_idr, host, 0, 0, GFP_NOWAIT); - if (rc >= 0) - host->id = rc; - - spin_unlock(_host_lock); - idr_preload_end(); + rc = idr_get_index(_host_idr, _host_lock, host); if (rc < 0) return rc; + host->id = rc; dev_set_name(>dev, "memstick%u", host->id); rc = device_add(>dev); if (rc) { - spin_lock(_host_lock); - idr_remove(_host_idr, host->id); - spin_unlock(_host_lock); + idr_put_index(_host_idr, _host_lock, host->id); return rc; } @@ -554,9 +545,7 @@ void memstick_remove_host(struct memstick_host *host) host->set_param(host, MEMSTICK_POWER, MEMSTICK_POWER_OFF); mutex_unlock(>lock); - spin_lock(_host_lock); - idr_remove(_host_idr, host->id); - spin_unlock(_host_lock); + idr_put_index(_host_idr, _host_lock, host->id); device_del(>dev); } EXPORT_SYMBOL(memstick_remove_host); -- 2.1.4 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH 07/17] Update the memstick driver to use idr helper functions.
Signed-off-by: Lee Duncan --- drivers/memstick/core/memstick.c | 19 --- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/drivers/memstick/core/memstick.c b/drivers/memstick/core/memstick.c index a0547dbf9806..8f40a3d5108b 100644 --- a/drivers/memstick/core/memstick.c +++ b/drivers/memstick/core/memstick.c @@ -512,25 +512,16 @@ int memstick_add_host(struct memstick_host *host) { int rc; - idr_preload(GFP_KERNEL); - spin_lock(_host_lock); - - rc = idr_alloc(_host_idr, host, 0, 0, GFP_NOWAIT); - if (rc >= 0) - host->id = rc; - - spin_unlock(_host_lock); - idr_preload_end(); + rc = idr_get_index(_host_idr, _host_lock, host); if (rc < 0) return rc; + host->id = rc; dev_set_name(>dev, "memstick%u", host->id); rc = device_add(>dev); if (rc) { - spin_lock(_host_lock); - idr_remove(_host_idr, host->id); - spin_unlock(_host_lock); + idr_put_index(_host_idr, _host_lock, host->id); return rc; } @@ -554,9 +545,7 @@ void memstick_remove_host(struct memstick_host *host) host->set_param(host, MEMSTICK_POWER, MEMSTICK_POWER_OFF); mutex_unlock(>lock); - spin_lock(_host_lock); - idr_remove(_host_idr, host->id); - spin_unlock(_host_lock); + idr_put_index(_host_idr, _host_lock, host->id); device_del(>dev); } EXPORT_SYMBOL(memstick_remove_host); -- 2.1.4 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH 07/17] Update the memstick driver to use idr helper functions.
Signed-off-by: Lee Duncan--- drivers/memstick/core/memstick.c | 19 --- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/drivers/memstick/core/memstick.c b/drivers/memstick/core/memstick.c index a0547dbf9806..8f40a3d5108b 100644 --- a/drivers/memstick/core/memstick.c +++ b/drivers/memstick/core/memstick.c @@ -512,25 +512,16 @@ int memstick_add_host(struct memstick_host *host) { int rc; - idr_preload(GFP_KERNEL); - spin_lock(_host_lock); - - rc = idr_alloc(_host_idr, host, 0, 0, GFP_NOWAIT); - if (rc >= 0) - host->id = rc; - - spin_unlock(_host_lock); - idr_preload_end(); + rc = idr_get_index(_host_idr, _host_lock, host); if (rc < 0) return rc; + host->id = rc; dev_set_name(>dev, "memstick%u", host->id); rc = device_add(>dev); if (rc) { - spin_lock(_host_lock); - idr_remove(_host_idr, host->id); - spin_unlock(_host_lock); + idr_put_index(_host_idr, _host_lock, host->id); return rc; } @@ -554,9 +545,7 @@ void memstick_remove_host(struct memstick_host *host) host->set_param(host, MEMSTICK_POWER, MEMSTICK_POWER_OFF); mutex_unlock(>lock); - spin_lock(_host_lock); - idr_remove(_host_idr, host->id); - spin_unlock(_host_lock); + idr_put_index(_host_idr, _host_lock, host->id); device_del(>dev); } EXPORT_SYMBOL(memstick_remove_host); -- 2.1.4 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/