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

From: Brian Norris
Date: Tue Feb 24 2015 - 03:08:02 EST


On Wed, Nov 26, 2014 at 08:19:32AM -0500, Rodrigo Freire wrote:
> From: "Brian Norris" <computersforpeace@xxxxxxxxx>
> 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@xxxxxxxxxxx>
> > > Signed-off-by: Rodrigo Freire <rfreire@xxxxxxxxxx>
> > > Signed-off-by: Herton Krzesinski <herton@xxxxxxxxxx>
> > > ---
> > > 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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/