All of lore.kernel.org
 help / color / mirror / Atom feed
From: Felix Fietkau <nbd@openwrt.org>
To: Brian Norris <computersforpeace@gmail.com>
Cc: "Jörn Engel" <joern@logfs.org>,
	"Herton Krzesinski" <hkrzesin@redhat.com>,
	linux-kernel@vger.kernel.org, linux-mtd@lists.infradead.org,
	"Rodrigo Freire" <rfreire@redhat.com>,
	dwmw2@infradead.org
Subject: Re: [PATCH v3 3/3] mtd: block2mtd: Removes PAGE_MASK as a index to partition size
Date: Tue, 24 Feb 2015 21:30:21 +1300	[thread overview]
Message-ID: <54EC369D.7090108@openwrt.org> (raw)
In-Reply-To: <20150224082725.GG24441@norris-Latitude-E6410>

On 2015-02-24 21:27, Brian Norris wrote:
> On Tue, Feb 24, 2015 at 09:20:31PM +1300, Felix Fietkau wrote:
>> On 2015-02-24 21:07, Brian Norris wrote:
>> > On Wed, Nov 26, 2014 at 08:19:32AM -0500, Rodrigo Freire wrote:
>> >> From: "Brian Norris" <computersforpeace@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:
>> >> > > - 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.
>> If I remember correctly, it was problematic to have a dev->mtd.size
>> value which is not a multiple of the erase size. I think that was the
>> reason for patch 3.
> 
> The what's this for?
> 
> 	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;
> 	}
I think we should just trim the mtd size to a multiple of erase size and
remove this check. It is a bit impractical for many cases.

- Felix

WARNING: multiple messages have this Message-ID (diff)
From: Felix Fietkau <nbd@openwrt.org>
To: Brian Norris <computersforpeace@gmail.com>
Cc: "Rodrigo Freire" <rfreire@redhat.com>,
	linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org,
	"Jörn Engel" <joern@logfs.org>,
	dwmw2@infradead.org, "Herton Krzesinski" <hkrzesin@redhat.com>
Subject: Re: [PATCH v3 3/3] mtd: block2mtd: Removes PAGE_MASK as a index to partition size
Date: Tue, 24 Feb 2015 21:30:21 +1300	[thread overview]
Message-ID: <54EC369D.7090108@openwrt.org> (raw)
In-Reply-To: <20150224082725.GG24441@norris-Latitude-E6410>

On 2015-02-24 21:27, Brian Norris wrote:
> On Tue, Feb 24, 2015 at 09:20:31PM +1300, Felix Fietkau wrote:
>> On 2015-02-24 21:07, Brian Norris wrote:
>> > On Wed, Nov 26, 2014 at 08:19:32AM -0500, Rodrigo Freire wrote:
>> >> From: "Brian Norris" <computersforpeace@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:
>> >> > > - 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.
>> If I remember correctly, it was problematic to have a dev->mtd.size
>> value which is not a multiple of the erase size. I think that was the
>> reason for patch 3.
> 
> The what's this for?
> 
> 	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;
> 	}
I think we should just trim the mtd size to a multiple of erase size and
remove this check. It is a bit impractical for many cases.

- Felix

  reply	other threads:[~2015-02-24  8:31 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <371358190.34795877.1410204429882.JavaMail.zimbra@redhat.com>
2014-09-08 20:04 ` [PATCH] block2mtd: mtd: Present block2mtd timely on boot time Rodrigo Freire
2014-09-09 17:02   ` Jörn Engel
2014-09-09 17:02     ` Jörn Engel
2014-09-17 20:18     ` Rodrigo Freire
2014-09-17 20:18       ` Rodrigo Freire
2014-09-17 20:28     ` [PATCH V2] mtd: block2mtd: " Rodrigo Freire
2014-09-17 20:28       ` Rodrigo Freire
2014-09-17 21:21       ` Ezequiel Garcia
2014-09-17 21:21         ` Ezequiel Garcia
2014-09-17 21:41         ` Rodrigo Freire
2014-09-17 21:41           ` Rodrigo Freire
2014-10-09 15:07       ` [RESEND PATCH " Rodrigo Freire
2014-10-09 15:07         ` Rodrigo Freire
2014-11-01 13:33         ` Rodrigo Freire
2014-11-01 13:33           ` Rodrigo Freire
2014-11-07  9:44           ` Artem Bityutskiy
2014-11-07  9:44             ` Artem Bityutskiy
2014-11-07 20:05             ` Brian Norris
2014-11-07 20:05               ` Brian Norris
2014-11-05 20:01         ` Brian Norris
2014-11-05 20:01           ` Brian Norris
2014-11-05 20:23       ` [PATCH " Brian Norris
2014-11-05 20:23         ` Brian Norris
2014-11-07 14:59         ` Artem Bityutskiy
2014-11-07 14:59           ` Artem Bityutskiy
2014-11-07 15:20           ` Felix Fietkau
2014-11-07 15:20             ` Felix Fietkau
2014-11-07 15:30             ` Artem Bityutskiy
2014-11-07 15:30               ` Artem Bityutskiy
2014-11-09 12:18         ` Rodrigo Freire
2014-11-09 12:18           ` Rodrigo Freire
2014-11-26  3:33           ` Brian Norris
2014-11-26  3:33             ` Brian Norris
2014-11-26 13:32             ` Rodrigo Freire
2014-11-26 13:32               ` Rodrigo Freire
2015-02-11 15:09               ` Rodrigo Freire
2015-02-11 15:09                 ` Rodrigo Freire
2014-11-09 12:18         ` [PATCH v3 0/3] mtd: block2mtd: wait for device enumeration, add name support Rodrigo Freire
2014-11-09 12:18           ` Rodrigo Freire
2014-11-09 12:21           ` [PATCH v3 1/3] mtd: block2mtd: Ensure that block2mtd is triggered after block devices are presented Rodrigo Freire
2014-11-09 12:21             ` Rodrigo Freire
2015-02-24  7:45             ` Brian Norris
2015-02-24  7:45               ` Brian Norris
2014-11-09 12:22           ` [PATCH v3 2/3] mtd: block2mtd: Adds a mtd name and a block device timeout option Rodrigo Freire
2014-11-09 12:22             ` Rodrigo Freire
2015-02-24  8:05             ` Brian Norris
2015-02-24  8:05               ` Brian Norris
2014-11-09 12:23           ` [PATCH v3 3/3] mtd: block2mtd: Removes PAGE_MASK as a index to partition size Rodrigo Freire
2014-11-09 12:23             ` Rodrigo Freire
2014-11-26  7:21             ` Brian Norris
2014-11-26  7:21               ` Brian Norris
2014-11-26 13:19               ` Rodrigo Freire
2014-11-26 13:19                 ` Rodrigo Freire
2015-02-24  8:07                 ` Brian Norris
2015-02-24  8:07                   ` Brian Norris
2015-02-24  8:20                   ` Felix Fietkau
2015-02-24  8:20                     ` Felix Fietkau
2015-02-24  8:27                     ` Brian Norris
2015-02-24  8:27                       ` Brian Norris
2015-02-24  8:30                       ` Felix Fietkau [this message]
2015-02-24  8:30                         ` Felix Fietkau
2015-02-24  8:40                         ` Brian Norris
2015-02-24  8:40                           ` Brian Norris

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=54EC369D.7090108@openwrt.org \
    --to=nbd@openwrt.org \
    --cc=computersforpeace@gmail.com \
    --cc=dwmw2@infradead.org \
    --cc=hkrzesin@redhat.com \
    --cc=joern@logfs.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=rfreire@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.