The last partial object in last subpage of zspage should not be linked
in allocation list.

Signed-off-by: zhouxianrong <zhouxianr...@tom.com>
---
 mm/zsmalloc.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c
index 8d87e973a4f5..24dd8da0aa59 100644
--- a/mm/zsmalloc.c
+++ b/mm/zsmalloc.c
@@ -1040,6 +1040,8 @@ static void init_zspage(struct size_class *class, struct 
zspage *zspage)
                         * Reset OBJ_TAG_BITS bit to last link to tell
                         * whether it's allocated object or not.
                         */
+                       if (off > PAGE_SIZE)
+                               link -= class->size / sizeof(*link);
                        link->next = -1UL << OBJ_TAG_BITS;
                }
                kunmap_atomic(vaddr);
-- 
2.13.6

Reply via email to