diff options
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/atm/nicstar.c | 5 | ||||
| -rw-r--r-- | drivers/block/drbd/drbd_main.c | 6 | ||||
| -rw-r--r-- | drivers/firewire/core-cdev.c | 3 | ||||
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c | 4 | ||||
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 10 | ||||
| -rw-r--r-- | drivers/net/wireless/marvell/mwifiex/txrx.c | 4 | ||||
| -rw-r--r-- | drivers/target/target_core_user.c | 4 |
7 files changed, 12 insertions, 24 deletions
diff --git a/drivers/atm/nicstar.c b/drivers/atm/nicstar.c index cb28579e8a94..d879f3bca107 100644 --- a/drivers/atm/nicstar.c +++ b/drivers/atm/nicstar.c | |||
| @@ -1980,13 +1980,12 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe) | |||
| 1980 | card->lbfqc = ns_stat_lfbqc_get(stat); | 1980 | card->lbfqc = ns_stat_lfbqc_get(stat); |
| 1981 | 1981 | ||
| 1982 | id = le32_to_cpu(rsqe->buffer_handle); | 1982 | id = le32_to_cpu(rsqe->buffer_handle); |
| 1983 | skb = idr_find(&card->idr, id); | 1983 | skb = idr_remove(&card->idr, id); |
| 1984 | if (!skb) { | 1984 | if (!skb) { |
| 1985 | RXPRINTK(KERN_ERR | 1985 | RXPRINTK(KERN_ERR |
| 1986 | "nicstar%d: idr_find() failed!\n", card->index); | 1986 | "nicstar%d: skb not found!\n", card->index); |
| 1987 | return; | 1987 | return; |
| 1988 | } | 1988 | } |
| 1989 | idr_remove(&card->idr, id); | ||
| 1990 | dma_sync_single_for_cpu(&card->pcidev->dev, | 1989 | dma_sync_single_for_cpu(&card->pcidev->dev, |
| 1991 | NS_PRV_DMA(skb), | 1990 | NS_PRV_DMA(skb), |
| 1992 | (NS_PRV_BUFTYPE(skb) == BUF_SM | 1991 | (NS_PRV_BUFTYPE(skb) == BUF_SM |
diff --git a/drivers/block/drbd/drbd_main.c b/drivers/block/drbd/drbd_main.c index 83482721bc01..6bb3b80e7e51 100644 --- a/drivers/block/drbd/drbd_main.c +++ b/drivers/block/drbd/drbd_main.c | |||
| @@ -2915,11 +2915,9 @@ out_idr_remove_vol: | |||
| 2915 | idr_remove(&connection->peer_devices, vnr); | 2915 | idr_remove(&connection->peer_devices, vnr); |
| 2916 | out_idr_remove_from_resource: | 2916 | out_idr_remove_from_resource: |
| 2917 | for_each_connection(connection, resource) { | 2917 | for_each_connection(connection, resource) { |
| 2918 | peer_device = idr_find(&connection->peer_devices, vnr); | 2918 | peer_device = idr_remove(&connection->peer_devices, vnr); |
| 2919 | if (peer_device) { | 2919 | if (peer_device) |
| 2920 | idr_remove(&connection->peer_devices, vnr); | ||
| 2921 | kref_put(&connection->kref, drbd_destroy_connection); | 2920 | kref_put(&connection->kref, drbd_destroy_connection); |
| 2922 | } | ||
| 2923 | } | 2921 | } |
| 2924 | for_each_peer_device_safe(peer_device, tmp_peer_device, device) { | 2922 | for_each_peer_device_safe(peer_device, tmp_peer_device, device) { |
| 2925 | list_del(&peer_device->peer_devices); | 2923 | list_del(&peer_device->peer_devices); |
diff --git a/drivers/firewire/core-cdev.c b/drivers/firewire/core-cdev.c index aee149bdf4c0..a301fcf46e88 100644 --- a/drivers/firewire/core-cdev.c +++ b/drivers/firewire/core-cdev.c | |||
| @@ -1307,8 +1307,7 @@ static void iso_resource_work(struct work_struct *work) | |||
| 1307 | */ | 1307 | */ |
| 1308 | if (r->todo == ISO_RES_REALLOC && !success && | 1308 | if (r->todo == ISO_RES_REALLOC && !success && |
| 1309 | !client->in_shutdown && | 1309 | !client->in_shutdown && |
| 1310 | idr_find(&client->resource_idr, r->resource.handle)) { | 1310 | idr_remove(&client->resource_idr, r->resource.handle)) { |
| 1311 | idr_remove(&client->resource_idr, r->resource.handle); | ||
| 1312 | client_put(client); | 1311 | client_put(client); |
| 1313 | free = true; | 1312 | free = true; |
| 1314 | } | 1313 | } |
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c index c02db01f6583..0218cea6be4d 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c | |||
| @@ -70,10 +70,10 @@ static void amdgpu_bo_list_destroy(struct amdgpu_fpriv *fpriv, int id) | |||
| 70 | struct amdgpu_bo_list *list; | 70 | struct amdgpu_bo_list *list; |
| 71 | 71 | ||
| 72 | mutex_lock(&fpriv->bo_list_lock); | 72 | mutex_lock(&fpriv->bo_list_lock); |
| 73 | list = idr_find(&fpriv->bo_list_handles, id); | 73 | list = idr_remove(&fpriv->bo_list_handles, id); |
| 74 | if (list) { | 74 | if (list) { |
| 75 | /* Another user may have a reference to this list still */ | ||
| 75 | mutex_lock(&list->lock); | 76 | mutex_lock(&list->lock); |
| 76 | idr_remove(&fpriv->bo_list_handles, id); | ||
| 77 | mutex_unlock(&list->lock); | 77 | mutex_unlock(&list->lock); |
| 78 | amdgpu_bo_list_free(list); | 78 | amdgpu_bo_list_free(list); |
| 79 | } | 79 | } |
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c index 400c66ba4c6b..cf0500671353 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | |||
| @@ -135,15 +135,11 @@ static int amdgpu_ctx_free(struct amdgpu_fpriv *fpriv, uint32_t id) | |||
| 135 | struct amdgpu_ctx *ctx; | 135 | struct amdgpu_ctx *ctx; |
| 136 | 136 | ||
| 137 | mutex_lock(&mgr->lock); | 137 | mutex_lock(&mgr->lock); |
| 138 | ctx = idr_find(&mgr->ctx_handles, id); | 138 | ctx = idr_remove(&mgr->ctx_handles, id); |
| 139 | if (ctx) { | 139 | if (ctx) |
| 140 | idr_remove(&mgr->ctx_handles, id); | ||
| 141 | kref_put(&ctx->refcount, amdgpu_ctx_do_release); | 140 | kref_put(&ctx->refcount, amdgpu_ctx_do_release); |
| 142 | mutex_unlock(&mgr->lock); | ||
| 143 | return 0; | ||
| 144 | } | ||
| 145 | mutex_unlock(&mgr->lock); | 141 | mutex_unlock(&mgr->lock); |
| 146 | return -EINVAL; | 142 | return ctx ? 0 : -EINVAL; |
| 147 | } | 143 | } |
| 148 | 144 | ||
| 149 | static int amdgpu_ctx_query(struct amdgpu_device *adev, | 145 | static int amdgpu_ctx_query(struct amdgpu_device *adev, |
diff --git a/drivers/net/wireless/marvell/mwifiex/txrx.c b/drivers/net/wireless/marvell/mwifiex/txrx.c index abdd0cf710bf..fac28bd8fbee 100644 --- a/drivers/net/wireless/marvell/mwifiex/txrx.c +++ b/drivers/net/wireless/marvell/mwifiex/txrx.c | |||
| @@ -346,9 +346,7 @@ void mwifiex_parse_tx_status_event(struct mwifiex_private *priv, | |||
| 346 | return; | 346 | return; |
| 347 | 347 | ||
| 348 | spin_lock_irqsave(&priv->ack_status_lock, flags); | 348 | spin_lock_irqsave(&priv->ack_status_lock, flags); |
| 349 | ack_skb = idr_find(&priv->ack_status_frames, tx_status->tx_token_id); | 349 | ack_skb = idr_remove(&priv->ack_status_frames, tx_status->tx_token_id); |
| 350 | if (ack_skb) | ||
| 351 | idr_remove(&priv->ack_status_frames, tx_status->tx_token_id); | ||
| 352 | spin_unlock_irqrestore(&priv->ack_status_lock, flags); | 350 | spin_unlock_irqrestore(&priv->ack_status_lock, flags); |
| 353 | 351 | ||
| 354 | if (ack_skb) { | 352 | if (ack_skb) { |
diff --git a/drivers/target/target_core_user.c b/drivers/target/target_core_user.c index 8041710b6972..18f0ec2e1f9c 100644 --- a/drivers/target/target_core_user.c +++ b/drivers/target/target_core_user.c | |||
| @@ -642,9 +642,7 @@ static unsigned int tcmu_handle_completions(struct tcmu_dev *udev) | |||
| 642 | WARN_ON(tcmu_hdr_get_op(entry->hdr.len_op) != TCMU_OP_CMD); | 642 | WARN_ON(tcmu_hdr_get_op(entry->hdr.len_op) != TCMU_OP_CMD); |
| 643 | 643 | ||
| 644 | spin_lock(&udev->commands_lock); | 644 | spin_lock(&udev->commands_lock); |
| 645 | cmd = idr_find(&udev->commands, entry->hdr.cmd_id); | 645 | cmd = idr_remove(&udev->commands, entry->hdr.cmd_id); |
| 646 | if (cmd) | ||
| 647 | idr_remove(&udev->commands, cmd->cmd_id); | ||
| 648 | spin_unlock(&udev->commands_lock); | 646 | spin_unlock(&udev->commands_lock); |
| 649 | 647 | ||
| 650 | if (!cmd) { | 648 | if (!cmd) { |
