Douglas Gilbert c421c08208 sgl_alloc_order: fix memory leak
[ Upstream commit b2a182a40278bc5849730e66bca01a762188ed86 ]

sgl_alloc_order() can fail when 'length' is large on a memory
constrained system. When order > 0 it will potentially be
making several multi-page allocations with the later ones more
likely to fail than the earlier one. So it is important that
sgl_alloc_order() frees up any pages it has obtained before
returning NULL. In the case when order > 0 it calls the wrong
free page function and leaks. In testing the leak was
sufficient to bring down my 8 GiB laptop with OOM.

Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Douglas Gilbert <dgilbert@interlog.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-11-05 11:43:22 +01:00
..
2019-09-20 09:06:26 -07:00
2018-08-22 10:52:48 -07:00
2018-10-12 09:17:46 +02:00
2019-07-25 15:47:37 +02:00
2018-08-16 12:14:42 -07:00
2018-08-22 10:52:48 -07:00
2019-07-12 15:13:55 -07:00
2017-02-24 17:46:57 -08:00
2020-10-29 09:57:47 +01:00
2019-09-24 15:54:08 -07:00
2018-10-16 13:45:44 +02:00
2020-11-05 11:43:22 +01:00
2019-07-11 15:17:41 -07:00
2020-10-01 13:18:23 +02:00
2018-06-27 18:58:49 +03:00
2018-10-15 16:31:29 -04:00
2019-05-06 11:12:09 -07:00
2017-08-15 09:02:07 -07:00