[PATCH v3 3/3] mtd: block2mtd: Removes PAGE_MASK as a index to partition size

Brian Norris computersforpeace at gmail.com
Tue Feb 24 00:07:52 PST 2015


On Wed, Nov 26, 2014 at 08:19:32AM -0500, Rodrigo Freire wrote:
> From: "Brian Norris" <computersforpeace at gmail.com>
> Sent: Wednesday, November 26, 2014 5:21:47 AM
> Subject: Re: [PATCH v3 3/3] mtd: block2mtd: Removes PAGE_MASK as a index to
> partition size
> 
> > On Sun, Nov 09, 2014 at 07:23:12AM -0500, Rodrigo Freire wrote:
> > > PAGE_MASK is no longer needed with the new term.
> 
> > This isn't too descriptive. What you probably mean is that we assume the
> > erase size is always larger than PAGE_SIZE.
> 
> > > This patch keeps the device size aligned with the erase_size.
> > >
> > > Signed-off-by: Felix Fietkau <nbd at openwrt.org>
> > > Signed-off-by: Rodrigo Freire <rfreire at redhat.com>
> > > Signed-off-by: Herton Krzesinski <herton at redhat.com>
> > > ---
> > > V3: Separated on a single patch
> > > --- a/drivers/mtd/devices/block2mtd.c 2014-11-07 17:40:58.688747820 -0200
> > > +++ b/drivers/mtd/devices/block2mtd.c 2014-11-07 17:41:28.054750893 -0200
> > > @@ -291,8 +291,7 @@ static struct block2mtd_dev *add_device(
> > > goto err_destroy_mutex;
> > >
> > > dev->mtd.name = name;
> > > -
> > > - dev->mtd.size = dev->blkdev->bd_inode->i_size & PAGE_MASK;
> > > + dev->mtd.size = dev->blkdev->bd_inode->i_size & ~(erase_size - 1);
> 
> > You never guaranteed that erase_size is a power of two, so this doesn't
> > necessarily mask the way you'd like...
> 
> > But also, why is this even necessary? I see that we should already have
> > errored out if this was actually significant, since we have above:
> 
> > if ((long)dev->blkdev->bd_inode->i_size % erase_size) {
> > pr_err("erasesize must be a divisor of device size\n");
> > goto err_free_block2mtd;
> > }
> 
> Hello Brian, and thanks for the review.
> 
> Honestly, I'd leave that untouched, but Jörn pointed that it could be a issue at https://lkml.org/lkml/2014/9/9/680
> 
> I'd happily let it go without this patch 3, unless Jörg wants to state otherwise.

OK let's drop this patch from the series. At best, we could just do
something like this instead:

-	dev->mtd.size = dev->blkdev->bd_inode->i_size & PAGE_MASK;
+	dev->mtd.size = dev->blkdev->bd_inode->i_size;

But that's really just an unnecessary change.

Brian



More information about the linux-mtd mailing list