|
@@ -1173,7 +1173,7 @@ static void mlx4_ib_disassociate_ucontext(struct ib_ucontext *ibcontext)
|
|
|
/* need to protect from a race on closing the vma as part of
|
|
|
* mlx4_ib_vma_close().
|
|
|
*/
|
|
|
- down_read(&owning_mm->mmap_sem);
|
|
|
+ down_write(&owning_mm->mmap_sem);
|
|
|
for (i = 0; i < HW_BAR_COUNT; i++) {
|
|
|
vma = context->hw_bar_info[i].vma;
|
|
|
if (!vma)
|
|
@@ -1191,7 +1191,7 @@ static void mlx4_ib_disassociate_ucontext(struct ib_ucontext *ibcontext)
|
|
|
context->hw_bar_info[i].vma->vm_ops = NULL;
|
|
|
}
|
|
|
|
|
|
- up_read(&owning_mm->mmap_sem);
|
|
|
+ up_write(&owning_mm->mmap_sem);
|
|
|
mmput(owning_mm);
|
|
|
put_task_struct(owning_process);
|
|
|
}
|