diff options
| -rw-r--r-- | drivers/infiniband/hw/mlx5/main.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/infiniband/hw/mlx5/main.c b/drivers/infiniband/hw/mlx5/main.c index ecd3aebc46fe..a24431746377 100644 --- a/drivers/infiniband/hw/mlx5/main.c +++ b/drivers/infiniband/hw/mlx5/main.c | |||
| @@ -650,13 +650,13 @@ static int mlx5_ib_mmap(struct ib_ucontext *ibcontext, struct vm_area_struct *vm | |||
| 650 | return -EINVAL; | 650 | return -EINVAL; |
| 651 | 651 | ||
| 652 | idx = get_index(vma->vm_pgoff); | 652 | idx = get_index(vma->vm_pgoff); |
| 653 | if (idx >= uuari->num_uars) | ||
| 654 | return -EINVAL; | ||
| 655 | |||
| 653 | pfn = uar_index2pfn(dev, uuari->uars[idx].index); | 656 | pfn = uar_index2pfn(dev, uuari->uars[idx].index); |
| 654 | mlx5_ib_dbg(dev, "uar idx 0x%lx, pfn 0x%llx\n", idx, | 657 | mlx5_ib_dbg(dev, "uar idx 0x%lx, pfn 0x%llx\n", idx, |
| 655 | (unsigned long long)pfn); | 658 | (unsigned long long)pfn); |
| 656 | 659 | ||
| 657 | if (idx >= uuari->num_uars) | ||
| 658 | return -EINVAL; | ||
| 659 | |||
| 660 | vma->vm_page_prot = pgprot_writecombine(vma->vm_page_prot); | 660 | vma->vm_page_prot = pgprot_writecombine(vma->vm_page_prot); |
| 661 | if (io_remap_pfn_range(vma, vma->vm_start, pfn, | 661 | if (io_remap_pfn_range(vma, vma->vm_start, pfn, |
| 662 | PAGE_SIZE, vma->vm_page_prot)) | 662 | PAGE_SIZE, vma->vm_page_prot)) |
