On Wed, Aug 25, 2021 at 07:59:27AM +0300, Maor Gottlieb wrote: > > On 8/24/2021 10:12 PM, Jason Gunthorpe wrote: > > On Tue, Aug 24, 2021 at 05:25:30PM +0300, Maor Gottlieb wrote: > > > @@ -514,11 +531,13 @@ struct scatterlist *sg_alloc_append_table_from_pages(struct sg_table *sgt, > > > offset = 0; > > > cur_page = j; > > > } > > > - sgt->nents += added_nents; > > > + sgt_append->sgt.nents += added_nents; > > > + sgt_append->sgt.orig_nents = sgt_append->sgt.nents; > > > + sgt_append->prv = s; > > Why is nents being touched here? > > > > Shouldn't it just be > > > > sgt_append->sgt.orig_nents += added_nents; > > sgt_append->prv = s; > > > > ? > > In general yes, but all the sg_alloc_* functions update both > orig_nents and nents (to same value). May be drivers that pass nents > instead of orig_nents to dma_map_sg* (like umem did before this > patch set). So I prefer to set it here as well, also not to break > sg_alloc_table_from_pages_segment which use the same path. This kind > of change could be done very carefully next cycle for all > sg_alloc_*. Ok, interesting Jason