> -----Original Message----- > From: Jason Gunthorpe <[email protected]> > Sent: Friday, November 06, 2020 8:40 AM > To: Xiong, Jianxin <[email protected]> > Cc: [email protected]; [email protected]; Doug Ledford > <[email protected]>; Leon Romanovsky > <[email protected]>; Sumit Semwal <[email protected]>; Christian Koenig > <[email protected]>; Vetter, Daniel > <[email protected]> > Subject: Re: [PATCH v8 1/5] RDMA/umem: Support importing dma-buf as user > memory region > > On Fri, Nov 06, 2020 at 04:34:07PM +0000, Xiong, Jianxin wrote: > > > > The user could specify a length that is beyond the dma buf, can the > > > dma buf length be checked during get? > > > > In order to check the length, the buffer needs to be mapped. That can be > > done. > > Do DMA bufs even have definitate immutable lengths? Going to be a probelm if > they can shrink
Good question. The buffer itself has fixed size. If for whatever reason the mapping is not full it must be temporary. If that does happen ib_umem_dmabuf_map_pages will undo the mapping and return error. It will be retried later via the pagefault handler. > > > > Also page_size can be 0 because iova is not OK. iova should be > > > checked for alignment during get as well: > > > > > > iova & (PAGE_SIZE-1) == umem->addr & (PAGE_SIZE-1) > > > > If ib_umem_dmabuf_map_pages is called during get this error is > > automatically caught. > > The ib_umem_find_best_pgsz() checks this equation, yes. > > So you'd map the sgl before allocating the mkey? This then checks the length > and iova? Yes > > Jason _______________________________________________ dri-devel mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/dri-devel
