diff options
Diffstat (limited to 'drivers/infiniband/core')
| -rw-r--r-- | drivers/infiniband/core/mad.c | 4 | ||||
| -rw-r--r-- | drivers/infiniband/core/umem.c | 2 | ||||
| -rw-r--r-- | drivers/infiniband/core/uverbs_main.c | 2 |
3 files changed, 5 insertions, 3 deletions
diff --git a/drivers/infiniband/core/mad.c b/drivers/infiniband/core/mad.c index fbe16d5250a4..1adf2efd3cb3 100644 --- a/drivers/infiniband/core/mad.c +++ b/drivers/infiniband/core/mad.c | |||
| @@ -747,7 +747,9 @@ static int handle_outgoing_dr_smp(struct ib_mad_agent_private *mad_agent_priv, | |||
| 747 | break; | 747 | break; |
| 748 | case IB_MAD_RESULT_SUCCESS | IB_MAD_RESULT_CONSUMED: | 748 | case IB_MAD_RESULT_SUCCESS | IB_MAD_RESULT_CONSUMED: |
| 749 | kmem_cache_free(ib_mad_cache, mad_priv); | 749 | kmem_cache_free(ib_mad_cache, mad_priv); |
| 750 | break; | 750 | kfree(local); |
| 751 | ret = 1; | ||
| 752 | goto out; | ||
| 751 | case IB_MAD_RESULT_SUCCESS: | 753 | case IB_MAD_RESULT_SUCCESS: |
| 752 | /* Treat like an incoming receive MAD */ | 754 | /* Treat like an incoming receive MAD */ |
| 753 | port_priv = ib_get_mad_port(mad_agent_priv->agent.device, | 755 | port_priv = ib_get_mad_port(mad_agent_priv->agent.device, |
diff --git a/drivers/infiniband/core/umem.c b/drivers/infiniband/core/umem.c index fe78f7d25099..a1768dbb0720 100644 --- a/drivers/infiniband/core/umem.c +++ b/drivers/infiniband/core/umem.c | |||
| @@ -150,7 +150,7 @@ struct ib_umem *ib_umem_get(struct ib_ucontext *context, unsigned long addr, | |||
| 150 | ret = 0; | 150 | ret = 0; |
| 151 | while (npages) { | 151 | while (npages) { |
| 152 | ret = get_user_pages(current, current->mm, cur_base, | 152 | ret = get_user_pages(current, current->mm, cur_base, |
| 153 | min_t(int, npages, | 153 | min_t(unsigned long, npages, |
| 154 | PAGE_SIZE / sizeof (struct page *)), | 154 | PAGE_SIZE / sizeof (struct page *)), |
| 155 | 1, !umem->writable, page_list, vma_list); | 155 | 1, !umem->writable, page_list, vma_list); |
| 156 | 156 | ||
diff --git a/drivers/infiniband/core/uverbs_main.c b/drivers/infiniband/core/uverbs_main.c index f806da184b51..caed42bf7ef5 100644 --- a/drivers/infiniband/core/uverbs_main.c +++ b/drivers/infiniband/core/uverbs_main.c | |||
| @@ -423,7 +423,7 @@ static void ib_uverbs_async_handler(struct ib_uverbs_file *file, | |||
| 423 | unsigned long flags; | 423 | unsigned long flags; |
| 424 | 424 | ||
| 425 | spin_lock_irqsave(&file->async_file->lock, flags); | 425 | spin_lock_irqsave(&file->async_file->lock, flags); |
| 426 | if (!file->async_file->is_closed) { | 426 | if (file->async_file->is_closed) { |
| 427 | spin_unlock_irqrestore(&file->async_file->lock, flags); | 427 | spin_unlock_irqrestore(&file->async_file->lock, flags); |
| 428 | return; | 428 | return; |
| 429 | } | 429 | } |
