On Wed, Apr 19, 2017 at 10:01:42AM +0900, Minchan Kim wrote: > Hi Greg, > > On Tue, Apr 18, 2017 at 02:50:40PM +0200, gregkh@xxxxxxxxxxxxxxxxxxx wrote: > > > > This is a note to let you know that I've just added the patch titled > > > > zram: do not use copy_page with non-page aligned address > > > > to the 4.9-stable tree which can be found at: > > http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary > > > > The filename of the patch is: > > zram-do-not-use-copy_page-with-non-page-aligned-address.patch > > and it can be found in the queue-4.9 subdirectory. > > > > If you, or anyone else, feels it should not be added to the stable tree, > > please let <stable@xxxxxxxxxxxxxxx> know about it. > > > > > > From d72e9a7a93e4f8e9e52491921d99e0c8aa89eb4e Mon Sep 17 00:00:00 2001 > > From: Minchan Kim <minchan@xxxxxxxxxx> > > Date: Thu, 13 Apr 2017 14:56:37 -0700 > > Subject: zram: do not use copy_page with non-page aligned address > > > > From: Minchan Kim <minchan@xxxxxxxxxx> > > > > commit d72e9a7a93e4f8e9e52491921d99e0c8aa89eb4e upstream. > > > > The copy_page is optimized memcpy for page-alinged address. If it is > > used with non-page aligned address, it can corrupt memory which means > > system corruption. With zram, it can happen with > > > > 1. 64K architecture > > 2. partial IO > > 3. slub debug > > > > Partial IO need to allocate a page and zram allocates it via kmalloc. > > With slub debug, kmalloc(PAGE_SIZE) doesn't return page-size aligned > > address. And finally, copy_page(mem, cmem) corrupts memory. > > > > So, this patch changes it to memcpy. > > > > Actuaully, we don't need to change zram_bvec_write part because zsmalloc > > returns page-aligned address in case of PAGE_SIZE class but it's not > > good to rely on the internal of zsmalloc. > > > > Note: > > When this patch is merged to stable, clear_page should be fixed, too. > > Unfortunately, recent zram removes it by "same page merge" feature so > > it's hard to backport this patch to -stable tree. > > > > I will handle it when I receive the mail from stable tree maintainer to > > merge this patch to backport. > > By above reason, I send new version to cover clear_page. > Please merge below patch instead of this one. Now replaced, thanks. greg k-h