From: Matthew Brost <[email protected]>

Split device-private and coherent folios into individual pages before
freeing so that any order folio can be formed upon the next use of the
pages.

Cc: Balbir Singh <[email protected]>
Cc: Alistair Popple <[email protected]>
Cc: Zi Yan <[email protected]>
Cc: David Hildenbrand <[email protected]>
Cc: Oscar Salvador <[email protected]>
Cc: Andrew Morton <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Signed-off-by: Matthew Brost <[email protected]>
Signed-off-by: Francois Dugast <[email protected]>
---
 mm/memremap.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/mm/memremap.c b/mm/memremap.c
index 63c6ab4fdf08..7289cdd6862f 100644
--- a/mm/memremap.c
+++ b/mm/memremap.c
@@ -453,6 +453,8 @@ void free_zone_device_folio(struct folio *folio)
        case MEMORY_DEVICE_COHERENT:
                if (WARN_ON_ONCE(!pgmap->ops || !pgmap->ops->folio_free))
                        break;
+
+               folio_split_unref(folio);
                pgmap->ops->folio_free(folio);
                percpu_ref_put_many(&folio->pgmap->ref, nr);
                break;
-- 
2.43.0

Reply via email to