From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pf0-f194.google.com ([209.85.192.194]:32876 "EHLO mail-pf0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751462AbdDNPdj (ORCPT ); Fri, 14 Apr 2017 11:33:39 -0400 Date: Sat, 15 Apr 2017 00:33:25 +0900 From: Minchan Kim To: Sergey Senozhatsky Cc: Andrew Morton , linux-kernel@vger.kernel.org, Sergey Senozhatsky , kernel-team@lge.com, stable@vger.kernel.org Subject: Re: [PATCH 1/3] zram: fix operator precedence to get offset Message-ID: <20170414153251.GA16910@bgram> References: <1492042622-12074-1-git-send-email-minchan@kernel.org> <20170414050747.GB462@jagdpanzerIV.localdomain> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170414050747.GB462@jagdpanzerIV.localdomain> Sender: stable-owner@vger.kernel.org List-ID: Hi Sergey, On Fri, Apr 14, 2017 at 02:07:47PM +0900, Sergey Senozhatsky wrote: > Hello, > > On (04/13/17 09:17), Minchan Kim wrote: > [..] > > diff --git a/drivers/block/zram/zram_drv.c b/drivers/block/zram/zram_drv.c > > index 9e2199060040..83c38a123242 100644 > > --- a/drivers/block/zram/zram_drv.c > > +++ b/drivers/block/zram/zram_drv.c > > @@ -930,7 +930,7 @@ static int zram_rw_page(struct block_device *bdev, sector_t sector, > > } > > > > index = sector >> SECTORS_PER_PAGE_SHIFT; > > - offset = sector & (SECTORS_PER_PAGE - 1) << SECTOR_SHIFT; > > + offset = (sector & (SECTORS_PER_PAGE - 1)) << SECTOR_SHIFT; > > sorry, can it actually produce different results? I got your point. Actually, offset was wrong but rw_page is called with PAGE_SIZE io while that offset is related to only partial io (non-PAGEE size io). IOW, although the wrong offset it is never used in functions. To find subtle corruption in ppc64, I added some debug code to catch up wrong buffer overflow and found it with other bugs but didn't prove the specific case is valid case or not. Good catch, Sergey! However, it should be *fixed* to prevent confusion in future but surely, no need to go to the stable. I will send reply to Greg to prevent merging it to *stable* when he send review asking to merge. And next week I will send another fix which *maybe* removes code to get the offset in zram_rw_page. Thanks.