Messages in this thread | | | Subject | Re: [PATCH v2] RDMA/umem: minor bug fix and cleanup in error handling paths | From | John Hubbard <> | Date | Tue, 5 Mar 2019 17:34:18 -0800 |
| |
On 3/5/19 5:32 PM, Jason Gunthorpe wrote: > On Wed, Mar 06, 2019 at 03:02:36AM +0200, Artemy Kovalyov wrote: >> >> >> On 04/03/2019 00:37, John Hubbard wrote: >>> On 3/3/19 1:52 AM, Artemy Kovalyov wrote: >>>> >>>> >>>> On 02/03/2019 21:44, Ira Weiny wrote: >>>>> >>>>> On Sat, Mar 02, 2019 at 12:24:35PM -0800, john.hubbard@gmail.com wrote: >>>>>> From: John Hubbard <jhubbard@nvidia.com> >>>>>> >>>>>> ... >>> >>> OK, thanks for explaining! Artemy, while you're here, any thoughts about the >>> release_pages, and the change of the starting point, from the other part of the >>> patch: >>> >>> @@ -684,9 +677,11 @@ int ib_umem_odp_map_dma_pages(struct ib_umem_odp *umem_odp, >>> u64 user_virt, >>> mutex_unlock(&umem_odp->umem_mutex); >>> >>> if (ret < 0) { >>> - /* Release left over pages when handling errors. */ >>> - for (++j; j < npages; ++j) >> release_pages() is an optimized batch put_page() so it's ok. >> but! release starting from page next to one cause failure in >> ib_umem_odp_map_dma_single_page() is correct because failure flow of this >> functions already called put_page(). >> So release_pages(&local_page_list[j+1], npages - j-1) would be correct. > > Someone send a fixup patch please... > > Jason
Yeah, I'm on it. Just need to double-check that this is the case. But Jason, you're confirming it already, so that helps too.
Patch coming shortly.
thanks, -- John Hubbard NVIDIA
| |