linux-mtd.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: Rodrigo Freire <rfreire@redhat.com>
To: Brian Norris <computersforpeace@gmail.com>
Cc: "Felix Fietkau" <nbd@openwrt.org>, "Jörn Engel" <joern@logfs.org>,
	"Herton Krzesinski" <hkrzesin@redhat.com>,
	linux-kernel@vger.kernel.org, linux-mtd@lists.infradead.org,
	dwmw2@infradead.org
Subject: Re: [PATCH V2] mtd: block2mtd: Present block2mtd timely on boot time
Date: Sun, 9 Nov 2014 07:18:05 -0500 (EST)	[thread overview]
Message-ID: <9691395.7454649.1415535485079.JavaMail.zimbra@redhat.com> (raw)
In-Reply-To: <20141105202303.GN23619@ld-irv-0074>

Hi Brian,

> From: "Brian Norris" <computersforpeace@gmail.com>
> Sent: Wednesday, November 5, 2014 6:23:03 PM

> On Wed, Sep 17, 2014 at 04:28:03PM -0400, Rodrigo Freire wrote:
> > Currently, a block MTD device is not presented to the system on time, in
> > order to start mounting the filesystems. This patch ensures that block2mtd
> > is presented at the right time, so filesystems can be mounted on boot time.
> > This issue was seen on BCM2835 (Raspberry Pi) systems when mounting JFFS2
> > block2mtd filesystems.

> This still seems like a bad idea (using a block device + block2mtd +
> JFFS2). Why are you doing this? See comments here:
> http://www.linux-mtd.infradead.org/faq/jffs2.html#L_hdd_jffs2

As Felix stated on a previous message to the thread, I am using JFFS2 over
block2mtd where regular filesystems failed to do so well. There are several
[1] threads pointing this issue, and JFFS2 over block2mtd works like a charm
on more harsh scenarios. The block2mtd behavior was not working correctly on
BCM2835 architecture (the kernel waited for the block device prior to its
actual enumeration by the kernel) and this patch ensures that block2mtd
kicks in _after_ the block devices was enumerated or after a user-defined
timeout. 
The patchset also enables block2mtd to define a MTD name (a MTD supports it
natively, the block2mtd had its name hard-coded to its block device name).

> You're stating right up front that this patch is doing several different
> things. Please split these up into separate commits which get their own
> description.

Done. I'll send a new split V3 patchset.

> You have several checkpatch warnings. Please fix them.

Thanks for pointing. Done.

> The addition of this name parameter should definitely be its own patch.

I agree. Done.

> This variable produces a warning when built as a module:

> drivers/mtd/devices/block2mtd.c: In function ‘add_device’:
> drivers/mtd/devices/block2mtd.c:228:6: warning: unused variable ‘i’
> [-Wunused-variable]
> int i;
> ^

Oooops. Fixed.

> > +#ifndef MODULE
> > +/*
> > +* We might not have the root device mounted at this point.
> > +* Try to resolve the device name by other means.
> > +*/

> These lines should start with a space, so the asterisks line up.

Fixed, and also fixed other non-aligned asterisks as well.

> > - dev->mtd.size = dev->blkdev->bd_inode->i_size & PAGE_MASK;
> > + dev->mtd.size = dev->blkdev->bd_inode->i_size & ~(erase_size - 1);

> This deserves its own patch, or at least some explanation of why you're
> doing this. I guess you're seeing cases where the provided erasesize is
> not aligned with the size of the block device?

Jörg pointed it on https://lkml.org/lkml/2014/9/9/680. Now, we just keep
it aligned with erase_size. Separated on a 3rd patch.

> > dev->mtd.erasesize = erase_size;
> > dev->mtd.writesize = 1;
> > dev->mtd.writebufsize = PAGE_SIZE;
> > @@ -276,15 +301,19 @@ static struct block2mtd_dev *add_device(
> > dev->mtd.priv = dev;
> > dev->mtd.owner = THIS_MODULE;
> >
> > - if (mtd_device_register(&dev->mtd, NULL, 0)) {
> > + part = kzalloc(sizeof(struct mtd_partition), GFP_KERNEL);
> > + part->name = name;
> > + part->offset = 0;
> > + part->size = dev->mtd.size;

> Why are you doing this? This also does not fit the description of this
> patch. And what's wrong with using the default partitioning options?
> Won't we (if not specified in some other way) default to an
> unpartitioned MTD, which covers the entire device?

This code was changed in order to support a MTD name.

Thanks for your dilligent review.

Best regards,

- RF.

[1] - http://bit.ly/1smGvwa

  parent reply	other threads:[~2014-11-09 12:18 UTC|newest]

Thread overview: 32+ 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-17 20:18     ` Rodrigo Freire
2014-09-17 20:28     ` [PATCH V2] mtd: block2mtd: " Rodrigo Freire
2014-09-17 21:21       ` Ezequiel Garcia
2014-09-17 21:41         ` Rodrigo Freire
2014-10-09 15:07       ` [RESEND PATCH " Rodrigo Freire
2014-11-01 13:33         ` Rodrigo Freire
2014-11-07  9:44           ` Artem Bityutskiy
2014-11-07 20:05             ` Brian Norris
2014-11-05 20:01         ` Brian Norris
2014-11-05 20:23       ` [PATCH " Brian Norris
2014-11-07 14:59         ` Artem Bityutskiy
2014-11-07 15:20           ` Felix Fietkau
2014-11-07 15:30             ` Artem Bityutskiy
2014-11-09 12:18         ` Rodrigo Freire [this message]
2014-11-26  3:33           ` Brian Norris
2014-11-26 13:32             ` 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:21           ` [PATCH v3 1/3] mtd: block2mtd: Ensure that block2mtd is triggered after block devices are presented Rodrigo Freire
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
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-26  7:21             ` Brian Norris
2014-11-26 13:19               ` Rodrigo Freire
2015-02-24  8:07                 ` Brian Norris
2015-02-24  8:20                   ` Felix Fietkau
2015-02-24  8:27                     ` Brian Norris
2015-02-24  8:30                       ` Felix Fietkau
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=9691395.7454649.1415535485079.JavaMail.zimbra@redhat.com \
    --to=rfreire@redhat.com \
    --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=nbd@openwrt.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).