lkml.org 
[lkml]   [2024]   [Feb]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRE: [PATCH rdma-next v1 1/1] RDMA/mana_ib: Fix bug in creation of dma regions
Date
> 
> /* Hardware requires dma region to align to chosen page size */
> - page_sz = ib_umem_find_best_pgsz(umem, PAGE_SZ_BM, 0);
> + page_sz = ib_umem_find_best_pgsz(umem, PAGE_SZ_BM, virt);
> if (!page_sz) {
> ibdev_dbg(&dev->ib_dev, "failed to find page size.\n");
> return -ENOMEM;
> }

How about doing:
page_sz = ib_umem_find_best_pgsz(umem, PAGE_SZ_BM, force_zero_offset ? 0 : virt);

Will this work? This can get rid of the following while loop.

> +
> + if (force_zero_offset) {
> + while (ib_umem_dma_offset(umem, page_sz) && page_sz >
> PAGE_SIZE)
> + page_sz /= 2;
> + if (ib_umem_dma_offset(umem, page_sz) != 0) {
> + ibdev_dbg(&dev->ib_dev, "failed to find page size to
> force zero offset.\n");
> + return -ENOMEM;
> + }
> + }
> +

\
 
 \ /
  Last update: 2024-05-27 14:55    [W:1.172 / U:0.376 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site