We should release folios if the first entry was populated, but
loop failed before sg advanced (st->nents == 1 && sg == st->sgl).

Fixes: 957ad9a02be6 ("drm/i915/gem: Avoid iterating an empty list")
Cc: [email protected]
Signed-off-by: Krzysztof Karas <[email protected]>
Reviewed-by: Andi Shyti <[email protected]>
---
 drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c 
b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
index d57b5c67d47b..f4a2a3f34c36 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
@@ -204,7 +204,7 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, 
struct sg_table *st,
        return 0;
 err_sg:
        sg_mark_end(sg);
-       if (sg != st->sgl) {
+       if (st->nents) {
                shmem_sg_free_table(st, mapping, false, false);
        } else {
                mapping_clear_unevictable(mapping);
-- 
2.34.1

Reply via email to