On 2020-09-19 22:36, Douglas Gilbert wrote: > Noticed that when sgl_alloc_order() failed with order > 0 that > free memory on my machine shrank. That function shouldn't call > sgl_free() on its error path since that is only correct when > order==0 . > > Signed-off-by: Douglas Gilbert <dgilbert@xxxxxxxxxxxx> > --- > lib/scatterlist.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/lib/scatterlist.c b/lib/scatterlist.c > index 5d63a8857f36..c448642e0f78 100644 > --- a/lib/scatterlist.c > +++ b/lib/scatterlist.c > @@ -514,7 +514,7 @@ struct scatterlist *sgl_alloc_order(unsigned long long length, > elem_len = min_t(u64, length, PAGE_SIZE << order); > page = alloc_pages(gfp, order); > if (!page) { > - sgl_free(sgl); > + sgl_free_order(sgl, order); > return NULL; > } Reviewed-by: Bart Van Assche <bvanassche@xxxxxxx>