[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20180813060549.GB64836@rodete-desktop-imager.corp.google.com>
Date: Mon, 13 Aug 2018 15:05:49 +0900
From: Minchan Kim <minchan@...nel.org>
To: zhouxianrong <zhouxianrong@....com>
Cc: linux-mm@...ck.org, linux-kernel@...r.kernel.org,
ngupta@...are.org, sergey.senozhatsky.work@...il.com,
zhouxianrong <zhouxianrong@...wei.com>
Subject: Re: [PATCH] zsmalloc: fix linking bug in init_zspage
Hi,
On Thu, Aug 09, 2018 at 08:28:17PM -0400, zhouxianrong wrote:
> From: zhouxianrong <zhouxianrong@...wei.com>
>
> The last partial object in last subpage of zspage should not be linked
> in allocation list. Otherwise it could trigger BUG_ON explicitly at
> function zs_map_object. But it happened rarely.
Could you be more specific? What case did you see the problem?
Is it a real problem or one founded by review?
Thanks.
>
> Signed-off-by: zhouxianrong <zhouxianrong@...wei.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
>
Powered by blists - more mailing lists